AnimatLab  2
Test
AnimatSim::Environment::ConstraintLimit Class Referenceabstract

Constraint limit. More...

#include <ConstraintLimit.h>

+ Inheritance diagram for AnimatSim::Environment::ConstraintLimit:
+ Collaboration diagram for AnimatSim::Environment::ConstraintLimit:

Public Member Functions

 ConstraintLimit ()
 Default constructor. More...
 
virtual ~ConstraintLimit ()
 Destructor. More...
 
virtual void Alpha (float fltA)=0
 Sets the alpha color value for this constraint. More...
 
virtual float Alpha ()
 Gets the alpha value. More...
 
virtual void Color (float fltR, float fltG, float fltB, float fltA)
 Sets the color to use when displaying this contraint. More...
 
virtual CStdColorColor ()
 Gets the color that is used when displaying this constraint. More...
 
virtual void Color (std::string strXml)
 Sets the color of this constraint using an xml packet. More...
 
virtual float Damping ()
 Gets the damping value of the contraint. More...
 
virtual void Damping (float fltVal, bool bUseScaling=true)
 Sets the Damping value of the constraint. More...
 
virtual void DeleteGraphics ()=0
 Deletes up the graphics for the constraint. More...
 
virtual float * GetDataPointer (const std::string &strDataType)
 Returns a float pointer to a data item of interest in this object. More...
 
virtual void IsLowerLimit (bool bVal)
 Sets whether this is a lower limit or not.. More...
 
virtual bool IsLowerLimit ()
 Query if this object is lower limit. More...
 
virtual void IsShowPosition (bool bVal)
 Sets whether this contstraint is actually just being used to show the current position of the joint, as opposed to being used to show the limit of a constraint.. More...
 
virtual bool IsShowPosition ()
 Gets whether this contstraint is actually just being used to show the current position of the joint, as opposed to being used to show the limit of a constraint.. More...
 
virtual float LimitPos ()
 Gets the limit position. More...
 
virtual void LimitPos (float fltVal, bool bUseScaling=true, bool bOverrideSameCheck=false)
 Sets the Limit position. More...
 
virtual void Load (CStdXml &oXml, 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 float Restitution ()
 Gets the restitution coefficient of the constraint. More...
 
virtual void Restitution (float fltVal)
 Sets the restitution coefficient. 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 SetLimitPos ()=0
 Sets the limit position using the current value set within the object. More...
 
virtual void SetSystemPointers (Simulator *lpSim, Structure *lpStructure, NeuralModule *lpModule, Node *lpNode, float fltPosition, bool bVerify)
 
virtual void SetSystemPointers (Simulator *lpSim, Structure *lpStructure, NeuralModule *lpModule, Node *lpNode, bool bVerify)
 
virtual void SetupGraphics ()=0
 Sets up the graphics for the constraint. More...
 
virtual float Stiffness ()
 Gets the stiffness of the constraint. More...
 
virtual void Stiffness (float fltVal, bool bUseScaling=true)
 Sets the stiffness of the constraint. More...
 
virtual void VerifySystemPointers ()
 Verify that system pointers have been set correctly. 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 VisualSelectionModeChanged (int iNewMode)
 Visual selection mode changed. More...
 

Static Public Member Functions

static ConstraintLimitCastToDerived (AnimatBase *lpBase)
 

Protected Member Functions

virtual void SetLimitValues ()=0
 Sets the limit values of the joint in the child object.
 

Protected Attributes

bool m_bIsLowerLimit
 If true then this is the lower limit of a pair of ConstraintLimits, else it is the upper limit.
 
bool m_bIsShowPosition
 
float m_fltDamping
 The damping for the constraint.
 
float m_fltLimitPos
 The limit position for the constraint. This can be in radians or meters depending on the type of joint.
 
float m_fltRestitution
 The restitution coefficient for the constraint.
 
float m_fltStiffness
 The stiffness of the constraint.
 
Jointm_lpJoint
 Pointer to parent joint.
 
CStdColor m_vColor
 The color used to display the limit.
 
- 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

Constraint limit.

A constraint limit is used to specify the movement range that is allowable for a joint. It typically requires two limits per joint, but it can be more or less.

Author
dcofer
Date
3/21/2011

Definition at line 22 of file ConstraintLimit.h.

Constructor & Destructor Documentation

AnimatSim::Environment::ConstraintLimit::ConstraintLimit ( )
AnimatSim::Environment::ConstraintLimit::~ConstraintLimit ( )
virtual

Destructor.

Author
dcofer
Date
3/22/2011

Definition at line 66 of file ConstraintLimit.cpp.

Member Function Documentation

virtual void AnimatSim::Environment::ConstraintLimit::Alpha ( float  fltA)
pure virtual
float AnimatSim::Environment::ConstraintLimit::Alpha ( )
virtual

Gets the alpha value.

Author
dcofer
Date
3/22/2011
Returns
Alpha value.

Definition at line 162 of file ConstraintLimit.cpp.

References StdUtils::CStdColor::a(), and m_vColor.

Referenced by SetData().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void AnimatSim::Environment::ConstraintLimit::Color ( float  fltR,
float  fltG,
float  fltB,
float  fltA 
)
virtual

Sets the color to use when displaying this contraint.

Colors in OSG are between 0 and 1.

Author
dcofer
Date
3/22/2011
Parameters
fltRRed component of color.
fltGGreen component of color.
fltBBlue component of color.
fltAAlpha component of color.

Definition at line 136 of file ConstraintLimit.cpp.

References m_vColor, and StdUtils::CStdColor::Set().

Referenced by BulletAnimatSim::Environment::Joints::BlHinge::BlHinge(), BulletAnimatSim::Environment::Joints::BlPrismatic::BlPrismatic(), RoboticsAnimatSim::Environment::Joints::RbHinge::RbHinge(), RoboticsAnimatSim::Environment::Joints::RbPrismatic::RbPrismatic(), VortexAnimatSim::Environment::Joints::VsHinge::VsHinge(), and VortexAnimatSim::Environment::Joints::VsPrismatic::VsPrismatic().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

CStdColor * AnimatSim::Environment::ConstraintLimit::Color ( )
virtual

Gets the color that is used when displaying this constraint.

Author
dcofer
Date
3/22/2011
Returns
CStdColor pointer.

Definition at line 147 of file ConstraintLimit.cpp.

References m_vColor.

Referenced by SetData().

+ Here is the caller graph for this function:

void AnimatSim::Environment::ConstraintLimit::Color ( std::string  strXml)
virtual

Sets the color of this constraint using an xml packet.

Author
dcofer
Date
3/22/2011
Parameters
strXmlThe xml packet to use when loading the new color info.

Definition at line 157 of file ConstraintLimit.cpp.

References StdUtils::CStdColor::Load(), and m_vColor.

+ Here is the call graph for this function:

float AnimatSim::Environment::ConstraintLimit::Damping ( )
virtual

Gets the damping value of the contraint.

Author
dcofer
Date
3/22/2011
Returns
damping position.

Definition at line 88 of file ConstraintLimit.cpp.

References m_fltDamping.

Referenced by SetData().

+ Here is the caller graph for this function:

void AnimatSim::Environment::ConstraintLimit::Damping ( float  fltVal,
bool  bUseScaling = true 
)
virtual

Sets the Damping value of the constraint.

Author
dcofer
Date
3/22/2011
Parameters
fltValThe new value.
bUseScalingtrue to use unit scaling.

Definition at line 90 of file ConstraintLimit.cpp.

References AnimatSim::Simulator::InverseMassUnits(), m_fltDamping, AnimatSim::AnimatBase::m_lpSim, SetLimitValues(), and StdUtils::Std_IsAboveMin().

+ Here is the call graph for this function:

float * AnimatSim::Environment::ConstraintLimit::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.

Definition at line 268 of file ConstraintLimit.cpp.

References m_fltLimitPos, AnimatSim::AnimatBase::m_strName, and StdUtils::Std_CheckString().

+ Here is the call graph for this function:

void AnimatSim::Environment::ConstraintLimit::IsLowerLimit ( bool  bVal)
virtual
bool AnimatSim::Environment::ConstraintLimit::IsLowerLimit ( )
virtual

Query if this object is lower limit.

Author
dcofer
Date
3/22/2011
Returns
true if lower limit, false if not.

Definition at line 182 of file ConstraintLimit.cpp.

References m_bIsLowerLimit.

void AnimatSim::Environment::ConstraintLimit::IsShowPosition ( bool  bVal)
virtual

Sets whether this contstraint is actually just being used to show the current position of the joint, as opposed to being used to show the limit of a constraint..

Author
dcofer
Date
4/11/2011
Parameters
bValtrue to set this to be a position limit.

Definition at line 193 of file ConstraintLimit.cpp.

References m_bIsShowPosition.

Referenced by BulletAnimatSim::Environment::Joints::BlHinge::BlHinge(), BulletAnimatSim::Environment::Joints::BlPrismatic::BlPrismatic(), RoboticsAnimatSim::Environment::Joints::RbHinge::RbHinge(), RoboticsAnimatSim::Environment::Joints::RbPrismatic::RbPrismatic(), VortexAnimatSim::Environment::Joints::VsHinge::VsHinge(), and VortexAnimatSim::Environment::Joints::VsPrismatic::VsPrismatic().

+ Here is the caller graph for this function:

bool AnimatSim::Environment::ConstraintLimit::IsShowPosition ( )
virtual

Gets whether this contstraint is actually just being used to show the current position of the joint, as opposed to being used to show the limit of a constraint..

Author
dcofer
Date
4/11/2011
Returns
true if show position, false if not.

Definition at line 204 of file ConstraintLimit.cpp.

References m_bIsShowPosition.

void AnimatSim::Environment::ConstraintLimit::LimitPos ( float  fltVal,
bool  bUseScaling = true,
bool  bOverrideSameCheck = false 
)
virtual

Sets the Limit position.

Author
dcofer
Date
3/22/2011
Parameters
fltValThe new value.
bUseScalingtrue to use unit scaling.
bOverrideSameChecktrue to override the check of whether the currentpos = new pos.

Definition at line 72 of file ConstraintLimit.cpp.

References AnimatSim::Simulator::InverseDistanceUnits(), m_fltLimitPos, m_lpJoint, AnimatSim::AnimatBase::m_lpSim, SetLimitPos(), and AnimatSim::Environment::Joint::UsesRadians().

+ Here is the call graph for this function:

void AnimatSim::Environment::ConstraintLimit::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 325 of file ConstraintLimit.cpp.

References AnimatSim::AnimatBase::QueryProperties().

+ Here is the call graph for this function:

float AnimatSim::Environment::ConstraintLimit::Restitution ( )
virtual

Gets the restitution coefficient of the constraint.

Author
dcofer
Date
3/22/2011
Returns
restitution coefficient.

Definition at line 101 of file ConstraintLimit.cpp.

References m_fltRestitution.

Referenced by SetData().

+ Here is the caller graph for this function:

void AnimatSim::Environment::ConstraintLimit::Restitution ( float  fltVal)
virtual

Sets the restitution coefficient.

Author
dcofer
Date
3/22/2011
Parameters
fltValThe new value.

Definition at line 103 of file ConstraintLimit.cpp.

References m_fltRestitution, SetLimitValues(), and StdUtils::Std_IsAboveMin().

+ Here is the call graph for this function:

bool AnimatSim::Environment::ConstraintLimit::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 280 of file ConstraintLimit.cpp.

References Alpha(), Color(), Damping(), LimitPos(), Restitution(), AnimatSim::AnimatBase::SetData(), StdUtils::Std_CheckString(), and Stiffness().

+ Here is the call graph for this function:

float AnimatSim::Environment::ConstraintLimit::Stiffness ( )
virtual

Gets the stiffness of the constraint.

Author
dcofer
Date
3/22/2011
Returns
stiffness.

Definition at line 110 of file ConstraintLimit.cpp.

References m_fltStiffness.

Referenced by SetData().

+ Here is the caller graph for this function:

void AnimatSim::Environment::ConstraintLimit::Stiffness ( float  fltVal,
bool  bUseScaling = true 
)
virtual

Sets the stiffness of the constraint.

Author
dcofer
Date
3/22/2011
Parameters
fltValThe new value.
bUseScalingtrue to use unit scaling.

Definition at line 112 of file ConstraintLimit.cpp.

References AnimatSim::Simulator::InverseMassUnits(), m_fltStiffness, AnimatSim::AnimatBase::m_lpSim, SetLimitValues(), and StdUtils::Std_IsAboveMin().

+ Here is the call graph for this function:

void AnimatSim::Environment::ConstraintLimit::VerifySystemPointers ( )
virtual

Verify that system pointers have been set correctly.

The system pointers should be set just after an object is created. However, if for some reason it was not then this could cause read/write memory access errors later on because we would be using NULL pointers. This method is called during SetSystemPointers, Load, and Initialize to verify that the pointers for that type of object have been set correctly. We are calling three different places to ensure that it is checked before use. For example, if you are doing a Load call then you want to check it before attempting the load, but there may be an object that does not Load, but only does Initialize. So we need to check it there as well.

Author
dcofer
Date
3/4/2011

Reimplemented from AnimatSim::AnimatBase.

Definition at line 255 of file ConstraintLimit.cpp.

References m_lpJoint, AnimatSim::AnimatBase::m_lpStructure, AnimatSim::AnimatBase::m_strName, and AnimatSim::AnimatBase::VerifySystemPointers().

+ Here is the call graph for this function:

Member Data Documentation

bool AnimatSim::Environment::ConstraintLimit::m_bIsShowPosition
protected

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