VR-Engage  2.2
Loading...
Searching...
No Matches
rfxSarMessage.h
Go to the documentation of this file.
1// ******************************************************************************
2// ** Copyright (c) 2025 MAK Technologies
3// ** All rights reserved.
4// ******************************************************************************
5
6//! \file rfxSarMessage.h
7//! \brief Defines the request and response messages for Synthetic Aperture Radar (SAR) images
8//! \ingroup vreRadarFxShared
9//!
10//! This file contains message classes for requesting Synthetic Aperture Radar (SAR)
11//! images from the server and processing the image responses. These classes extend
12//! the base image request and response classes from rfxImageMessage.h.
13
14#pragma once
15
16#include "export.h"
17#include "rfxMessage.h"
19#include <matrix/vlVector.h>
20#include <matrix/vlTaitBryan.h>
21
22#include <string>
23
24namespace makRadarFx
25{
26
27//! \brief Request message for Synthetic Aperture Radar (SAR) images
28//!
29//! This class encapsulates a request for a Synthetic Aperture Radar (SAR) image from
30//! the RadarFX server. It contains parameters that specify the sensor platform position,
31//! target location, radar system settings, and image format settings. SAR images provide
32//! a top-down radar view of terrain and objects.
34{
35public:
36 //! \brief Default constructor
37 //!
38 //! Initializes a new SAR image request message with default settings
40
41 //! \brief Virtual destructor
42 virtual ~DtSarRequest();
43
44 //! \brief Uses the current observer's position and orientation for the radar platform
45 //!
46 //! When called, this function configures the request to use the current observer's
47 //! position and orientation as the radar platform location. The client does not need
48 //! to set an ownship location or orientation if using this method to position the sensor.
49 virtual void useObserverAsHost();
50
51 //! \brief Sets an absolute position for the radar platform
52 //! \param location Vector containing the radar platform position (latitude, longitude, altitude)
53 //!
54 //! If the radar platform is not hosted in the simulation system, this method allows
55 //! explicit specification of the platform position for the SAR imagery.
56 virtual void setOwnshipLocation(DtVector location);
57
58 //! \brief Gets the absolute radar platform position
59 //! \return Vector containing the radar platform position (latitude, longitude, altitude)
60 //!
61 //! Returns the currently set absolute position for the radar platform.
62 virtual DtVector ownshipLocation();
63
64 //! \brief Sets an entity ID to use for the radar platform position
65 //! \param name String identifier of the entity to use as the radar platform
66 //!
67 //! If the radar platform is hosted by the simulation system, this method allows
68 //! specification of the entity by its global simulation name or ID.
69 virtual void setOwnshipEntityId(const std::string& name);
70
71 //! \brief Gets the entity ID used for the radar platform position
72 //! \return String identifier of the entity used as the radar platform
73 //!
74 //! Returns the entity identifier that will be used to locate the radar platform.
75 virtual std::string ownshipEntityId();
76
77 //! \name Radar Platform Placement Mode Queries
78 //! @{
79 //! \brief Methods to determine how the radar platform is being positioned
80
81 //! \brief Checks if using the observer position for the radar platform
82 //! \return True if the observer is being used as the radar platform host
83 virtual bool isUsingObserverAsHost();
84
85 //! \brief Checks if using an entity as the radar platform
86 //! \return True if an entity ID is being used for the radar platform host
87 virtual bool isUsingEntityAsHost();
88
89 //! \brief Checks if using an absolute position for the radar platform
90 //! \return True if absolute coordinates are being used for the radar platform position
92 //! @}
93
94 //! \brief Uses the current observer's view direction to determine the target location
95 //!
96 //! When called, this function configures the request to use the current observer's
97 //! view direction to determine the target location for the SAR image. The system
98 //! will cast a ray along the view direction to find the intersection with terrain.
99 virtual void useObserverForTarget();
100
101 //! \brief Sets an entity ID to use as the target location
102 //! \param name String identifier of the entity to use as the target
103 //!
104 //! Specifies an entity by its global simulation name or ID to use as the
105 //! target location for the SAR image. The center of the image will be
106 //! positioned at this entity's location.
107 virtual void setTargetEntityId(const std::string& name);
108
109 //! \brief Gets the entity ID used as the target location
110 //! \return String identifier of the entity used as the target
111 //!
112 //! Returns the entity identifier that will be used to locate the target.
113 virtual std::string targetEntityId();
114
115 //! \brief Sets an absolute position for the target location
116 //! \param location Vector containing the target position (latitude, longitude, altitude)
117 //!
118 //! Specifies the absolute coordinates for the target location of the SAR image.
119 //! Location format is latitude/longitude/altitude (in degrees/meters).
120 //! The altitude component is optional and will be determined by terrain height
121 //! if not specified.
122 virtual void setTargetLocation(DtVector location);
123
124 //! \brief Gets the absolute target position
125 //! \return Vector containing the target position (latitude, longitude, altitude)
126 //!
127 //! Returns the currently set target position for the SAR image.
128 virtual DtVector targetLocation();
129
130 //! \name Target Placement Mode Queries
131 //! @{
132 //! \brief Methods to determine how the target is being positioned
133
134 //! \brief Checks if using the observer view for the target position
135 //! \return True if the observer view is being used to determine the target location
137
138 //! \brief Checks if using an entity as the target
139 //! \return True if an entity ID is being used for the target location
141
142 //! \brief Checks if using an absolute position for the target
143 //! \return True if absolute coordinates are being used for the target location
145 //! @}
146
147 //! \brief Sets the offset location of the radar sensor on the hosting entity
148 //! \param offset Vector containing the offset position in entity-relative coordinates
149 //!
150 //! Specifies the position offset of the radar sensor relative to the hosting entity's
151 //! reference point. This is only valid when a hosting entity is defined using
152 //! setOwnshipEntityId().
153 virtual void setRadarOffsetLocation(DtVector offset);
154
155 //! \brief Gets the radar sensor offset location
156 //! \return Vector containing the offset position in entity-relative coordinates
157 //!
158 //! Returns the currently set position offset of the radar sensor relative to
159 //! the hosting entity's reference point.
160 virtual DtVector radarOffsetLocation();
161
162 //! \brief Sets the offset orientation of the radar sensor on the hosting entity
163 //! \param offsetOrientation Tait-Bryan angles representing the orientation offset
164 //!
165 //! Specifies the orientation offset of the radar sensor relative to the hosting entity's
166 //! reference orientation. This is only valid when a hosting entity is defined using
167 //! setOwnshipEntityId().
168 virtual void setRadarOffsetOrientation(DtTaitBryan offsetOrientation);
169
170 //! \brief Gets the radar sensor offset orientation
171 //! \return Tait-Bryan angles representing the orientation offset
172 //!
173 //! Returns the currently set orientation offset of the radar sensor relative to
174 //! the hosting entity's reference orientation.
175 virtual DtTaitBryan radarOffsetOrientation();
176
177 //! \brief Sets the radar system name to use for the SAR image
178 //! \param name String identifier of the radar system configuration
179 //!
180 //! Specifies the name of the radar system configuration to use for generating the
181 //! SAR image. This must match one of the predefined radar systems that the
182 //! RadarFX server has configured. Different radar systems have different
183 //! capabilities and characteristics.
184 virtual void setRadarSystemName(const std::string& name);
185
186 //! \brief Gets the radar system name
187 //! \return String identifier of the radar system configuration
188 //!
189 //! Returns the currently set radar system name.
190 virtual std::string radarSystemName();
191
192 //! \brief Sets the crossrange size for the SAR image
193 //! \param width Size of the crossrange in meters
194 //!
195 //! Sets the width (crossrange dimension) of the target area for the SAR image
196 //! in meters. This controls the horizontal field of view of the radar image.
197 virtual void setCrossrange(float width);
198
199 //! \brief Gets the crossrange size
200 //! \return Size of the crossrange in meters
201 //!
202 //! Returns the currently set width (crossrange dimension) of the target area.
203 virtual float crossrange();
204
205 //! \brief Sets the downrange size for the SAR image
206 //! \param height Size of the downrange in meters
207 //!
208 //! Sets the height (downrange dimension) of the target area for the SAR image
209 //! in meters. This controls the vertical field of view of the radar image.
210 virtual void setDownrange(float height);
211
212 //! \brief Gets the downrange size
213 //! \return Size of the downrange in meters
214 //!
215 //! Returns the currently set height (downrange dimension) of the target area.
216 virtual float downrange();
217
218 //! \brief Enables or disables Automatic Gain Control (AGC) for radar power
219 //! \param isAgcPowerEnabled True to enable AGC, false to disable
220 //!
221 //! When enabled, Automatic Gain Control will dynamically adjust the radar
222 //! power level to optimize the image quality based on the scene content.
223 //! When disabled, the power level is fixed at the value set by setPower().
225
226 //! \brief Checks if Automatic Gain Control is enabled
227 //! \return True if AGC is enabled, false if disabled
228 //!
229 //! Returns the current state of the Automatic Gain Control setting.
230 virtual bool isAgcPowerEnabled() const;
231
232 //! \brief Sets the radar system power level
233 //! \param power Radar transmitter power in Watts
234 //!
235 //! Sets the power level of the radar transmitter in Watts. Higher power levels
236 //! generally result in better signal-to-noise ratio but may cause saturation
237 //! for strong reflectors. This setting is only used when AGC is disabled.
238 virtual void setPower(float power);
239
240 //! \brief Gets the radar system power level
241 //! \return Radar transmitter power in Watts
242 //!
243 //! Returns the currently set power level of the radar transmitter.
244 virtual float power();
245
246 //! \brief Sets the requested image dimensions
247 //! \param size The desired image dimensions in pixels
248 //!
249 //! Sets the desired dimensions of the SAR image in pixels. The actual
250 //! dimensions of the returned image may differ due to image rotation or
251 //! other processing requirements.
252 //!
253 //! \note The default size is 512x512 pixels if not specified.
254 virtual void setImageSize(const DtImageSize& size);
255
256 //! \brief Gets the requested image dimensions
257 //! \return The currently set image dimensions in pixels
258 //!
259 //! Returns the currently set dimensions for the SAR image.
261
262 //! \brief Sets the requested image format
263 //! \param format The desired image format enumeration value
264 //!
265 //! Sets the format to use for the returned SAR image data. Different formats
266 //! have different characteristics in terms of compression, metadata support,
267 //! and compatibility with various applications.
268 virtual void setImageFormat(DtImageFormat format);
269
270 //! \brief Gets the requested image format
271 //! \return The currently set image format enumeration value
272 //!
273 //! Returns the currently set format for the SAR image.
275
276 //! \brief Sets the requested image data type
277 //! \param type The desired image data type enumeration value
278 //!
279 //! Sets the data type to use for the pixel values in the returned SAR image.
280 //! This setting is only applicable for RAW and NITF image formats.
281 //! Different data types provide different dynamic range and precision.
283
284 //! \brief Gets the requested image data type
285 //! \return The currently set image data type enumeration value
286 //!
287 //! Returns the currently set data type for the SAR image pixels.
289
290 //! \brief Sets the requested image orientation
291 //! \param rotate The desired image orientation enumeration value
292 //!
293 //! Sets the orientation to use for the returned SAR image. The orientation
294 //! determines whether north is at the top of the image (NORTH_UP) or the
295 //! platform's direction of travel is at the top (TRACK_UP).
296 virtual void setImageRotation(DtImageRotation rotate);
297
298 //! \brief Gets the requested image orientation
299 //! \return The currently set image orientation enumeration value
300 //!
301 //! Returns the currently set orientation for the SAR image.
303
304 //! \brief Sets the requested image delivery method
305 //! \param returnFlags Bitfield of DtImageReturnMethod values
306 //!
307 //! Sets how the SAR image data should be delivered. This can be set to return
308 //! the image data directly in the message (STREAM), save the image to a file
309 //! and return the file path (FILESYSTEM), or both. Use bitwise OR to combine
310 //! multiple flags.
311 virtual void setImageReturnMethod(unsigned int returnFlags);
312
313 //! \brief Gets the requested image delivery method
314 //! \return Bitfield of currently set delivery methods
315 //!
316 //! Returns the currently set delivery method for the SAR image.
317 virtual unsigned int imageReturnMethod();
318
319 //! \brief Sets the directory path for saving the image on the server
320 //! \param filename Path to the directory where the image should be saved
321 //!
322 //! Sets the directory path where the image should be saved on the server when
323 //! using the FILESYSTEM return method. If the specified directory does not exist,
324 //! the server will attempt to create it.
325 //!
326 //! \note This setting is only used when the FILESYSTEM return method is selected.
327 virtual void setImageSavePath(const std::string& filename);
328
329 //! \brief Gets the image save directory path
330 //! \return Path to the directory where the image will be saved
331 //!
332 //! Returns the currently set directory path for saving the image.
333 virtual std::string imageSavePath();
334
335 //! \brief Sets the base filename for saving the image on the server
336 //! \param filename Base name to use for the saved image file
337 //!
338 //! Sets the base filename to use when saving the image on the server when
339 //! using the FILESYSTEM return method. If not set, a timestamp will be used
340 //! as the filename. If set, the specified name will be used as a prefix,
341 //! followed by a timestamp. The file extension will be determined automatically
342 //! based on the selected image format.
343 //!
344 //! \note This setting is only used when the FILESYSTEM return method is selected.
345 virtual void setImageFilename(const std::string& filename);
346
347 //! \brief Gets the image base filename
348 //! \return Base name that will be used for the saved image file
349 //!
350 //! Returns the currently set base filename for saving the image.
351 virtual std::string imageFilename();
352
353 //! \brief Controls whether the server restores its state after image capture
354 //! \param restoreState True to restore state, false otherwise
355 //!
356 //! When set to true, this instructs the server to restore the display, window, and
357 //! observer state after the SAR image capture process is completed. This is useful
358 //! when the server needs to temporarily modify its state for image generation but
359 //! should return to its previous state afterward.
360 virtual void setRestoreState(bool restoreState);
361
362 //! \brief Checks if state restoration is enabled
363 //! \return True if state restoration is enabled, false otherwise
364 //!
365 //! Returns whether the server will restore its state after image capture.
366 virtual bool restoreState();
367
368 //! \brief Sets the platform speed for the SAR image request
369 //! \param speed Speed of the platform in meters per second
370 //!
371 //! Sets the speed of the platform (ownship) for the SAR image request.
372 //! This affects the SAR processing parameters and can impact the quality
373 //! of the resulting image. Only used when not using an entity as the host.
374 void setOwnshipSpeed(float speed);
375
376 //! \brief Gets the platform speed
377 //! \return Speed of the platform in meters per second
378 //!
379 //! Returns the currently set speed of the platform (ownship).
381
382 //! \brief size of the message
383 virtual int messageSize();
384 //! \brief decode a message. Used by the factory
385 static DtBaseMessage* decode(unsigned char* buffer, int length);
386 //! \brief clone a message. Caller of function is responsible managing this memory
388
389protected:
390 virtual void serialize(DtStreamWriter& writer);
391 virtual void deserialize(DtStreamReader& reader);
392
393
401
402 std::string myOwnshipName;
403 std::string myTargetName;
406
409 std::string myRadarName;
412 float myPower;
417 unsigned int myReturnMethod;
418
420
422
423 std::string myImageSavePath;
424 std::string myImageFilename;
425};
426
427
428//! \brief Response message containing Synthetic Aperture Radar (SAR) image data
429//!
430//! This class encapsulates the response from the RadarFX server to a SAR image
431//! request. It contains the image data itself (or a file path to the saved image),
432//! metadata about the image, and any error or warning information. The class also
433//! provides methods to access the platform position, orientation, and other
434//! contextual information at the time the image was captured.
436{
437public:
438 //! \brief Default constructor
439 //!
440 //! Initializes a new SAR image response message with default settings
442
443 //! \brief Virtual destructor
444 //!
445 //! Cleans up the response resources, including any allocated image data
446 virtual ~DtSarResponse();
447
448 //! \brief Sets the error code for this response
449 //! \param error The error code to set
450 //!
451 //! Sets the error status for this SAR image response. Use IMAGE_NO_ERROR
452 //! if the image was generated successfully.
454
455 //! \brief Gets the error code for this response
456 //! \return The current error code
457 //!
458 //! Returns the error status for this SAR image response.
460
461 //! \brief Sets the warning code for this response
462 //! \param error The warning code to set
463 //!
464 //! Sets the warning status for this SAR image response. Unlike errors,
465 //! warnings indicate that the image was generated but there may be
466 //! quality issues or other non-critical problems.
468
469 //! \brief Gets the warning code for this response
470 //! \return The current warning code
471 //!
472 //! Returns the warning status for this SAR image response.
474
475 //! \brief Sets the image delivery method used
476 //! \param method Bitfield of DtImageReturnMethod values
477 //!
478 //! Sets the delivery method actually used for this SAR image response.
479 //! This may differ from what was requested if there were problems with
480 //! the requested method.
481 virtual void setReturnMethod(unsigned int method);
482
483 //! \brief Gets the image delivery method used
484 //! \return Bitfield of delivery methods used
485 //!
486 //! Returns the delivery method that was actually used for this SAR image.
487 virtual unsigned int returnMethod();
488
489 //! \brief Sets the image format used
490 //! \param format The image format enumeration value used
491 //!
492 //! Sets the format that was actually used for the returned SAR image data.
493 //! This may differ from what was requested if there were compatibility issues.
494 virtual void setImageFormat(DtImageFormat format);
495
496 //! \brief Gets the image format used
497 //! \return The image format enumeration value used
498 //!
499 //! Returns the format that was actually used for the SAR image.
501
502 //! \brief Sets the actual dimensions of the returned image
503 //! \param size The actual image dimensions in pixels
504 //!
505 //! Sets the actual dimensions of the returned SAR image in pixels.
506 //! This may differ from what was requested due to image rotation or
507 //! other processing requirements.
508 virtual void setImageSize(const DtImageSize& size);
509
510 //! \brief Gets the actual dimensions of the returned image
511 //! \return The actual image dimensions in pixels
512 //!
513 //! Returns the actual dimensions of the returned SAR image.
515
516 //! \brief Sets the image data type used
517 //! \param type The image data type enumeration value used
518 //!
519 //! Sets the data type that was actually used for the pixel values in the
520 //! SAR image. This is only relevant for RAW and NITF image formats and may
521 //! differ from what was requested if there were compatibility issues.
523
524 //! \brief Gets the image data type used
525 //! \return The image data type enumeration value used
526 //!
527 //! Returns the data type that was actually used for the SAR image pixels.
529
530 //! \brief Sets the full path of the saved image
531 //! \param filename Full path to the saved image file
532 //!
533 //! Sets the full path of the image file that was saved on the server.
534 //! This is only applicable when the FILESYSTEM return method was used.
535 virtual void setFilename(const std::string& filename);
536
537 //! \brief Gets the full path of the saved image
538 //! \return Full path to the saved image file
539 //!
540 //! Returns the full path of the image file that was saved on the server.
541 //! This will be empty if the FILESYSTEM return method was not used or
542 //! if the save operation failed.
543 virtual std::string filename();
544
545 //! \brief Gets the size of the image data in bytes
546 //! \return Size of the image data in bytes
547 //!
548 //! Returns the size of the binary image data in bytes. This is only
549 //! applicable when the STREAM return method was used.
550 virtual int dataLength();
551
552 //! \brief Sets the binary image data
553 //! \param buffer Pointer to the image data buffer
554 //! \param length Length of the image data in bytes
555 //!
556 //! Sets the binary image data for this response. This message class
557 //! will take ownership of the buffer and manage its memory.
558 //! This is only applicable when the STREAM return method is used.
559 virtual void setData(unsigned char* buffer, int length);
560
561 //! \brief Gets the binary image data
562 //! \return Pointer to the image data buffer
563 //!
564 //! Returns a pointer to the binary image data. This will be nullptr
565 //! if the STREAM return method was not used or if there was an error.
566 //! The caller should not attempt to free this memory, as it is owned
567 //! by this message object.
568 virtual unsigned char* data();
569
570 //! \brief Sets the platform position at the time of image capture
571 //! \param location Vector containing the platform position (latitude, longitude, altitude)
572 //!
573 //! Sets the position of the platform (ownship) at the time when the SAR
574 //! image was captured. This provides context for the image and can be
575 //! used for geolocation purposes.
576 virtual void setOwnshipLocation(DtVector location);
577
578 //! \brief Gets the platform position at the time of image capture
579 //! \return Vector containing the platform position (latitude, longitude, altitude)
580 //!
581 //! Returns the position of the platform (ownship) at the time the image was captured.
582 virtual DtVector ownshipLocation();
583
584 //! \brief Sets the platform orientation at the time of image capture
585 //! \param orientation Tait-Bryan angles representing the platform orientation
586 //!
587 //! Sets the orientation of the platform (ownship) at the time when the SAR
588 //! image was captured. This provides context for the image and can be
589 //! used for geolocation purposes.
590 virtual void setOwnshipOrientation(DtTaitBryan orientation);
591
592 //! \brief Gets the platform orientation at the time of image capture
593 //! \return Tait-Bryan angles representing the platform orientation
594 //!
595 //! Returns the orientation of the platform (ownship) at the time the image was captured.
596 virtual DtTaitBryan ownshipOrientation();
597
598 //! \brief Sets the UTC time when the image was captured
599 //! \param time UTC time value (seconds since Unix epoch)
600 //!
601 //! Sets the UTC time when the SAR image was captured. This provides temporal
602 //! context for the image and can be used for synchronization with other data.
603 virtual void setSystemTime(double time);
604
605 //! \brief Gets the UTC time when the image was captured
606 //! \return UTC time value (seconds since Unix epoch)
607 //!
608 //! Returns the UTC time when the SAR image was captured.
609 virtual double systemTime();
610
611 //! \brief Sets the center position of the SAR image
612 //! \param lat Latitude in degrees
613 //! \param lon Longitude in degrees
614 //! \param alt Altitude in meters
615 //!
616 //! Sets the geographic coordinates of the center point of the SAR image.
617 //! This is the point where the sensor's view vector intersects with the terrain.
618 virtual void setCenterPosition(double lat, double lon, double alt);
619
620 //! \brief Gets the center position of the SAR image
621 //! \param lat Reference to store the latitude in degrees
622 //! \param lon Reference to store the longitude in degrees
623 //! \param alt Reference to store the altitude in meters
624 //!
625 //! Retrieves the geographic coordinates of the center point of the SAR image.
626 virtual void getCenterPosition(double& lat, double& lon, double& alt);
627
628 //! \brief Sets the sensor view direction
629 //! \param azimuth Azimuth angle in radians (clockwise from north)
630 //! \param elevation Elevation angle in radians (from horizontal)
631 //!
632 //! Sets the direction in which the radar sensor was pointing when the
633 //! SAR image was captured. The azimuth is measured clockwise from north,
634 //! and the elevation is measured from the horizontal plane.
635 virtual void setSensorViewDirection(double azimuth, double elevation);
636
637 //! \brief Gets the sensor view direction
638 //! \param azimuth Reference to store the azimuth angle in radians
639 //! \param elevation Reference to store the elevation angle in radians
640 //!
641 //! Retrieves the direction in which the radar sensor was pointing when
642 //! the SAR image was captured.
643 virtual void getSensorViewDirection(double& azimuth, double& elevation);
644
645 //! \brief size of the message
646 virtual int messageSize();
647 //! \brief decode a message. Used by the factory
648 static DtBaseMessage* decode(unsigned char* buffer, int length);
649 //! \brief clone a message. Caller of function is responsible managing this memory
651
652protected:
653 //! \brief Serializes the message data to a stream writer
654 //! \param writer Reference to the stream writer to write the data to
655 //!
656 //! Writes the message data to the provided stream writer. This protected method
657 //! is called by the encode() method to convert the object to a byte array.
658 virtual void serialize(DtStreamWriter& writer);
659
660 //! \brief Deserializes message data from a stream reader
661 //! \param reader Reference to the stream reader to read the data from
662 //!
663 //! Reads the message data from the provided stream reader. This protected method
664 //! is called by the decode() method to convert a byte array back to an object.
665 virtual void deserialize(DtStreamReader& reader);
666
667 //! \brief Error code for this response
669
670 //! \brief Warning code for this response
672
673 //! \brief Actual dimensions of the returned image
675
676 //! \brief Delivery method used for the image
677 unsigned int myReturnMethod;
678
679 //! \brief Format used for the image data
681
682 //! \brief Data type used for the image pixels
684
685 //! \brief Full path to the saved image file
686 std::string myFilename;
687
688 //! \brief Length of the image data in bytes
690
691 //! \brief Pointer to the binary image data
692 unsigned char* myData;
693
694 //! \brief Platform position at time of image capture
696
697 //! \brief Platform orientation at time of image capture
699
700 //! \brief UTC time of image capture
702
703 //! \brief Latitude of the image center point
705
706 //! \brief Longitude of the image center point
708
709 //! \brief Altitude of the image center point
711
712 //! \brief Azimuth angle of the sensor view direction
714
715 //! \brief Elevation angle of the sensor view direction
717};
718} // namespace makRadarFx
Base class for all RadarFX messages.
Definition rfxMessage.h:35
DtImageRequest()
Default constructor.
DtImageResponse()
Default constructor.
virtual std::string ownshipEntityId()
Gets the entity ID used for the radar platform position.
virtual void setPower(float power)
Sets the radar system power level.
std::string myOwnshipName
Definition rfxSarMessage.h:402
bool myIsAgcPowerEnabled
Definition rfxSarMessage.h:400
virtual DtVector ownshipLocation()
Gets the absolute radar platform position.
float myCrossrange
Definition rfxSarMessage.h:410
DtVector myRadarOffsetLocation
Definition rfxSarMessage.h:407
virtual void setOwnshipEntityId(const std::string &name)
Sets an entity ID to use for the radar platform position.
bool myUseObserverAsHost
Definition rfxSarMessage.h:394
virtual ~DtSarRequest()
Virtual destructor.
DtTaitBryan myRadarOffsetOrientation
Definition rfxSarMessage.h:408
std::string myRadarName
Definition rfxSarMessage.h:409
virtual void setTargetLocation(DtVector location)
Sets an absolute position for the target location.
unsigned int myReturnMethod
Definition rfxSarMessage.h:417
virtual bool isUsingLocationForTarget()
Checks if using an absolute position for the target.
float myDownrange
Definition rfxSarMessage.h:411
float ownshipSpeed()
Gets the platform speed.
virtual void setRadarOffsetOrientation(DtTaitBryan offsetOrientation)
Sets the offset orientation of the radar sensor on the hosting entity.
bool myUseObserverForTarget
Definition rfxSarMessage.h:397
DtImageFormat myImageFormat
Definition rfxSarMessage.h:414
virtual void setRadarSystemName(const std::string &name)
Sets the radar system name to use for the SAR image.
virtual bool isAgcPowerEnabled() const
Checks if Automatic Gain Control is enabled.
virtual void serialize(DtStreamWriter &writer)
Serializes the message data to a stream writer.
virtual void useObserverForTarget()
Uses the current observer's view direction to determine the target location.
float myPower
Definition rfxSarMessage.h:412
virtual bool restoreState()
Checks if state restoration is enabled.
DtImageDataType myImageDataType
Definition rfxSarMessage.h:415
virtual DtBaseMessage * clone()
clone a message. Caller of function is responsible managing this memory
virtual void setRestoreState(bool restoreState)
Controls whether the server restores its state after image capture.
bool myRestoreState
Definition rfxSarMessage.h:419
virtual DtVector radarOffsetLocation()
Gets the radar sensor offset location.
void setOwnshipSpeed(float speed)
Sets the platform speed for the SAR image request.
virtual void setImageRotation(DtImageRotation rotate)
Sets the requested image orientation.
virtual std::string targetEntityId()
Gets the entity ID used as the target location.
virtual std::string imageFilename()
Gets the image base filename.
virtual void setDownrange(float height)
Sets the downrange size for the SAR image.
virtual void setImageSavePath(const std::string &filename)
Sets the directory path for saving the image on the server.
virtual DtImageRotation imageRotation()
Gets the requested image orientation.
bool myUseEntityAsTarget
Definition rfxSarMessage.h:398
bool myUseAbsoluteTarget
Definition rfxSarMessage.h:399
virtual std::string radarSystemName()
Gets the radar system name.
virtual bool isUsingAbsoluteLocation()
Checks if using an absolute position for the radar platform.
virtual void deserialize(DtStreamReader &reader)
Deserializes message data from a stream reader.
virtual std::string imageSavePath()
Gets the image save directory path.
static DtBaseMessage * decode(unsigned char *buffer, int length)
decode a message. Used by the factory
virtual DtTaitBryan radarOffsetOrientation()
Gets the radar sensor offset orientation.
DtVector myTargetLocation
Definition rfxSarMessage.h:405
virtual void useObserverAsHost()
Uses the current observer's position and orientation for the radar platform.
DtSarRequest()
Default constructor.
virtual float crossrange()
Gets the crossrange size.
std::string myImageSavePath
Definition rfxSarMessage.h:423
virtual DtImageFormat imageFormat()
Gets the requested image format.
DtVector myOwnshipLocation
Definition rfxSarMessage.h:404
virtual bool isUsingEntityForTarget()
Checks if using an entity as the target.
virtual void setTargetEntityId(const std::string &name)
Sets an entity ID to use as the target location.
virtual DtImageDataType imageDataType()
Gets the requested image data type.
virtual float power()
Gets the radar system power level.
virtual void setImageFilename(const std::string &filename)
Sets the base filename for saving the image on the server.
virtual void setImageSize(const DtImageSize &size)
Sets the requested image dimensions.
virtual bool isUsingObserverForTarget()
Checks if using the observer view for the target position.
virtual DtImageSize imageSize()
Gets the requested image dimensions.
std::string myImageFilename
Definition rfxSarMessage.h:424
virtual float downrange()
Gets the downrange size.
DtImageRotation myImageRotation
Definition rfxSarMessage.h:416
virtual void setOwnshipLocation(DtVector location)
Sets an absolute position for the radar platform.
virtual void setRadarOffsetLocation(DtVector offset)
Sets the offset location of the radar sensor on the hosting entity.
DtImageSize myImageSize
Definition rfxSarMessage.h:413
float myOwnshipSpeed
Definition rfxSarMessage.h:421
bool myUseAbsoluteOwnship
Definition rfxSarMessage.h:396
std::string myTargetName
Definition rfxSarMessage.h:403
virtual DtVector targetLocation()
Gets the absolute target position.
virtual unsigned int imageReturnMethod()
Gets the requested image delivery method.
virtual void setCrossrange(float width)
Sets the crossrange size for the SAR image.
virtual bool isUsingEntityAsHost()
Checks if using an entity as the radar platform.
virtual void setImageDataType(DtImageDataType type)
Sets the requested image data type.
virtual void setImageFormat(DtImageFormat format)
Sets the requested image format.
bool myUseEntityAsHost
Definition rfxSarMessage.h:395
virtual void setImageReturnMethod(unsigned int returnFlags)
Sets the requested image delivery method.
virtual bool isUsingObserverAsHost()
Checks if using the observer position for the radar platform.
virtual int messageSize()
size of the message
virtual void setIsAgcPowerEnabled(bool isAgcPowerEnabled)
Enables or disables Automatic Gain Control (AGC) for radar power.
virtual DtImageDataType imageDataType()
Gets the image data type used.
virtual DtBaseMessage * clone()
clone a message. Caller of function is responsible managing this memory
virtual void setFilename(const std::string &filename)
Sets the full path of the saved image.
double myCenterLon
Longitude of the image center point.
Definition rfxSarMessage.h:707
DtTaitBryan myOwnshipOrientation
Platform orientation at time of image capture.
Definition rfxSarMessage.h:698
DtImageDataType myImageDataType
Data type used for the image pixels.
Definition rfxSarMessage.h:683
virtual void getSensorViewDirection(double &azimuth, double &elevation)
Gets the sensor view direction.
virtual void setError(DtImageError error)
Sets the error code for this response.
static DtBaseMessage * decode(unsigned char *buffer, int length)
decode a message. Used by the factory
DtImageSize myImageSize
Actual dimensions of the returned image.
Definition rfxSarMessage.h:674
virtual ~DtSarResponse()
Virtual destructor.
virtual DtImageSize imageSize()
Gets the actual dimensions of the returned image.
virtual void setImageSize(const DtImageSize &size)
Sets the actual dimensions of the returned image.
DtVector myOwnshipLocation
Platform position at time of image capture.
Definition rfxSarMessage.h:695
double myCenterLat
Latitude of the image center point.
Definition rfxSarMessage.h:704
DtImageWarning myWarning
Warning code for this response.
Definition rfxSarMessage.h:671
double myCenterAlt
Altitude of the image center point.
Definition rfxSarMessage.h:710
double mySensorDirectionElevation
Elevation angle of the sensor view direction.
Definition rfxSarMessage.h:716
virtual void serialize(DtStreamWriter &writer)
Serializes the message data to a stream writer.
virtual void setWarning(DtImageWarning error)
Sets the warning code for this response.
DtImageFormat myImageFormat
Format used for the image data.
Definition rfxSarMessage.h:680
virtual std::string filename()
Gets the full path of the saved image.
virtual void setOwnshipOrientation(DtTaitBryan orientation)
Sets the platform orientation at the time of image capture.
virtual void setSensorViewDirection(double azimuth, double elevation)
Sets the sensor view direction.
virtual void setCenterPosition(double lat, double lon, double alt)
Sets the center position of the SAR image.
DtImageError myError
Error code for this response.
Definition rfxSarMessage.h:668
DtSarResponse()
Default constructor.
virtual void setSystemTime(double time)
Sets the UTC time when the image was captured.
virtual unsigned char * data()
Gets the binary image data.
virtual DtTaitBryan ownshipOrientation()
Gets the platform orientation at the time of image capture.
virtual double systemTime()
Gets the UTC time when the image was captured.
virtual int dataLength()
Gets the size of the image data in bytes.
virtual DtImageWarning warning()
Gets the warning code for this response.
double mySystemTime
UTC time of image capture.
Definition rfxSarMessage.h:701
unsigned int myReturnMethod
Delivery method used for the image.
Definition rfxSarMessage.h:677
virtual void setImageFormat(DtImageFormat format)
Sets the image format used.
virtual int messageSize()
size of the message
virtual void setOwnshipLocation(DtVector location)
Sets the platform position at the time of image capture.
double mySensorDirectionAzimuth
Azimuth angle of the sensor view direction.
Definition rfxSarMessage.h:713
int myDataLength
Length of the image data in bytes.
Definition rfxSarMessage.h:689
virtual unsigned int returnMethod()
Gets the image delivery method used.
std::string myFilename
Full path to the saved image file.
Definition rfxSarMessage.h:686
virtual void setImageDataType(DtImageDataType type)
Sets the image data type used.
virtual void setData(unsigned char *buffer, int length)
Sets the binary image data.
virtual DtImageError error()
Gets the error code for this response.
virtual DtVector ownshipLocation()
Gets the platform position at the time of image capture.
virtual void setReturnMethod(unsigned int method)
Sets the image delivery method used.
virtual DtImageFormat imageFormat()
Gets the image format used.
virtual void deserialize(DtStreamReader &reader)
Deserializes message data from a stream reader.
unsigned char * myData
Pointer to the binary image data.
Definition rfxSarMessage.h:692
virtual void getCenterPosition(double &lat, double &lon, double &alt)
Gets the center position of the SAR image.
Stream reader for decoding values from a byte array in little endian format.
Definition byteStream.h:32
Stream writer for encoding values into a byte array in little endian format.
Definition byteStream.h:159
Defines export macros for the RadarFx Shared library.
#define RFX_DLL_SHARED
Export/import macro for non-Windows platforms (empty)
Definition export.h:25
Definition radarFxConnectorDriver.h:21
DtImageRotation
Image orientation enumeration.
Definition rfxImageMessage.h:43
DtImageFormat
Image format enumeration for radar images.
Definition rfxImageMessage.h:29
DtImageError
Error codes for radar image responses.
Definition rfxImageMessage.h:119
DtImageDataType
Image data type enumeration.
Definition rfxImageMessage.h:61
DtImageWarning
Warning codes for radar image responses.
Definition rfxImageMessage.h:131
Defines common base classes and types for all radar image messages.
Defines the base message class for RadarFX client-server communication.
Image dimensions structure.
Definition rfxImageMessage.h:71