AnimatLab
2
Test
|
Constraint limit. More...
#include <ConstraintLimit.h>
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 CStdColor * | Color () |
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 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 | VisualSelectionModeChanged (int iNewMode) |
Visual selection mode changed. More... | |
Static Public Member Functions | |
static ConstraintLimit * | CastToDerived (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. | |
Joint * | m_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::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.. | |
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.
Definition at line 22 of file ConstraintLimit.h.
AnimatSim::Environment::ConstraintLimit::ConstraintLimit | ( | ) |
Default constructor.
Definition at line 46 of file ConstraintLimit.cpp.
References m_bIsLowerLimit, m_bIsShowPosition, m_fltDamping, m_fltLimitPos, m_fltRestitution, m_fltStiffness, m_lpJoint, AnimatSim::AnimatBase::m_lpSim, and AnimatSim::AnimatBase::m_lpStructure.
|
virtual |
|
pure virtual |
Sets the alpha color value for this constraint.
fltA | The new alpha value. |
Implemented in VortexAnimatSim::Environment::Joints::VsPrismaticLimit, VortexAnimatSim::Environment::Joints::VsHingeLimit, BulletAnimatSim::Environment::Joints::BlHingeLimit, BulletAnimatSim::Environment::Joints::BlPrismaticLimit, RoboticsAnimatSim::Environment::Joints::RbHingeLimit, and RoboticsAnimatSim::Environment::Joints::RbPrismaticLimit.
|
virtual |
Gets the alpha value.
Definition at line 162 of file ConstraintLimit.cpp.
References StdUtils::CStdColor::a(), and m_vColor.
Referenced by SetData().
|
virtual |
Sets the color to use when displaying this contraint.
Colors in OSG are between 0 and 1.
fltR | Red component of color. |
fltG | Green component of color. |
fltB | Blue component of color. |
fltA | Alpha 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().
|
virtual |
Gets the color that is used when displaying this constraint.
Definition at line 147 of file ConstraintLimit.cpp.
References m_vColor.
Referenced by SetData().
|
virtual |
Sets the color of this constraint using an xml packet.
strXml | The 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.
|
virtual |
Gets the damping value of the contraint.
Definition at line 88 of file ConstraintLimit.cpp.
References m_fltDamping.
Referenced by SetData().
|
virtual |
Sets the Damping value of the constraint.
fltVal | The new value. |
bUseScaling | true 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().
|
pure virtual |
Deletes up the graphics for the constraint.
Implemented in VortexAnimatSim::Environment::Joints::VsPrismaticLimit, VortexAnimatSim::Environment::Joints::VsHingeLimit, BulletAnimatSim::Environment::Joints::BlHingeLimit, BulletAnimatSim::Environment::Joints::BlPrismaticLimit, RoboticsAnimatSim::Environment::Joints::RbHingeLimit, and RoboticsAnimatSim::Environment::Joints::RbPrismaticLimit.
|
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.
Definition at line 268 of file ConstraintLimit.cpp.
References m_fltLimitPos, AnimatSim::AnimatBase::m_strName, and StdUtils::Std_CheckString().
|
virtual |
Sets whether this is a lower limit or not..
bVal | true if lower limit. |
Definition at line 172 of file ConstraintLimit.cpp.
References m_bIsLowerLimit.
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().
|
virtual |
Query if this object is lower limit.
Definition at line 182 of file ConstraintLimit.cpp.
References m_bIsLowerLimit.
|
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..
bVal | true 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().
|
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..
Definition at line 204 of file ConstraintLimit.cpp.
References m_bIsShowPosition.
|
virtual |
Gets the limit position.
Definition at line 70 of file ConstraintLimit.cpp.
References m_fltLimitPos.
Referenced by BulletAnimatSim::Environment::Joints::BlHinge::BlHinge(), BulletAnimatSim::Environment::Joints::BlPrismatic::BlPrismatic(), VortexAnimatSim::Environment::Joints::VsPrismatic::CreateJointGraphics(), VortexAnimatSim::Environment::Joints::VsHinge::CreateJointGraphics(), AnimatSim::Environment::Joints::Prismatic::GetLimitRange(), AnimatSim::Environment::Joints::Hinge::GetLimitRange(), AnimatSim::Environment::Joints::Prismatic::GetPositionWithinLimits(), AnimatSim::Environment::Joints::Hinge::GetPositionWithinLimits(), RoboticsAnimatSim::Environment::Joints::RbPrismatic::JointPosition(), VortexAnimatSim::Environment::Joints::VsPrismatic::JointPosition(), BulletAnimatSim::Environment::Joints::BlPrismatic::JointPosition(), RoboticsAnimatSim::Environment::Joints::RbHinge::JointPosition(), BulletAnimatSim::Environment::Joints::BlHinge::JointPosition(), VortexAnimatSim::Environment::Joints::VsHinge::JointPosition(), RoboticsAnimatSim::Environment::Joints::RbHinge::RbHinge(), RoboticsAnimatSim::Environment::Joints::RbPrismatic::RbPrismatic(), SetData(), VortexAnimatSim::Environment::Joints::VsHinge::VsHinge(), and VortexAnimatSim::Environment::Joints::VsPrismatic::VsPrismatic().
|
virtual |
Sets the Limit position.
fltVal | The new value. |
bUseScaling | true to use unit scaling. |
bOverrideSameCheck | true 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().
|
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 325 of file ConstraintLimit.cpp.
References AnimatSim::AnimatBase::QueryProperties().
|
virtual |
Gets the restitution coefficient of the constraint.
Definition at line 101 of file ConstraintLimit.cpp.
References m_fltRestitution.
Referenced by SetData().
|
virtual |
Sets the restitution coefficient.
fltVal | The new value. |
Definition at line 103 of file ConstraintLimit.cpp.
References m_fltRestitution, SetLimitValues(), and StdUtils::Std_IsAboveMin().
|
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.
Definition at line 280 of file ConstraintLimit.cpp.
References Alpha(), Color(), Damping(), LimitPos(), Restitution(), AnimatSim::AnimatBase::SetData(), StdUtils::Std_CheckString(), and Stiffness().
|
pure virtual |
Sets the limit position using the current value set within the object.
Implemented in VortexAnimatSim::Environment::Joints::VsPrismaticLimit, VortexAnimatSim::Environment::Joints::VsHingeLimit, BulletAnimatSim::Environment::Joints::BlHingeLimit, BulletAnimatSim::Environment::Joints::BlPrismaticLimit, RoboticsAnimatSim::Environment::Joints::RbHingeLimit, and RoboticsAnimatSim::Environment::Joints::RbPrismaticLimit.
Referenced by VortexAnimatSim::Environment::Joints::VsPrismatic::EnableLimits(), VortexAnimatSim::Environment::Joints::VsHinge::EnableLimits(), and LimitPos().
|
pure virtual |
Sets up the graphics for the constraint.
Implemented in VortexAnimatSim::Environment::Joints::VsPrismaticLimit, VortexAnimatSim::Environment::Joints::VsHingeLimit, BulletAnimatSim::Environment::Joints::BlHingeLimit, BulletAnimatSim::Environment::Joints::BlPrismaticLimit, RoboticsAnimatSim::Environment::Joints::RbHingeLimit, and RoboticsAnimatSim::Environment::Joints::RbPrismaticLimit.
|
virtual |
Gets the stiffness of the constraint.
Definition at line 110 of file ConstraintLimit.cpp.
References m_fltStiffness.
Referenced by SetData().
|
virtual |
Sets the stiffness of the constraint.
fltVal | The new value. |
bUseScaling | true 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().
|
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.
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().
|
protected |
Tells 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.
Definition at line 48 of file ConstraintLimit.h.
Referenced by ConstraintLimit(), IsShowPosition(), RoboticsAnimatSim::Environment::Joints::RbPrismaticLimit::SetLimitValues(), RoboticsAnimatSim::Environment::Joints::RbHingeLimit::SetLimitValues(), BulletAnimatSim::Environment::Joints::BlPrismaticLimit::SetLimitValues(), BulletAnimatSim::Environment::Joints::BlHingeLimit::SetLimitValues(), and VortexAnimatSim::Environment::Joints::VsPrismaticLimit::SetupGraphics().