WSF Core 2.6 - 08 May 2020¶
Visit the AFSIM 2.6 Release Page on DI2E (Access Controlled) for more information and resources related to this release.
Release Dates¶
WSF Core 2.6.3 - 19 Feb 2021
WSF Core 2.6.2 - 13 Nov 2020
WSF Core 2.6.1 - 05 Aug 2020
WSF Core 2.6.0 - 08 May 2020
General¶
It is no longer an initialization error when a sensor does not report anything, either by specifying no reporting flags, or using the reports_nothing command.
Corrected potential security vulnerabilities and other issues identified through static code analysis, including buffer overflows, insecure randomness, unreleased resources, use after free, memory leaks, and type mismatches.
Removed the draw_orbits command. This functionality has been replaced by plugins for Mystic and Warlock.
The WsfSpaceMover.Descriptor script method now returns an empty string by default (i.e., when a descriptor value is not provided either as an input or as part of a TLE); whereas it had previously returned the mover’s parent platform name.
Known Issues¶
The script methods write and write_d do not get filtered by the console_output command.
P6DOF: Nested sequencers do not execute properly for self-jettisoning vehicles – only use non-nested sequencers for these vehicles until this issue is resolved.
Corrections¶
(2.6.3) Corrected issues when using platform types with a WSF_ROAD_MOVER in a road_traffic block. If the off_road_speed was explicitly set, then these platforms were always traveling at the off-road speed even when on the road network. Additionally, these platforms were not using the speeds specified in the road_traffic block. (AFSIM-151)
(2.6.3) Corrected an issue with checking terrain masking when using the use_fast_masking_check option. The algorithm was going one step too far, checking behind the target. This results in false-positives of terrain masking when line-of-sight isn’t actually blocked. (AFSIM-608)
(2.6.3) Corrected an issue where the wrong reason was provided in event_output for the failure of a behavior_tree node to execute when calling the WsfBehaviorTreeNode.Failure method multiple times. (AFSIM-99)
(2.6.3) Corrected an issue where the script method WsfZoneRouteFinder.AvoidZone would not add the specified zone to the list of avoidance zones. (AFSIM-163)
(2.6.3) road_traffic is now generated on Monte Carlo iterations of a simulation. (AFSIM-168)
(2.6.3) Corrected an issue where comm messages between simulations were unreliable when more than two simulations were connected over DIS. (AFSIM-322) (AFSIM-323)
(2.6.3) Prevent the mover from being swapped when WsfPlatform.SwapMover is called on an externally moved platform. This prevents external simulations controlling a platform’s movement via DIS Entity State PDUs from losing control of the platform’s movement. (AFSIM-725)
(2.6.3) Correct an issue with the Lambert orbital targeting solver that would lead to incorrect solutions for some hyperbolic transfers. (AFSIM-908)
(2.6.3) Changed the time used in the lunar model from UT1 to TT. (AFSIM-886)
(2.6.3) Corrected a crash when calling WsfXIO.Subscribe, WsfXIO_PublishKey.Field, or WsfXIO_PublishKey.ToString from script. (AFSIM-951)
(2.6.2) Corrected an issue in which brace initialization (
= {}
) on non-constructible script types resulted in null objects. Brace initialization for non-constructible types is now a script compiler error.(2.6.2) Corrected an issue where WsfPlatform.AccelerationNED would sometimes yield incorrect results, depending on what other queries have been previously executed on the same platform. (AFSIM-512)
(2.6.2) Corrected an issue with incorrect functionality and instability regarding the observer usage of LINK_ENABLED_ON_LOCAL, LINK_DISABLED_ON_LOCAL, LINK_ENABLED_ON_MANAGER, and LINK_DISABLED_ON_MANAGER. (Issue #2507)
(2.6.2) Corrected an issue with csv_event_output involving inconsistencies between the header and data being output in regard to SENSOR_TRACK_DROPPED and LOCAL_TRACK_DROPPED. (AFSIM-148)
(2.6.2) Added missing grammar for loiter_route command for air_traffic. (AFSIM-176)
(2.6.2) Corrected a bug that resulted in an input error when attempting to reference a user-defined error_model inside a sensor. (AFSIM-194)
(2.6.2) Corrected a bug where WsfZone.Reference was not returning correct values for zones that reference a platform or position. (AFSIM-135)
(2.6.2) Added an error message on execution of a callback defined at the global scope, if the callback script cannot be executed. (AFSIM-191)
(2.6.2) Added an error message on initialization of a callback defined at the platform scope. If the callback processor or script cannot be found, the simulation will fail to initialize. (AFSIM-192) (AFSIM-193)
(2.6.2) Corrected a bug which prevented WsfArticulatedPart.SetXYZ from affecting a part’s location. (AFSIM-293)
(2.6.2) Corrected an issue where the path computer, used by waypoint mover types, was not correctly calculating the turn radius when applying the body_g_limit constraint. The error was causing the calculated turn radius to be larger than expected. (AFSIM-301)
(2.6.2) Corrected an issue where defining a struct in an aux_data block erases previously defined values. (Issue #2363)
(2.6.2) Corrected an issue which caused shapefiles to load very slowly. (Issue #2404)
(2.6.2) Corrected an issue in which a platform referencing an undefined signature did not result in an initialization error. (Issue #2265)
(2.6.1) Corrected a bug where sending a message between the same WSF_SCRIPT_PROCESSOR multiple times at the same simulation time could cause an invalid MESSAGE variable. (AFSIM-257)
(2.6.1) Corrected an issue with WsfPlatform.GroundRangeTo producing different results for zero and non-zero altitudes. (Issue #2307)
(2.6.1) Corrected the position of waypoints within a route when both the offset and transform_route commands were used. (AFSIM-169)
(2.6.1) Corrected Math.AngleIsBetween to return true if the limits represent a full circle. (AFSIM-221)
(2.6.1) Corrected an issue where runtime comm deletion did not trigger the correct observer. (Issue #2247)
Corrected an issue with missing header data for csv_event_output regarding MESSAGE_HOP. (Issue #2177)
Corrected an issue with comparisons for equality (
==
) and inequality (!=
) between two instantiations of a script_struct. (ELSZ #250)Corrected an issue where command chains are not correctly updated when a platform is deleted or a new commander is assigned. (ELSZ #244)
Corrected an issue where a transmitter’s pulse_repetition_interval could become NaN. (ELSZ #301)
Corrected an issue in which, under certain circumstances, an invalid reference may be provided within a script context, resulting in a script exception when the reference is used. (Issue #2097)
Corrected the names of script methods WsfSensor.Xmtr and WsfSensor.XmtrCount to match the documentation.
Corrected an issue with WSF_GEOMETRIC_SENSOR where a pd_range_table with fewer than two entries can cause crashes. Such a table now results in an input error. (ELSZ #245)
Corrected an issue in which a sensor’s cueing limits were not being enforced based on the current mode. (Issue #1425)
Changed the minimum valid time value for the deferred_connection_time to one second. This prevents issues that arise when using very small time values. (ELSZ #273)
Corrected problems with fusion of track emitter and signal data. (Issue #1741)
Corrected a crash that could occur when using empty strings in aux_data. (Issue #1867)
Corrected an issue with which external entities may erroneously and repeatedly be reported as stale in simulations recording to the event_pipe. (Issue #1930)
Corrected a crash that occurred when an include command in a file created a circular dependency. (Issue #1601)
Corrected a crash that may occur when executing the simulation, with a DIS interface defined, shortly after a DIS platform is removed from the simulation. (Issue #1937)
Corrected a crash when a platform with a route mover is commanded to ReturnToRoute and was never given an initial route (default route). (ELSZ #291)
Modified the calculation of covariance ellipsoid axes to ensure the length of the major axis for an axis-aligned ellipse is equal to two times the standard deviation. The following script methods are affected: WsfCovariance.MajorAxis, Ellipsoid.SemiAxisSide and Ellipsoid.SemiAxisUp. (ELSZ #294)
Corrected an issue with missing platform part commands on the router object. These commands are now available for the router object, with the exception of the commands that initially disable the functionality of the router. (Issue #1948)
Corrected a crash that occurred when an external platform fails initialization. (Issue #2037)
Corrected a problem where dead reckoning algorithms were providing inconsistent platform location updates in realtime, event-stepped simulations, leading to periodic relative location errors among platforms. (Issue #2111)
Corrected missing router events from csv_event_output. (Issue #2173)
Corrected an issue with the sector_scan sensor scheduler in which scan rates were incorrectly calculated in some cases, resulting in asynchronous behavior between sectors.
Corrected an issue with data rates calculated during comm message transmission not being updated on the message EM interaction. (ELSZ #300)
Corrected an issue with incorrect evaluation of cyber_trigger intervals. (Issue #2088)
(2.6.3) Fixed issue where the mover of a weapon with a deferred launch would be initialized twice, resulting in invalid data. (AFSIM-142)
(2.6.3) Corrected an issue where using WsfWeaponEngagement.SetPkDegrade was ineffective if called from within the on_weapon_target_engagement script. (AFSIM-895)
(2.6.2) Corrected an issue where the WSF_SAR_SENSOR was no longer checking the resulting signal-to-noise against the receiver’s detection threshold when determining probability of detection. The change occurred somewhere between v1.10.5 and v2.0.1. As a result, the electronic attack WSF_JAMMER_POWER_EFFECT was having no effect on the outcome of a detection attempt. (AFSIM-324)
(2.6.2) Corrected an issue where a jammer could cause a crash when publishing to the event-pipe. (Issue #2471)
(2.6.2) Corrected an issue where values returned from WsfPerceptionProcessor.PerceivedAssets and values passed into a custom generator would become invalid outside the scope of the calling script. (AFSIM-212)
(2.6.2) Corrected an issue with csv_event_output involving inconsistencies between the header and data being output in regard to WEAPON_HIT, WEAPON_MISSED, WEAPON_KILLED, and WEAPON_TERMINATED. (AFSIM-148)
(2.6.2) Corrected an issue with weapon uplinks not occurring at the interval specified by the uplink_send_interval on a WSF_TASK_PROCESSOR. (AFSIM-136)
(2.6.2) Corrected a bug where values returned from WsfClusterManager.ConvexHull could become invalid outside the calling script context. (AFSIM-106)
(2.6.2) Added missing grammar for the fuse_function_range command in the WSF_WEAPON_FUSE. (AFSIM-158)
(2.6.2) Added missing grammar for the ignore_without_location and ignore_without_velocity commands in the WSF_THREAT_PROCESSOR. (AFSIM-200)
(2.6.2) Added a detailed description for the velocity_pursuit_gain command in the WSF_FORMATION_FLYER. (AFSIM-231)
(2.6.2) Corrected an issue with the WsfEM_Interaction.SignalToNoiseClutterJamming, WsfEM_Interaction.NoiseJammerPower, WsfEM_Interaction.PulseJammerPower, and WsfEM_Interaction.CoherentJammerPower methods returning a value of zero by default. A value of -300 will now be returned for 0 power cases to be consistent with other EM interactions power query methods. (AFSIM-390)
(2.6.1) Corrected an issue with WsfTaskManager weapon task methods TimeSinceWeaponLastFiredFor, TimeSinceWeaponLastTerminatedFor, WeaponsActiveFor, SalvosFiredAt, RoundsFiredAt, and AbortFiringAt producing erroneous results. (Issue #2287)
(2.6.1) Corrected an issue with WSF_WEAPON_FUSE in which proximity checks for detonation would not occur against the first platform defined in the scenario when do_not_use_current_target was enabled. (Issue #2251)
(2.6.1) Corrected an issue in which a WEAPON_MISSED event (see observer, event_output, csv_event_output) was not generated when the intended target was invulnerable to the weapon_effects, for example, when outside the maximum lethal radius. (Issue #1453)
(2.6.1) Fixed a crash that sometimes occurred when a multi-beam WSF_ESM_SENSOR linked to a WSF_RF_JAMMER with a repeater. (AFSIM-154)
Corrected an issue in which a processor of type WSF_WEAPON_FUSE could not be cast to a WsfWeaponFuse in script.
Corrected an issue with the WSF_JTIDS_TERMINAL in which a failed message delivery attempt for any member in a JTIDS slot group resulted in a delivery failure for any subsequent member in the slot group. (Issue #2012)
Corrected a crash while updating false_target blip positions when using WSF_FALSE_TARGET_EFFECT.
Corrected a crash when constructing a WsfQuantumTask in a custom allocator in a WSF_QUANTUM_TASKER_PROCESSOR. (ELSZ #247)
Corrected an issue with the script methods WsfTaskManager.WeaponsFiredAt and WsfTaskManager.WeaponsActiveFor not returning correct values after firing a WSF_IMPLICIT_WEAPON. (ELSZ #246)
(2.6.3) Made initialization of AIR_TO_AIR_LAUNCH_COMPUTER_GENERATOR fail when deferred launch is active on the launch platform, rather than have an unclear assertion fail. (AFSIM-141)
(2.6.3) Corrected an issue where certain weapons caused the ATG_LAR_AND_LC_GENERATOR to generate incorrect LARs. (AFSIM-143)
P6DOF: Renamed the Type method on WsfManeuver to WsfManeuver.GetManeuverType. (Issue #1684)
P6DOF: Corrected an issue where sequencer jettison actions were not instantiating new platforms for nested subobjects. (Issue #1901)
P6DOF: State information retrieved through on_initialize2 is now being populated appropriately. (ELSZ #303)
P6DOF: The command use_route is now recognized as a valid command in Wizard for WSF_P6DOF_MOVER. (Issue #2086)
P6DOF: Fixed an error in low-pass filtering on autopilot signal derivatives. (Issue #2112)
Corrected several issues for platforms using the WSF_BRAWLER_MOVER when they are being added to the simulation at a time > 0. The platforms were getting rapidly projected from a time of zero to the current simulation time during the first update. This effect would be seen if the platform creation_time was greater than zero, or when using the WsfPlatform.SwapMover script method, or when turning the mover off and then back on. (ELSZ #264)
(2.6.3) WsfPlatform.FutureLocation is now valid for platforms with a WSF_INTEGRATING_SPACE_MOVER. (AFSIM-640)
(2.6.3) Corrected problems with special cases of change_inclination maneuvers. This issue caused the WSF_NORAD_SPACE_MOVER to enter an infinite loop when attempting to change to an equatorial, non-circular orbit. (AFSIM-315)
(2.6.2) Corrected a problem where the WSF_ORBIT_DETERMINATION_FILTER was not working properly due to incorrect initialization.
(2.6.2) Corrected an issue where the WSF_SPACE_OPTICAL_SIGNATURE was providing incorrect values in the special case where the target platform has no mover, due to eclipsing.
(2.6.2) Corrected an issue where the EclipseExit script method was being called on the ECLIPSE_ENTRY observer callback.
(2.6.2) Corrected a problem where an inherent_contrast warning would be displayed on WSF_SPACE_OPTICAL_SIGNATURE, which does not require it.
(2.6.2) Fixed an issue where WsfSpaceMover.EclipsedState would never return the penumbral state. (Issue #2530)
(2.6.1) Corrected a problem where WsfSpaceMover.SetOrbit could fail on a platform with an insufficiently defined space mover.
Corrected a problem where Wizard incorrectly recognized oblate_earth as grammatical for WSF_NORAD_SPACE_MOVER. (Issue #1501)
Corrected a problem where targeting solutions for some orbital propagators could fail, leading to a crash. (Issue #1852)
Corrected an issue where Orbit Determination Fusion was not providing orbit determination updates as accurately as in previous versions. (Issue #2027)
Corrected a problem where WSF_ORBITAL_CONJUNCTION_PROCESSOR would attempt to analyze tracks with incomplete kinematics. (Issue #1997)
Corrected an issue where the earth gravitational parameter attributed to the WGS-84 standard (3.986004418e+14) was actually the GPS recommended value (3.986005e+14). (Issue #2056)
(2.6.1) Fixed a crash when generating reports. (Issue #19)
Corrected an issue in the Post Processor that now allows spaces in the report_name, data_file, and output_directory. (Issue #18)
Enhancements¶
(2.6.2) Added script method WsfGeoPoint.LocationECI. (Issue #2425)
(2.6.2) Added new script method Array<T>.Insert, which can be used to insert one or more new elements into a script Array at a specified position. This method has replaced the undocumented method
__Insert
. (AFSIM-103)Added support for English units of mass and length (
slug
,lb
,ft
,in
) when specifying angular inertia values.Added new script method WsfEM_XmtrRcvr.ArticulatedPart. (ELSZ #263)
Added new script method WsfPlatform.AddCategory to add to a platform’s category list. (ELSZ #260)
Added the ability to select the interpolation_type (linear or logarithmic) for signatures that use an Azimuth-Elevation Table Definition. (Issue #1702)
Added new class Color to represent colors in script, as well as a version of WsfDraw.SetColor that accepts a Color object. The return type of WsfSimulation.ClassificationColor has been changed from Vec3 to Color. (Issue #1803)
Added new script class Path to represent file system paths. FileIO.Open now accepts a Path object. (Issue #1424)
The classification and classification_levels commands now support quoted strings for the level name, so the classification string can have spaces in it. The classification string created now uses “//” between trigraphs and caveats. (Issue #1896)
Added new script block advanced_behavior_tree that pairs with the new Behavior Tree Tool. (Issue #1857)
Added the central_body command block to the global_environment inputs to allow changing the representation of the central body ellipsoid. (Issue #1863)
Added the ability to publish visual_part articulations through the event_pipe. (Issue #1913)
Added new command simulation_name to facilitate simulation identification in Warlock and Results Vis. Name can be accessed from WsfSimulation.Name. (Issue #1931)
Added the scenario classification string to the event_output and csv_event_output logs. (Issue #1926)
Added new script method WsfEventPipe.AddBookmark to add bookmarks to the scenario. (Issue #2000)
Added new script classes WsfEM_XmtrRcvr, WsfEM_Rcvr, WsfEM_Antenna, WsfEM_Attenuation, WsfEM_Propagation, and WsfAntennaPattern, and added additional methods to WsfEM_Xmtr. Added the ability to retrieve the WsfEM_Rcvr from WsfSensor, WsfComm, and WsfEM_Interaction. (Issue #1821)
Added the ability to filter and format console_output. Added variants of the writeln script method to create different types of output. (Issue #2146)
Added new sensor scheduler commands: initial_heading specifies the initial heading of the sensor, which would otherwise be random, for a physical_scan scheduler, and frame_based_scheduling configures the behavior of detection chances for a sector_scan scheduler.
Added medium objects and associated capabilities to the communications framework. (Issue #1309)
Implemented several script methods that did not work for platforms using the WSF_BRAWLER_MOVER, specifically WsfPlatform.Route, WsfPlatform.RoutePointIndex, WsfPlatform.TurnToRelativeHeading, and WsfPlatform.SwapMover. (ELSZ #295)
Added initial_quantity_ratio to WSF_BRAWLER_FUEL, a new WsfBrawlerMover class to interact with WSF_BRAWLER_MOVER via script, and new script methods for WsfBrawlerProcessor.
Added commands orbit_color and orbit_color_rgb (DEPRECATED in 2.7) to the WSF_SPACE_MOVER and WSF_NORAD_SPACE_MOVER. The script methods GetOrbitColor and SetOrbitColor were also added to the WsfSpaceMover.
Added the ability to specify the central body and related ellipsoid model that defines the origin of the coordinate system used for orbital propagation. Depending on the mover type, propagation is also affected by the associated gravitational parameter. (Issue #1863)
Added ability to create and manage constellations of space-domain platforms via script using the classes WsfConstellationMaker and WsfConstellation. (Issue #1775)
Added the WSF_INTEGRATING_SPACE_MOVER, which provides a flexible integrating propagator for space missions outside the immediate vicinity of the Earth. (Issue #1814)
Added and exposed initial state accessors to WsfSpaceMover. Includes: InitialPositionLLA(), InitialPositionECI(), InitialPositionWCS(), InitialVelocityECI(), InitialVelocityWCS(). (Issue #1855)
(2.6.2) Added new class WsfSAR_Sensor to expose the WSF_SAR_SENSOR to the scripting language. (AFSIM-109)
Added new script methods for WsfWeaponEngagement script class, including WeaponLocationECS, WeaponVelocityECS, TargetResult, IncidentalResult and ExtendedResult. (Issue #1548)
P6DOF: Added support for sending P6Dof data through the event pipe to view in Results Vis. (Issue #1646)
P6DOF: Added support for custom event_pipe data rates for P6Dof data in Wizard. (Issue #1646)
P6DOF: Added the relative maneuver WsfPursueManeuver allowing a platform to pursue a given platform. (Issue #1684)
P6DOF: Autopilot now makes use of stabilizing channels. (yaw for bank-to turn, roll for bank-to-turn) (Issue #1729)
P6DOF: SAS is now available as an augmentation on manual controls. (Issue #1729)
P6DOF: Alpha (and skid-to-turn beta) feed forward has been augmented to account for shifts in CG and throttle position. (Issue #1729)
P6DOF: aero_data tables now support the use of “reduced frequency” instead of angular rate for the rate-based derivatives. See use_reduced_frequency. (Issue #1760)
P6DOF: aero_component tables now include damping coefficients, including: cmq, cnr, clp, clq, and clr. (Issue #1806)
P6DOF: Autopilot support generation previously reported failure if a vehicle was uncontrollable through at least one tested Mach number. Now, failure is only reported if a vehicle is uncontrollable at every tested Mach number. (Issue #1986)
Added tiff as an output format for horizontal_map. (Issue #792)
Updated the shape-file output format for horizontal_map to create a SHX file for improved compatibility. (Issue #792)
Added the command terminate_on_launch_failure (default true) to weapon_tools to specify whether to terminate processing when a weapon fails to fire. This command is only applicable for the AIR_TO_AIR_LAUNCH_COMPUTER_GENERATOR, the ATG_LAR_AND_LC_GENERATOR, and the BALLISTIC_LAUNCH_COMPUTER_GENERATOR. (ELSZ #309)
Added a more robust ability to pass user provided parameters to cyber effects, to include the new effect WSF_CYBER_SCRIPT_EFFECT_ENHANCED. Parameters may now be defined and used in the script context via the WsfCyberAttackParameterObject and WsfCyberAttackParameters. A new version of the WsfSimulation.CyberAttack method is available for passing user supplied parameters. The WsfPlatform.CyberAttack method has been modified to utilize the new parameter objects instead of passing a raw script Object. (Issue #1504)
Development¶
(2.6.2) Provided a public accessor
GetMaximumRange()
to return the maximum range of aWsfSensorMode
. (AFSIM-302)(2.6.2)
UtInputPreprocessor
now stores default values for all usages of preprocessor variables. (AFSIM-303)(2.6.2) Fixed an issue in
WsfDisData
where the constructor would incorrectly override request ID values from externally receivedDisData
PDUs. (AFSIM-216)(2.6.1) Corrected an issue where retaining the application object while creating more than one scenario object could cause a segmentation fault due to missing medium component factories. (Issue #2226)
(2.6.1) Corrected an issue where the internal linkage class variable was referred to as external linkage and vice versa in
WsfMessageProcessor
. (AFSIM-285)AFSIM has officially deprecated the 32-bit compilation option starting in version 2.6. Not all AFSIM features are 32-bit compatible.
CMake cache entry
WSF_ADD_EXTENSION_PATH
can now specify multiple search paths for extensions in a;
-separated list. (Issue #1649)Relaxed the compiler version check for compatible plugins on Windows (MSVC). Only the first two digits, indicating C++ toolset major number and binary compatibility, are compared to those of the host application. (ELSZ #133)
Removed support for running the automated tests using Perl. Python 3 is now required for the
REGRESSION_TEST
andAUTO_TEST
targets.Corrected the source value used for WCS velocity in the
UtEntity
copy constructor. (ELSZ #272)Added the directory containing plugins to library search path for Windows to allow plugins to have dependencies on other plugins. (ELSZ #172)
Refactored
WsfEventOutput
andWsfCSV_EventOutput
so that events derive from a common base class. (Issue #302)Converted
UtBlackBody
class into aBlackBody
namespace, nested within theut
namespace.UtVec3dX
now overloads theoperator<<
to write a formatted vector to astd::ostream
. (Issue #1773)Fixed a bug in the
add_wsf_doxygen_input
CMake macro that prevented Doxygen from generating documentation for the files in the core/wsf/source directory. (Issue #1785)Corrected an issue where the computed ECI-referenced orientation of
WsfArticulatedPart
(UtEntityPart
) was incorrect. (Issue #1829)Added a logging framework to be used in place of
std::cout
. SeeUtLog.hpp
for basic usage. (Issue #566)Renamed
WsfEventPipeInterface::Send
toSendImmediate
, changing its signature to usestd::unique_ptr
to transfer ownership of the message and take an additional boolean argument indicating whether the event originated in an external simulation. Also added a methodSendDependent
to cache platform dependent messages until a PlatformInfo message is sent. (Issue #1797) (Issue #1996)Added special field types
index
andtime
to*.utpack
files to support combining AER files. (Issue #1797)Refactored
UtTextRange
to ensure that the beginning of the range is always greater than or equal the end. (Issue #1946)Corrected an infinite loop in
UtStringUtil::ReplaceAll
when the replacement string contains the part of the string to be replaced. (Issue #2010)Corrected an issue where the wrong
swap
function could be called forUtScriptData
andUtVariant
. (ELSZ #298)Corrected an issue where
UtVariant
was using undefined behavior with respect to type punning in unions. (ELSZ #299)Corrected an issue with an incorrect coefficient in
UtQuinticSpline::TwoPoint
. (Issue #1997)Added a
SlewCompleted
callback forWsfArticulatedPart
. (Issue #2025)Corrected an issue that produced incorrect inertial to WCS acceleration conversions. (Issue #2111)
Added
WsfSensorSchedulerTypes
which provides the mechanism for developers to register their own sensor scheduler types, via theAddObjectFactory
method.
(2.6.2) Corrected an error in the matrix multiplication order in
UtECI_Conversion
for the True-of-Date (TOD) to WCS conversion when using polar angle offsets. (AFSIM-297)(2.6.2) Corrected the issue of handling time-reversed updates in
ut::OrbitalState
. Prior to this change, the ECI conversion would be updated only if the new time came after the old time, but some script methods update bidirectionally in time. (AFSIM-298)Modified
UtOrbitalPropagator
to internally utilize the Geocentric Celestial Reference Frame (GCRF, introduced in AFSIM 2.5) for propagation. (Issue #1837)Refactored space software architecture to utilize orbital states to better encapsulate orbital propagation. An Orbital state representation can be either an orbital state vector, which contains a position and velocity, or it can be a set of orbital elements (see
UtOrbitalElements
). Orbital states are referenced to a particular epoch, or instant in time, as represented by aUtCalendar
object, as well as a particular coordinate system (equatorial or ecliptic), and inertial reference frame. (Issue #1863)Provided explicit central body representations so that they can be specified as the gravitating body for orbital propagators, as well as provide the ellipsoidal representation for computing LLA values from ellipsoid-centered locations. (Issue #1863)
(2.6.2) Registered a component role
cWSF_COMPONENT_RF_JAMMER
forWsfRF_Jammer
. (AFSIM-242)