Rotating-Pulsating View

Top  Previous  Next

The rotating-pulsating Viewpoint type enables users to set up an output window that displays a primary and secondary system in a rotating and pulsating system. The purpose of the rotating-pulsating view is to keep the primary and secondary objects of the system stationary so that behavior of a Spacecraft object traveling between the two objects can be more easily observed. The primary and secondary objects of the view can be either CelestialObject or Spacecraft objects, and the pulsating behavior can be left enabled or disabled as desired. The following is a list of the configurable options for a rotating-pulsating Viewpoint.


Primary Object

Secondary Object

Center Mode

Center Object

Center Offset

Pulsating Behavior

Reference Distance

Reference Vector


Sample RotatingPulsating viewpoint in FreeFlyer

Sample RotatingPulsating viewpoint in FreeFlyer


The script example below shows how to create a custom Rotating-Pulsating Viewpoint using the center offset option with Earth and Mars as the primary and secondary objects, respectively, and add it to a ViewWindow. We are also showing how to set the reference vector, the pulsating behavior, and the camera options for the view.


// Create Rotating-Pulsating Viewpoint

Viewpoint RotatingPulsatingViewpoint;

Spacecraft Spacecraft1;

RotatingPulsatingViewpoint.ViewpointType                           = "rotatingpulsatingview";

RotatingPulsatingViewpoint.RotatingPulsatingView.CenterMode        = 1;   // Offset Mode

RotatingPulsatingViewpoint.RotatingPulsatingView.CenterOffset      = 0.5; // 50% Offset

RotatingPulsatingViewpoint.RotatingPulsatingView.PrimaryObject     = Earth.ObjectId;

RotatingPulsatingViewpoint.RotatingPulsatingView.SecondaryObject   = Mars.ObjectId;


RotatingPulsatingViewpoint.RotatingPulsatingView.Pulsating         = 1;

RotatingPulsatingViewpoint.RotatingPulsatingView.ReferenceDistance = 149597870;

RotatingPulsatingViewpoint.RotatingPulsatingView.ReferenceVector   = 2;   // MJ2000 Earth Ecliptic

RotatingPulsatingViewpoint.RotatingPulsatingView.RightAscension    = 270;

RotatingPulsatingViewpoint.RotatingPulsatingView.Declination       = 90;

RotatingPulsatingViewpoint.RotatingPulsatingView.Radius            = 152800000;


ViewWindow myView({Spacecraft1});



Update myView;


When basing the reference vector of the frame on the relative velocity between the primary and secondary objects and visualizing it in a Rotating-Pulsating Viewpoint, you must configure the primary and secondary objects a specific way. These objects must have their velocity stored to the ViewWindow for the view to draw their history. This can be enabled by checking the "Store Velocity" option in the ViewWindow object editor for the primary and secondary objects, as shown below.



This can also be enabled for an object associated with a ViewWindow at any point in the Mission Plan's execution by calling the ViewWindow.SetObjectStoreVelocity() method.


// Store Velocity for Earth and Moon

myView.SetObjectStoreVelocity(Earth.ObjectId, 1);

myView.SetObjectStoreVelocity(Moon.ObjectId, 1);



See Also


View Output Properties


Rotating Pulsating Systems

RotatingPulsatingViewpointOptions Properties and Methods