AnimatLab
2
Test
|
Base class for a simulation window. More...
#include <SimulationWindow.h>
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 NeuralModule * | GetNeuralModule () |
Gets the neural module. More... | |
virtual Node * | GetNode () |
Gets the node. More... | |
virtual Simulator * | GetSimulator () |
Gets the simulator pointer. More... | |
virtual Structure * | GetStructure () |
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 SimulationWindow * | CastToDerived (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::NeuralModule * | m_lpModule |
The pointer to this items parentNeuralModule. If this is not relevant for this object then this is NULL. | |
Node * | m_lpNode |
The pointer to this items parent Node. If this is not relevant for this object then this is NULL. | |
Simulator * | m_lpSim |
The pointer to a Simulation. | |
AnimatSim::Environment::Structure * | m_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.. | |
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.
Definition at line 20 of file SimulationWindow.h.
AnimatSim::SimulationWindow::SimulationWindow | ( | void | ) |
Default constructor.
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.
win | HWND 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 | ) |
|
pure virtual |
Closes this window.
Implemented in OsgAnimatSim::Visualization::OsgSimulationWindow, and VortexAnimatSim::Visualization::VsSimulationWindow.
Referenced by AnimatSim::SimulationWindowMgr::RemoveSimulationWindow().
|
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.
strDataType | name of the data item for which we are looking. |
If | DataType 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().
|
virtual |
Loads this window from an xml string.
strXml | The xml string to load. |
Definition at line 298 of file SimulationWindow.cpp.
References StdUtils::Std_IsBlank().
|
virtual |
Sets the RigidBody GUID ID to look at within the specified structure.
strID | GUID ID. |
Definition at line 95 of file SimulationWindow.cpp.
References m_strLookAtBodyID, and SetupTrackCamera().
|
virtual |
Gets the GUID ID of the RigidBody to look at.
Definition at line 109 of file SimulationWindow.cpp.
References m_strLookAtBodyID.
Referenced by SetData().
|
virtual |
Sets the GUID ID of the structure to look at with the camera.
strID | GUID ID of the structure. |
Definition at line 66 of file SimulationWindow.cpp.
References m_bTrackCamera, m_strLookAtStructureID, SetupTrackCamera(), and StdUtils::Std_IsBlank().
|
virtual |
Gets the look at structure GUID ID.
Definition at line 85 of file SimulationWindow.cpp.
References m_strLookAtStructureID.
Referenced by SetData().
|
virtual |
Called by the GUI when this window gets the focus.
Reimplemented in OsgAnimatSim::Visualization::OsgSimulationWindow, and VortexAnimatSim::Visualization::VsSimulationWindow.
Definition at line 292 of file SimulationWindow.cpp.
Referenced by AnimatSim::SimulationWindowMgr::AddSimulationWindow().
|
virtual |
Called by the GUI when this window loses the focus.
Reimplemented in OsgAnimatSim::Visualization::OsgSimulationWindow, and VortexAnimatSim::Visualization::VsSimulationWindow.
Definition at line 295 of file SimulationWindow.cpp.
|
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.
aryNames | Array list of the property names. |
strTypes | Array list of the type that is associated with the cooresponding name in the list. |
Reimplemented from AnimatSim::AnimatBase.
Definition at line 222 of file SimulationWindow.cpp.
References AnimatSim::AnimatBase::QueryProperties().
|
virtual |
Manually sets a camera look at position.
This can be used to manually set where the camera is looking at.
oTarget | Target position to look at. |
bResetEyePos | If 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.
|
virtual |
Manually sets a camera position and look at position.
This can be used to manually set where the camera is looking at.
oTarget | Target position to look at. |
Reimplemented in OsgAnimatSim::Visualization::OsgSimulationWindow, and VortexAnimatSim::Visualization::VsSimulationWindow.
Definition at line 274 of file SimulationWindow.cpp.
|
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.
vCameraPos | new Camera position. |
Reimplemented in OsgAnimatSim::Visualization::OsgSimulationWindow, and VortexAnimatSim::Visualization::VsSimulationWindow.
Definition at line 288 of file SimulationWindow.cpp.
|
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.
strDataType | string name of the data type to set. |
strValue | The 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. |
bThrowError | true to throw error if there is a problem. If false then it will not return an error, just return false. |
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().
|
pure virtual |
Sets up the camera tracking.
Implemented in OsgAnimatSim::Visualization::OsgSimulationWindow, and VortexAnimatSim::Visualization::VsSimulationWindow.
Referenced by LookAtBodyID(), LookAtStructureID(), SetupTrackCamera(), and UsingTrackCamera().
|
virtual |
Sets up the track camera.
bTrackCamera | true to track camera. |
strLookAtStructureID | Identifier for the string look at structure. |
strLookAtBodyID | Identifier for the string look at body. |
Definition at line 243 of file SimulationWindow.cpp.
References m_bTrackCamera, m_strLookAtBodyID, m_strLookAtStructureID, and SetupTrackCamera().
|
virtual |
Gets whether this window stands alone from all others.
Definition at line 163 of file SimulationWindow.cpp.
References m_bStandAlone.
|
virtual |
Sets whether this window stands alone.
bVal | true make stand alone. |
Definition at line 173 of file SimulationWindow.cpp.
References m_bStandAlone.
|
protectedpure virtual |
Implements code to do the camera tracking.
Implemented in OsgAnimatSim::Visualization::OsgScriptedSimulationWindow, VortexAnimatSim::Visualization::VsScriptedSimulationWindow, OsgAnimatSim::Visualization::OsgSimulationWindow, and VortexAnimatSim::Visualization::VsSimulationWindow.
|
pure virtual |
Updates this window.
Implemented in OsgAnimatSim::Visualization::OsgSimulationWindow, VortexAnimatSim::Visualization::VsSimulationWindow, OsgAnimatSim::Visualization::OsgScriptedSimulationWindow, and VortexAnimatSim::Visualization::VsScriptedSimulationWindow.
|
virtual |
Sets whether camera tracking should be used.
bVal | true to use camera tracking. |
Definition at line 119 of file SimulationWindow.cpp.
References m_bTrackCamera, and SetupTrackCamera().
|
virtual |
Gets wheter camera tracking is being used.
Definition at line 133 of file SimulationWindow.cpp.
References m_bTrackCamera.
Referenced by SetData().
|
virtual |
Gets the HWND window identifier.
Definition at line 143 of file SimulationWindow.cpp.
References m_HWND.
Referenced by AnimatSim::SimulationWindowMgr::AddSimulationWindow().
|
virtual |
Sets the HWND Window identifier.
win | Handle of the window. |
Definition at line 153 of file SimulationWindow.cpp.
References m_HWND.
|
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().
|
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().
|
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().