AnimatLab  2
Test
VortexAnimatSim::Visualization::OsgLinearPath Class Reference
+ Inheritance diagram for VortexAnimatSim::Visualization::OsgLinearPath:
+ Collaboration diagram for VortexAnimatSim::Visualization::OsgLinearPath:

Classes

class  ControlPointTransformFunctor
 

Public Types

typedef std::vector< osg::ref_ptr< ControlPoint > > PointListType
 

Public Member Functions

 OsgLinearPath ()
 
 ~OsgLinearPath ()
 
bool AddControlPoint (const osg::Vec3d point, const double time)
 
bool AddControlPoint (ControlPoint *p)
 
virtual bool AddItem (const std::string &strItemType, const std::string &strXml, bool bThrowError=true, bool bDoNotInit=false)
 Adds a new object to this parent. More...
 
virtual bool AfterPathTime (double dblTime)
 
virtual bool BeforePathTime (double dblTime)
 
void ClearAllControlPoints ()
 
virtual osg::Node * CreateTestGeom (const bool showControlPoints=false, const unsigned int numSamples=3, ControlPointTransformFunctor *xform=NULL)
 create and return a scene graph making up the curve More...
 
virtual double EndTime ()
 
virtual void EndTime (double dblTime, bool bSortPaths=true)
 
ControlPointGetControlPoint (const unsigned int i)
 
osg::Vec3d & GetInterpPosition ()
 
unsigned int GetNumberOfControlPoints ()
 
osg::Vec3d GetPositionAtTime (const double t)
 
virtual void Initialize ()
 Initializes this object. More...
 
virtual bool Interpolate (const double t)
 Interpolate spline at time t. More...
 
virtual CStdColor * LineColor ()
 Gets the LineColor color value. More...
 
virtual void LineColor (CStdColor &aryColor)
 Sets the LineColor color. More...
 
virtual void LineColor (float *aryColor)
 Sets the LineColor color. More...
 
virtual void LineColor (std::string strXml)
 Loads the LineColor color from an XML data packet. More...
 
virtual void Load (StdUtils::CStdXml &oXml)
 Loads the item using an XML data packet. More...
 
virtual VsScriptedSimulationWindowParentWindow ()
 
virtual void ParentWindow (VsScriptedSimulationWindow *lpWnd)
 
virtual std::string PartID ()
 Gets the GUID ID of the part this camera will track while on this path. More...
 
virtual void PartID (std::string strID)
 Sets the GUID ID of the part this camera will track while on this path. More...
 
virtual void QueryProperties (CStdPtrArray< TypeProperty > &aryProperties)
 
virtual void RedrawCurve ()
 
virtual bool RemoveItem (const std::string &strItemType, const std::string &strID, bool bThrowError=true)
 Removes a child item from this parent. More...
 
virtual void ResetSimulation ()
 Resets the simulation back to time 0. More...
 
virtual bool SetData (const std::string &strDataType, const std::string &strValue, bool bThrowError=true)
 Set a variable based on a string data type name. More...
 
virtual bool ShowWaypoints ()
 
virtual void ShowWaypoints (bool bVal)
 
virtual void SimStarting ()
 Called just before the simulation starts. More...
 
virtual double StartTime ()
 
virtual void StartTime (double dblTime, bool bSortPaths=true)
 
virtual BodyPart * TrackBody ()
 
virtual bool Visible ()
 
virtual void Visible (bool bVal)
 
virtual bool VisibleInSim ()
 
virtual void VisibleInSim (bool bVal)
 
virtual bool WithinPathTime (double dblTime)
 
- Public Member Functions inherited from AnimatSim::AnimatBase
 AnimatBase ()
 Constructs an AnimatBase object. More...
 
virtual ~AnimatBase ()
 Destroys the AnimatBase object.. More...
 
virtual void AfterResetSimulation ()
 Called after a simulation reset for some objects. More...
 
virtual long CalculateSnapshotByteSize ()
 Calculates the snapshot byte size. More...
 
virtual void Copy (CStdSerialize *lpSource)
 
virtual void Enabled (bool bVal)
 Tells whether this item is enabled or not. This is not actually used for all objects, only specific ones. I am putting it in the base class though to prevent numerous duplications. More...
 
virtual bool Enabled ()
 Tells whether this item is enabled or not. This is not actually used for all objects, only specific ones. I am putting it in the base class though to prevent numerous duplications. More...
 
virtual float * GetDataPointer (const std::string &strDataType)
 Returns a float pointer to a data item of interest in this object. More...
 
virtual NeuralModuleGetNeuralModule ()
 Gets the neural module. More...
 
virtual NodeGetNode ()
 Gets the node. More...
 
virtual SimulatorGetSimulator ()
 Gets the simulator pointer. More...
 
virtual StructureGetStructure ()
 Gets the structure for this node. More...
 
virtual bool HasProperty (const std::string &strName)
 Queries this object if it has a property with the given name. More...
 
virtual std::string ID ()
 Gets the unique GUID ID of this object. More...
 
virtual void ID (std::string strValue)
 Sets the unique GUID ID of the object. More...
 
virtual void Kill (bool bState=true)
 Kills. More...
 
virtual void LoadKeyFrameSnapshot (byte *aryBytes, long &lIndex)
 Loads a key frame snapshot. More...
 
virtual std::string Name ()
 Gets the name of this object. More...
 
virtual void Name (std::string strValue)
 Sets the name of the object. Blank is acceptable. More...
 
virtual AnimatPropertyType PropertyType (const std::string &strName)
 
virtual void QueryProperties (CStdPtrArray< TypeProperty > &aryProperties)
 Queries this object for a list of properties that can be changed using SetData. More...
 
virtual void ReInitialize ()
 Re-initialize this object. More...
 
virtual void Reset ()
 Resets this object. More...
 
virtual void RigidBodyAdded (std::string strID)
 
virtual void RigidBodyRemoved (std::string strID)
 
virtual void SaveKeyFrameSnapshot (byte *aryBytes, long &lIndex)
 Saves a key frame snapshot. More...
 
virtual bool Selected ()
 Tells if this items is selected or not. More...
 
virtual void Selected (bool bValue, bool bSelectMultiple)
 Selects this object. More...
 
virtual bool SetData (const std::string &strDataType, const float fltValue, bool bThrowError=true)
 Set a variable based on a string data type name. More...
 
virtual bool SetData (const std::string &strDataType, const long lValue, bool bThrowError=true)
 Set a variable based on a string data type name. More...
 
virtual void SetSystemPointers (Simulator *lpSim, Structure *lpStructure, NeuralModule *lpModule, Node *lpNode, bool bVerify)
 Sets the system pointers. More...
 
virtual void SimPausing ()
 Called just before the simulation pauses. More...
 
virtual void SimStopping ()
 Called just before the simulation stops. More...
 
virtual void StepSimulation ()
 Step the simulation for this object. More...
 
virtual void TimeStepModified ()
 Notification method that the time step modified has been modified. Objects should recalculate any slice times as needed. More...
 
virtual std::string Type ()
 returns the string type name of this object. More...
 
virtual void Type (std::string strValue)
 Sets the class type for this object. More...
 
virtual void VerifySystemPointers ()
 Verify that system pointers have been set correctly. More...
 
virtual void VisualSelectionModeChanged (int iNewMode)
 Visual selection mode changed. More...
 

Protected Member Functions

virtual void AddWaypoint (std::string strXml)
 Creates and adds a waypoint. More...
 
bool BuildCurve ()
 
void FindCurrentWaypoint (const double t)
 
virtual int FindWaypointPos (std::string strID, bool bThrowError=true)
 Finds the array index for the waypoint with the specified ID. More...
 
void InvalidateCurve ()
 mark curve as invalid (needs to be regenerated) More...
 
osg::ref_ptr< ControlPointLoadWaypoint (CStdXml &oXml)
 Loads a camera path waypoint. More...
 
virtual void MakeVisible (bool bVal)
 
void RemoveCurve ()
 
virtual void RemoveWaypoint (std::string strID, bool bThrowError=true)
 Removes the waypoint with the specified ID. More...
 

Protected Attributes

bool m_bShowWaypoints
 
bool m_bVisible
 
bool m_bVisibleInSim
 
PointListType m_ControlPoints
 
bool m_CurveIsValid
 
double m_dblEndTime
 
double m_dblStartTime
 
int m_iCurrentWaypointIdx
 
osg::Vec3d m_Interpolated
 
ControlPointm_lpCurrentWaypoint
 
VsScriptedSimulationWindowm_lpParentWindow
 
BodyPart * m_lpTrackBody
 
osg::ref_ptr< osg::Node > m_osgSpline
 
std::string m_strPartID
 
CStdColor m_vLineColor
 
- Protected Attributes inherited from AnimatSim::AnimatBase
bool m_bEnabled
 Tells if this item is enabled or not. If it is not enabled then it is not run.
 
bool m_bSelected
 Tells whether the object is selected or not.
 
AnimatSim::Behavior::NeuralModulem_lpModule
 The pointer to this items parentNeuralModule. If this is not relevant for this object then this is NULL.
 
Nodem_lpNode
 The pointer to this items parent Node. If this is not relevant for this object then this is NULL.
 
Simulatorm_lpSim
 The pointer to a Simulation.
 
AnimatSim::Environment::Structurem_lpStructure
 The pointer to this items parent Structure. If this is not relevant for this object then this is NULL.
 
std::string m_strID
 The unique Id for this object.
 
std::string m_strName
 The name for this object.
 
std::string m_strType
 The type for this object. Examples are Box, Plane, Neuron, etc..
 

Detailed Description

Definition at line 87 of file VortexAnimatSim/OsgLinearPath.h.

Constructor & Destructor Documentation

VortexAnimatSim::Visualization::OsgLinearPath::OsgLinearPath ( )

OsgLinearPath::OsgLinearPath

description: constructor

Definition at line 33 of file VortexAnimatSim/OsgLinearPath.cpp.

VortexAnimatSim::Visualization::OsgLinearPath::~OsgLinearPath ( )

OsgLinearPath::~OsgLinearPath

description: destructor

Definition at line 56 of file VortexAnimatSim/OsgLinearPath.cpp.

Member Function Documentation

bool VortexAnimatSim::Visualization::OsgLinearPath::AddControlPoint ( const osg::Vec3d  point,
const double  time 
)

OsgLinearPath::AddControlPoint

description: add a control point

param: point - new control point to add to the list
param: time - time of arrivate at control point
return: true if successfully added control point, else false

Definition at line 74 of file VortexAnimatSim/OsgLinearPath.cpp.

Referenced by LoadWaypoint().

+ Here is the caller graph for this function:

bool VortexAnimatSim::Visualization::OsgLinearPath::AddControlPoint ( ControlPoint p)

OsgLinearPath::AddControlPoint

description: add a control point

param: p - control point to add
return: true if successfully added control point, else false

Definition at line 96 of file VortexAnimatSim/OsgLinearPath.cpp.

References InvalidateCurve().

+ Here is the call graph for this function:

bool VortexAnimatSim::Visualization::OsgLinearPath::AddItem ( const std::string &  strItemType,
const std::string &  strXml,
bool  bThrowError = true,
bool  bDoNotInit = false 
)
virtual

Adds a new object to this parent.

Generic method to add a new child item to this parent by specifying a string item type descriptor and an xml packet that can be used to load in the new object. The GUI uses this method to create new items that were added with the user interface. The item type lets the method determine what type of item is being created, like synapse, neuron, body part, etc.. It then gets the modulename, classname, and type from the xml and calls CreateObject to create the appropriate type of object. Then it passes in the xml packet to the new objects load method and does any needed initialization and adds it to the parent.

Author
dcofer
Date
2/22/2011
Parameters
strItemTypeString descriptor of the type of item that is being created.
strXmlXML packet that is used to create and load the new item.
bThrowErrorIf true then throw an error if there is a problem, otherwise return false.
Returns
true if it succeeds, false if it fails.

Reimplemented from AnimatSim::AnimatBase.

Definition at line 785 of file VortexAnimatSim/OsgLinearPath.cpp.

References AddWaypoint(), and StdUtils::Std_CheckString().

+ Here is the call graph for this function:

void VortexAnimatSim::Visualization::OsgLinearPath::AddWaypoint ( std::string  strXml)
protectedvirtual

Creates and adds a waypoint.

Author
dcofer
Date
3/2/2011
Parameters
strXmlThe xml data packet for loading the waypoint.

Definition at line 727 of file VortexAnimatSim/OsgLinearPath.cpp.

References LoadWaypoint().

Referenced by AddItem().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool VortexAnimatSim::Visualization::OsgLinearPath::BuildCurve ( )
protected

figure the curve's coefficients at the control points so that Evaluation can be accomplished.

OsgLinearPath::BuildCurve

description: Calculate unit-vectors and velocities between points.

Definition at line 170 of file VortexAnimatSim/OsgLinearPath.cpp.

Referenced by CreateTestGeom(), and Interpolate().

+ Here is the caller graph for this function:

void VortexAnimatSim::Visualization::OsgLinearPath::ClearAllControlPoints ( )

OsgLinearPath::ClearAllControlPoints

description: clear all control points

Definition at line 145 of file VortexAnimatSim/OsgLinearPath.cpp.

References InvalidateCurve().

+ Here is the call graph for this function:

osg::Node * VortexAnimatSim::Visualization::OsgLinearPath::CreateTestGeom ( const bool  showControlPoints = false,
const unsigned int  numSamples = 3,
ControlPointTransformFunctor xform = NULL 
)
virtual

create and return a scene graph making up the curve

OsgLinearPath::CreateTestGeom

description: create and return a scene graph making up the curve

param: showControlPoints - true if scene graph includes control points
param: numSamples - number of points between each control point
param: xform - position transformation functor
return: scene graph root node

Definition at line 288 of file VortexAnimatSim/OsgLinearPath.cpp.

References BuildCurve(), and Interpolate().

+ Here is the call graph for this function:

int VortexAnimatSim::Visualization::OsgLinearPath::FindWaypointPos ( std::string  strID,
bool  bThrowError = true 
)
protectedvirtual

Finds the array index for the waypoint with the specified ID.

Author
dcofer
Date
3/2/2011
Parameters
strIDID of waypoint to find
bThrowErrorIf true and ID is not found then it will throw an error, else return NULL
Exceptions
IfbThrowError is true and ID is not found.
Returns
If bThrowError is false and ID is not found returns NULL, else returns the pointer to the found part.

Definition at line 770 of file VortexAnimatSim/OsgLinearPath.cpp.

References AnimatSim::AnimatBase::ID(), StdUtils::Std_ToUpper(), and StdUtils::Std_Trim().

Referenced by RemoveWaypoint().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void VortexAnimatSim::Visualization::OsgLinearPath::Initialize ( )
virtual

Initializes this object.

After an object is loaded in it must be initialized before it can be used. This allows the object to retrieve any pointers or setup memory that it will need during execution. Each object is responsible for initializing any of its child objects, so you simply need to call this method on the containing class to init all child objects. It also calls VerifySystemPointers to make sure that the system pointers have been setup correctly.

Author
dcofer
Date
3/1/2011

Reimplemented from AnimatSim::AnimatBase.

Definition at line 819 of file VortexAnimatSim/OsgLinearPath.cpp.

References AnimatSim::Simulator::FindByID(), AnimatSim::AnimatBase::m_lpSim, and StdUtils::Std_IsBlank().

Referenced by VortexAnimatSim::Visualization::VsScriptedSimulationWindow::AddCameraPath(), and SetData().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool VortexAnimatSim::Visualization::OsgLinearPath::Interpolate ( const double  t)
virtual

Interpolate spline at time t.

OsgLinearPath::Interpolate

description: Interpolate spline at time t

param: t - interpolation time in seconds
return: true if successfully interpolated the spline, else false

Definition at line 252 of file VortexAnimatSim/OsgLinearPath.cpp.

References BuildCurve().

Referenced by CreateTestGeom(), and VortexAnimatSim::Visualization::VsScriptedSimulationWindow::TrackCamera().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void VortexAnimatSim::Visualization::OsgLinearPath::InvalidateCurve ( )
protected

mark curve as invalid (needs to be regenerated)

OsgLinearPath::InvalidateCurve

description: mark curve as invalid (needs to be regenerated)

Definition at line 159 of file VortexAnimatSim/OsgLinearPath.cpp.

Referenced by AddControlPoint(), and ClearAllControlPoints().

+ Here is the caller graph for this function:

CStdColor * VortexAnimatSim::Visualization::OsgLinearPath::LineColor ( )
virtual

Gets the LineColor color value.

Author
dcofer
Date
3/2/2011
Returns
Pointer to color data

Definition at line 421 of file VortexAnimatSim/OsgLinearPath.cpp.

Referenced by LineColor(), and SetData().

+ Here is the caller graph for this function:

void VortexAnimatSim::Visualization::OsgLinearPath::LineColor ( CStdColor &  aryColor)
virtual

Sets the LineColor color.

Author
dcofer
Date
3/2/2011
Parameters
[in,out]aryColorThe color data.

Definition at line 431 of file VortexAnimatSim/OsgLinearPath.cpp.

void VortexAnimatSim::Visualization::OsgLinearPath::LineColor ( float *  aryColor)
virtual

Sets the LineColor color.

Author
dcofer
Date
3/2/2011
Parameters
[in,out]aryColorThe color data.

Definition at line 445 of file VortexAnimatSim/OsgLinearPath.cpp.

References LineColor().

+ Here is the call graph for this function:

void VortexAnimatSim::Visualization::OsgLinearPath::LineColor ( std::string  strXml)
virtual

Loads the LineColor color from an XML data packet.

Author
dcofer
Date
3/2/2011
Parameters
strXmlThe color data in an xml data packet

Definition at line 460 of file VortexAnimatSim/OsgLinearPath.cpp.

References LineColor().

+ Here is the call graph for this function:

virtual void VortexAnimatSim::Visualization::OsgLinearPath::Load ( StdUtils::CStdXml oXml)
virtual

Loads the item using an XML data packet.

This method is responsible for loading the structure from a XMl configuration file. You should call this method even in your overriden function becuase it loads all of the base properties for this object like ID and Name. It also includes this object in the simulators AddToObjectList so that the simulator knows about this object when you do a FindObject call. If you do not call this base method then it is up to you to add your item to the simulators list of objects.

Author
dcofer
Date
3/1/2011
Parameters
[in,out]oXmlThe CStdXml xml data packet to load.

Reimplemented from AnimatSim::AnimatBase.

Referenced by VortexAnimatSim::Visualization::VsScriptedSimulationWindow::LoadCameraPath().

+ Here is the caller graph for this function:

osg::ref_ptr< ControlPoint > VortexAnimatSim::Visualization::OsgLinearPath::LoadWaypoint ( CStdXml &  oXml)
protected

Loads a camera path waypoint.

Author
dcofer
Date
2/25/2011
Parameters
[in,out]oXmlThe xml data packet to load.
Returns
The root.

Definition at line 873 of file VortexAnimatSim/OsgLinearPath.cpp.

References AddControlPoint(), and AnimatSim::AnimatBase::m_lpSim.

Referenced by AddWaypoint().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

std::string VortexAnimatSim::Visualization::OsgLinearPath::PartID ( )
virtual

Gets the GUID ID of the part this camera will track while on this path.

Author
dcofer
Date
3/18/2011
Returns
GUID ID of the part.

Definition at line 475 of file VortexAnimatSim/OsgLinearPath.cpp.

Referenced by SetData().

+ Here is the caller graph for this function:

void VortexAnimatSim::Visualization::OsgLinearPath::PartID ( std::string  strID)
virtual

Sets the GUID ID of the part this camera will track while on this path.

Author
dcofer
Date
3/18/2011
Parameters
strIDGUID ID for the part.

Definition at line 485 of file VortexAnimatSim/OsgLinearPath.cpp.

bool VortexAnimatSim::Visualization::OsgLinearPath::RemoveItem ( const std::string &  strItemType,
const std::string &  strID,
bool  bThrowError = true 
)
virtual

Removes a child item from this parent.

This is a generic method that is used to delete a child object from this parent. The GUI uses this method to remove objects from the simulation that have been deleted in the UI. The item type lets the method determine what type of item is being deleted, like synapse, neuron, body part, etc.. The ID is then used to delete that specific item.

Author
dcofer
Date
2/22/2011
Parameters
strItemTypeString descriptor of the type of item that is being created.
strIDUnique ID of the item that will be removed.
bThrowErrorIf true then throw an error if there is a problem, otherwise return false.
Returns
true if it succeeds, false if it fails.

Reimplemented from AnimatSim::AnimatBase.

Definition at line 802 of file VortexAnimatSim/OsgLinearPath.cpp.

References RemoveWaypoint(), and StdUtils::Std_CheckString().

+ Here is the call graph for this function:

void VortexAnimatSim::Visualization::OsgLinearPath::RemoveWaypoint ( std::string  strID,
bool  bThrowError = true 
)
protectedvirtual

Removes the waypoint with the specified ID.

Author
dcofer
Date
3/2/2011
Parameters
strIDID of the waypoint to remove
bThrowErrorIf true and ID is not found then it will throw an error.
Exceptions
IfbThrowError is true and ID is not found.

Definition at line 750 of file VortexAnimatSim/OsgLinearPath.cpp.

References FindWaypointPos().

Referenced by RemoveItem().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void VortexAnimatSim::Visualization::OsgLinearPath::ResetSimulation ( )
virtual

Resets the simulation back to time 0.

This method calls the ResetSimulation method on all subitems in order to reset the simulation back to the beginning.

Author
dcofer
Date
3/1/2011

Reimplemented from AnimatSim::AnimatBase.

Definition at line 608 of file VortexAnimatSim/OsgLinearPath.cpp.

bool VortexAnimatSim::Visualization::OsgLinearPath::SetData ( const std::string &  strDataType,
const std::string &  strValue,
bool  bThrowError = true 
)
virtual

Set a variable based on a string data type name.

This is a generic method that can be used to set any variable in an AnimatBase object by specifying the name of the variable and a string representation of that data. The GUI uses this method to set data into variables in the simulation when the user changes them in the UI. The value string can be as simple as a float or int, or as complex as an xml packet. It is the developers responsibilty to know what type of data is needed and to process it accordingly.

Author
dcofer
Date
2/22/2011
Parameters
strDataTypestring name of the data type to set.
strValueThe string value of the data. It is up to the developer to determine what this should be. For example, in most cases it is simply a float and you just have to convert it to a float and make the appropriate mutator method call. However, it can be any type of string, including an entire xml packet. It is the developers responsibility to know how to set and process the data as required.
bThrowErrortrue to throw error if there is a problem. If false then it will not return an error, just return false.
Returns
true if it succeeds, false if it fails.

Reimplemented from AnimatSim::AnimatBase.

Definition at line 618 of file VortexAnimatSim/OsgLinearPath.cpp.

References Initialize(), LineColor(), PartID(), StdUtils::Std_CheckString(), and StdUtils::Std_ToBool().

+ Here is the call graph for this function:

void VortexAnimatSim::Visualization::OsgLinearPath::SimStarting ( )
virtual

Called just before the simulation starts.

This method is called on each AnimatBase object when the simulation starts. It allows it to perform any intialization prior to the beginning of the simulation that is needed.

Author
dcofer
Date
3/1/2011

Reimplemented from AnimatSim::AnimatBase.

Definition at line 603 of file VortexAnimatSim/OsgLinearPath.cpp.


The documentation for this class was generated from the following files: