AnimatLab  2
Test
AnimatSim::SimulationWindow Class Referenceabstract

Base class for a simulation window. More...

#include <SimulationWindow.h>

+ Inheritance diagram for AnimatSim::SimulationWindow:
+ Collaboration diagram for AnimatSim::SimulationWindow:

Public Member Functions

 SimulationWindow (void)
 Default constructor. More...
 
 SimulationWindow (HWND win)
 Constructor. More...
 
 ~SimulationWindow (void)
 Destructor. More...
 
virtual void Close ()=0
 Closes this window. More...
 
virtual CStdFPoint GetCameraPosition ()=0
 
virtual float * GetDataPointer (const std::string &strDataType)
 Returns a float pointer to a data item of interest in this object. More...
 
virtual void Load (CStdXml &oXml)
 
virtual void Load (std::string strXml)
 Loads this window from an xml string. More...
 
virtual void LookAtBodyID (std::string strID)
 Sets the RigidBody GUID ID to look at within the specified structure. More...
 
virtual std::string LookAtBodyID ()
 Gets the GUID ID of the RigidBody to look at. More...
 
virtual void LookAtStructureID (std::string strID)
 Sets the GUID ID of the structure to look at with the camera. More...
 
virtual std::string LookAtStructureID ()
 Gets the look at structure GUID ID. More...
 
virtual void OnGetFocus ()
 Called by the GUI when this window gets the focus. More...
 
virtual void OnLoseFocus ()
 Called by the GUI when this window loses the focus. More...
 
virtual void QueryProperties (CStdPtrArray< TypeProperty > &aryProperties)
 Queries this object for a list of properties that can be changed using SetData. More...
 
virtual void SetCameraLookAt (CStdFPoint oTarget, bool bResetEyePos)
 Manually sets a camera look at position. More...
 
virtual void SetCameraPositionAndLookAt (CStdFPoint oCameraPos, CStdFPoint oTarget)
 Manually sets a camera position and look at position. More...
 
virtual void SetCameraPostion (CStdFPoint vCameraPos)
 Manually sets a camera position. 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 void SetupTrackCamera (bool bResetEyePos)=0
 Sets up the camera tracking. More...
 
virtual void SetupTrackCamera (bool bTrackCamera, std::string strLookAtStructureID, std::string strLookAtBodyID)
 Sets up the track camera. More...
 
virtual bool StandAlone ()
 Gets whether this window stands alone from all others. More...
 
virtual void StandAlone (bool bVal)
 Sets whether this window stands alone. More...
 
virtual void Update ()=0
 Updates this window. More...
 
virtual void UpdateBackgroundColor ()
 
virtual void UsingTrackCamera (bool bVal)
 Sets whether camera tracking should be used. More...
 
virtual bool UsingTrackCamera ()
 Gets wheter camera tracking is being used. More...
 
virtual HWND WindowID ()
 Gets the HWND window identifier. More...
 
virtual void WindowID (HWND win)
 Sets the HWND Window identifier. More...
 
- Public Member Functions inherited from AnimatSim::AnimatBase
 AnimatBase ()
 Constructs an AnimatBase object. More...
 
virtual ~AnimatBase ()
 Destroys the AnimatBase object.. More...
 
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 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 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 Initialize ()
 Initializes this object. More...
 
virtual void Kill (bool bState=true)
 Kills. More...
 
virtual void Load (StdUtils::CStdXml &oXml)
 Loads the item using an XML data packet. 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 ReInitialize ()
 Re-initialize this object. More...
 
virtual bool RemoveItem (const std::string &strItemType, const std::string &strID, bool bThrowError=true)
 Removes a child item from this parent. More...
 
virtual void Reset ()
 Resets this object. More...
 
virtual void ResetSimulation ()
 Resets the simulation back to time 0. 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 SimStarting ()
 Called just before the simulation starts. 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...
 

Static Public Member Functions

static SimulationWindowCastToDerived (AnimatBase *lpBase)
 

Protected Member Functions

virtual void TrackCamera ()=0
 Implements code to do the camera tracking. More...
 

Protected Attributes

bool m_bStandAlone
 true if the window is seperate from all other windows.
 
bool m_bTrackCamera
 
HWND m_HWND
 Handle of the hwnd.
 
CStdFPoint m_ptPosition
 The position of the window.
 
CStdFPoint m_ptSize
 Size of the window.
 
std::string m_strLookAtBodyID
 
std::string m_strLookAtStructureID
 
- 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

Base class for a simulation window.

Any number of simulation windows can be created for viewing the 3-D simulation environment. This has to be implemented by deriving a window for the type of graphics library you are using, osg for example.

Author
dcofer
Date
3/24/2011

Definition at line 20 of file SimulationWindow.h.

Constructor & Destructor Documentation

AnimatSim::SimulationWindow::SimulationWindow ( void  )

Default constructor.

Author
dcofer
Date
3/24/2011

Definition at line 22 of file SimulationWindow.cpp.

References m_bStandAlone, m_bTrackCamera, m_HWND, m_ptPosition, and m_ptSize.

AnimatSim::SimulationWindow::SimulationWindow ( HWND  win)

Constructor.

Author
dcofer
Date
3/24/2011
Parameters
winHWND Handle of the window.

Definition at line 39 of file SimulationWindow.cpp.

References m_bStandAlone, m_bTrackCamera, m_HWND, m_ptPosition, and m_ptSize.

AnimatSim::SimulationWindow::~SimulationWindow ( void  )

Destructor.

Author
dcofer
Date
3/24/2011

Definition at line 54 of file SimulationWindow.cpp.

Member Function Documentation

virtual void AnimatSim::SimulationWindow::Close ( )
pure virtual

Closes this window.

Author
dcofer
Date
3/24/2011

Implemented in OsgAnimatSim::Visualization::OsgSimulationWindow, and VortexAnimatSim::Visualization::VsSimulationWindow.

Referenced by AnimatSim::SimulationWindowMgr::RemoveSimulationWindow().

+ Here is the caller graph for this function:

float * AnimatSim::SimulationWindow::GetDataPointer ( const std::string &  strDataType)
virtual

Returns a float pointer to a data item of interest in this object.

This is a generic method used to get a pointer to data variable of interest. It is used by a variety of systems in the simulation. The most prominent are the data charting and stimulus classes. Within this method we associate a variable with a string name. By passing in the name of the data type we are interested in we can recieve back a float pointer to that data type. We can use that to read or set the data item in other classes. For example, the data charting system gets the pointer and then each time it needs to log a data point it reads the value into an array.

Author
dcofer
Date
2/22/2011
Parameters
strDataTypename of the data item for which we are looking.
Returns
float pointer of the data item. If not found then it throws an exception.
Exceptions
IfDataType is not found.

Reimplemented from AnimatSim::AnimatBase.

Reimplemented in OsgAnimatSim::Visualization::OsgSimulationWindow, and VortexAnimatSim::Visualization::VsSimulationWindow.

Definition at line 177 of file SimulationWindow.cpp.

References StdUtils::Std_CheckString().

+ Here is the call graph for this function:

void AnimatSim::SimulationWindow::Load ( std::string  strXml)
virtual

Loads this window from an xml string.

Author
dcofer
Date
3/24/2011
Parameters
strXmlThe xml string to load.

Definition at line 298 of file SimulationWindow.cpp.

References StdUtils::Std_IsBlank().

+ Here is the call graph for this function:

void AnimatSim::SimulationWindow::LookAtBodyID ( std::string  strID)
virtual

Sets the RigidBody GUID ID to look at within the specified structure.

Author
dcofer
Date
3/24/2011
Parameters
strIDGUID ID.

Definition at line 95 of file SimulationWindow.cpp.

References m_strLookAtBodyID, and SetupTrackCamera().

+ Here is the call graph for this function:

std::string AnimatSim::SimulationWindow::LookAtBodyID ( )
virtual

Gets the GUID ID of the RigidBody to look at.

Author
dcofer
Date
3/24/2011
Returns
GUID ID.

Definition at line 109 of file SimulationWindow.cpp.

References m_strLookAtBodyID.

Referenced by SetData().

+ Here is the caller graph for this function:

void AnimatSim::SimulationWindow::LookAtStructureID ( std::string  strID)
virtual

Sets the GUID ID of the structure to look at with the camera.

Author
dcofer
Date
3/24/2011
Parameters
strIDGUID ID of the structure.

Definition at line 66 of file SimulationWindow.cpp.

References m_bTrackCamera, m_strLookAtStructureID, SetupTrackCamera(), and StdUtils::Std_IsBlank().

+ Here is the call graph for this function:

std::string AnimatSim::SimulationWindow::LookAtStructureID ( )
virtual

Gets the look at structure GUID ID.

Author
dcofer
Date
3/24/2011
Returns
GUID ID.

Definition at line 85 of file SimulationWindow.cpp.

References m_strLookAtStructureID.

Referenced by SetData().

+ Here is the caller graph for this function:

void AnimatSim::SimulationWindow::OnGetFocus ( )
virtual

Called by the GUI when this window gets the focus.

Author
dcofer
Date
7/19/2011

Reimplemented in OsgAnimatSim::Visualization::OsgSimulationWindow, and VortexAnimatSim::Visualization::VsSimulationWindow.

Definition at line 292 of file SimulationWindow.cpp.

Referenced by AnimatSim::SimulationWindowMgr::AddSimulationWindow().

+ Here is the caller graph for this function:

void AnimatSim::SimulationWindow::OnLoseFocus ( )
virtual

Called by the GUI when this window loses the focus.

Author
dcofer
Date
7/19/2011

Reimplemented in OsgAnimatSim::Visualization::OsgSimulationWindow, and VortexAnimatSim::Visualization::VsSimulationWindow.

Definition at line 295 of file SimulationWindow.cpp.

void AnimatSim::SimulationWindow::QueryProperties ( CStdPtrArray< TypeProperty > &  aryProperties)
virtual

Queries this object for a list of properties that can be changed using SetData.

The method provides a list of the properties that can be set using the SetData method. It gives the property name and the type of data that should be passed to it. Valid date types are Boolean, Float, Integer, and Xml.

Author
dcofer
Date
2/22/2011
Parameters
aryNamesArray list of the property names.
strTypesArray list of the type that is associated with the cooresponding name in the list.
Returns
Nothing.

Reimplemented from AnimatSim::AnimatBase.

Definition at line 222 of file SimulationWindow.cpp.

References AnimatSim::AnimatBase::QueryProperties().

+ Here is the call graph for this function:

void AnimatSim::SimulationWindow::SetCameraLookAt ( CStdFPoint  oTarget,
bool  bResetEyePos 
)
virtual

Manually sets a camera look at position.

This can be used to manually set where the camera is looking at.

Author
dcofer
Date
4/19/2011
Parameters
oTargetTarget position to look at.
bResetEyePosIf true it will set the eye position new, if not it will use the current position.

Reimplemented in OsgAnimatSim::Visualization::OsgSimulationWindow, and VortexAnimatSim::Visualization::VsSimulationWindow.

Definition at line 262 of file SimulationWindow.cpp.

void AnimatSim::SimulationWindow::SetCameraPositionAndLookAt ( CStdFPoint  oCameraPos,
CStdFPoint  oTarget 
)
virtual

Manually sets a camera position and look at position.

This can be used to manually set where the camera is looking at.

Author
dcofer
Date
4/19/2011
Parameters
oTargetTarget position to look at.

Reimplemented in OsgAnimatSim::Visualization::OsgSimulationWindow, and VortexAnimatSim::Visualization::VsSimulationWindow.

Definition at line 274 of file SimulationWindow.cpp.

void AnimatSim::SimulationWindow::SetCameraPostion ( CStdFPoint  vCameraPos)
virtual

Manually sets a camera position.

This can be used to manually set where the camera is positioned. This will only set the position if there is a track body defined. It uses the track body to set the look at position.

Author
dcofer
Date
4/19/2011
Parameters
vCameraPosnew Camera position.

Reimplemented in OsgAnimatSim::Visualization::OsgSimulationWindow, and VortexAnimatSim::Visualization::VsSimulationWindow.

Definition at line 288 of file SimulationWindow.cpp.

bool AnimatSim::SimulationWindow::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.

Reimplemented in OsgAnimatSim::Visualization::OsgScriptedSimulationWindow, and VortexAnimatSim::Visualization::VsScriptedSimulationWindow.

Definition at line 190 of file SimulationWindow.cpp.

References LookAtBodyID(), LookAtStructureID(), AnimatSim::AnimatBase::SetData(), StdUtils::Std_CheckString(), StdUtils::Std_ToBool(), and UsingTrackCamera().

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

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

virtual void AnimatSim::SimulationWindow::SetupTrackCamera ( bool  bResetEyePos)
pure virtual

Sets up the camera tracking.

Author
dcofer
Date
3/24/2011

Implemented in OsgAnimatSim::Visualization::OsgSimulationWindow, and VortexAnimatSim::Visualization::VsSimulationWindow.

Referenced by LookAtBodyID(), LookAtStructureID(), SetupTrackCamera(), and UsingTrackCamera().

+ Here is the caller graph for this function:

void AnimatSim::SimulationWindow::SetupTrackCamera ( bool  bTrackCamera,
std::string  strLookAtStructureID,
std::string  strLookAtBodyID 
)
virtual

Sets up the track camera.

Author
dcofer
Date
3/24/2011
Parameters
bTrackCameratrue to track camera.
strLookAtStructureIDIdentifier for the string look at structure.
strLookAtBodyIDIdentifier for the string look at body.

Definition at line 243 of file SimulationWindow.cpp.

References m_bTrackCamera, m_strLookAtBodyID, m_strLookAtStructureID, and SetupTrackCamera().

+ Here is the call graph for this function:

bool AnimatSim::SimulationWindow::StandAlone ( )
virtual

Gets whether this window stands alone from all others.

Author
dcofer
Date
3/24/2011
Returns
true if it stands alone, false else.

Definition at line 163 of file SimulationWindow.cpp.

References m_bStandAlone.

void AnimatSim::SimulationWindow::StandAlone ( bool  bVal)
virtual

Sets whether this window stands alone.

Author
dcofer
Date
3/24/2011
Parameters
bValtrue make stand alone.

Definition at line 173 of file SimulationWindow.cpp.

References m_bStandAlone.

virtual void AnimatSim::SimulationWindow::TrackCamera ( )
protectedpure virtual
virtual void AnimatSim::SimulationWindow::Update ( )
pure virtual
void AnimatSim::SimulationWindow::UsingTrackCamera ( bool  bVal)
virtual

Sets whether camera tracking should be used.

Author
dcofer
Date
3/24/2011
Parameters
bValtrue to use camera tracking.

Definition at line 119 of file SimulationWindow.cpp.

References m_bTrackCamera, and SetupTrackCamera().

+ Here is the call graph for this function:

bool AnimatSim::SimulationWindow::UsingTrackCamera ( )
virtual

Gets wheter camera tracking is being used.

Author
dcofer
Date
3/24/2011
Returns
true if camera tracking is being used.

Definition at line 133 of file SimulationWindow.cpp.

References m_bTrackCamera.

Referenced by SetData().

+ Here is the caller graph for this function:

HWND AnimatSim::SimulationWindow::WindowID ( )
virtual

Gets the HWND window identifier.

Author
dcofer
Date
3/24/2011
Returns
The handle of the window.

Definition at line 143 of file SimulationWindow.cpp.

References m_HWND.

Referenced by AnimatSim::SimulationWindowMgr::AddSimulationWindow().

+ Here is the caller graph for this function:

void AnimatSim::SimulationWindow::WindowID ( HWND  win)
virtual

Sets the HWND Window identifier.

Author
dcofer
Date
3/24/2011
Parameters
winHandle of the window.

Definition at line 153 of file SimulationWindow.cpp.

References m_HWND.

Member Data Documentation

bool AnimatSim::SimulationWindow::m_bTrackCamera
protected

If this is true then the camera will update its position and orientation so that it stays focues on the structure specified by the m_strLookAtID element. The camera always looks at the center of the root rigid body object of the structure.

Definition at line 49 of file SimulationWindow.h.

Referenced by LookAtStructureID(), VortexAnimatSim::Visualization::VsSimulationWindow::SetupTrackCamera(), OsgAnimatSim::Visualization::OsgSimulationWindow::SetupTrackCamera(), SetupTrackCamera(), SimulationWindow(), and UsingTrackCamera().

std::string AnimatSim::SimulationWindow::m_strLookAtBodyID
protected

The ID of the body item within the structure that the camera should look at initially. If this is blank or missing then the camera looks in its default direction. If m_bTrackCamera is true then it will follow the structure identfied here.

Definition at line 43 of file SimulationWindow.h.

Referenced by LookAtBodyID(), VortexAnimatSim::Visualization::VsSimulationWindow::SetupTrackCamera(), OsgAnimatSim::Visualization::OsgSimulationWindow::SetupTrackCamera(), and SetupTrackCamera().

std::string AnimatSim::SimulationWindow::m_strLookAtStructureID
protected

The ID of the structure that the camera should look at initially. If this is blank or missing then the camera looks in its default direction. If m_bTrackCamera is true then it will follow the structure identfied here.

Definition at line 38 of file SimulationWindow.h.

Referenced by LookAtStructureID(), VortexAnimatSim::Visualization::VsSimulationWindow::SetupTrackCamera(), OsgAnimatSim::Visualization::OsgSimulationWindow::SetupTrackCamera(), and SetupTrackCamera().


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