AnimatLab  2
Test
RoboticsAnimatSim::Environment::RbMaterialType Class Reference
+ Inheritance diagram for RoboticsAnimatSim::Environment::RbMaterialType:
+ Collaboration diagram for RoboticsAnimatSim::Environment::RbMaterialType:

Public Member Functions

virtual void AddRigidBodyAssociation (RigidBody *lpBody)
 Associates a rigid body with this material type. This is used when you change something about this material type. It loops through all associated rigid bodies and informs them. More...
 
virtual CStdMap< std::string, RigidBody * > * Bodies ()
 
virtual void CreateDefaultUnits ()
 This takes the default values defined in the constructor and scales them according to the distance and mass units to be acceptable values. More...
 
virtual RigidBody * FindBodyByID (std::string strID, bool bThrowError=true)
 
virtual float FrictionAngularPrimary ()
 Gets the angular primary friction coefficient. More...
 
virtual void FrictionAngularPrimary (float fltVal)
 Sets the angular primary friction coefficient. More...
 
virtual float FrictionAngularPrimaryConverted ()
 Gets the angular primary friction coefficient converted to match vortex values. More...
 
virtual float FrictionLinearPrimary ()
 Gets the primary friction coefficient. More...
 
virtual void FrictionLinearPrimary (float fltVal)
 Sets the primary linear friction coefficient. More...
 
virtual int GetMaterialID (std::string strName)
 Gets a material identifier used by the physics engine. More...
 
virtual void Initialize ()
 Initializes this object. More...
 
virtual void Load (CStdXml &oXml)
 
virtual void QueryProperties (CStdPtrArray< TypeProperty > &aryProperties)
 
virtual void RemoveRigidBodyAssociation (RigidBody *lpBody)
 Removes the rigid body association described by lpBody from this material. More...
 
virtual float Restitution ()
 Gets the restitution for collisions between RigidBodies with these two materials. More...
 
virtual void Restitution (float fltVal)
 Sets the restitution for collisions between RigidBodies with these two materials. 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...
 
- Public Member Functions inherited from AnimatSim::Environment::MaterialType
 MaterialType ()
 Default constructor. More...
 
virtual ~MaterialType ()
 Destructor. 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 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 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 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 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...
 

Protected Member Functions

virtual void RegisterMaterialType ()
 Registers the material types within the physics engine. More...
 
virtual void SetMaterialProperties ()
 

Protected Attributes

CStdMap< std::string, RigidBody * > m_aryBodies
 All the rigid bodies associated with this material type.
 
float m_fltFrictionAngularPrimary
 The angular primary coefficient of friction parameter.(this simulates rolling resistance)
 
float m_fltFrictionLinearPrimary
 The primary linear coefficient of friction parameter.
 
float m_fltRestitution
 The restitution of the collision between those two materials.
 
- 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..
 

Additional Inherited Members

- Static Public Member Functions inherited from AnimatSim::Environment::MaterialType
static MaterialTypeCastToDerived (AnimatBase *lpBase)
 

Detailed Description

Definition at line 11 of file RbMaterialType.h.

Member Function Documentation

void RoboticsAnimatSim::Environment::RbMaterialType::AddRigidBodyAssociation ( RigidBody *  lpBody)
virtual

Associates a rigid body with this material type. This is used when you change something about this material type. It loops through all associated rigid bodies and informs them.

Author
Dcofer
Date
10/27/2013
Parameters
[in,out]lpBodyIf non-null, the pointer to a body.

Definition at line 224 of file RbMaterialType.cpp.

References m_aryBodies.

void RoboticsAnimatSim::Environment::RbMaterialType::CreateDefaultUnits ( )
virtual

This takes the default values defined in the constructor and scales them according to the distance and mass units to be acceptable values.

Author
dcofer
Date
3/23/2011

Implements AnimatSim::Environment::MaterialType.

Definition at line 153 of file RbMaterialType.cpp.

References m_fltFrictionAngularPrimary, m_fltFrictionLinearPrimary, and m_fltRestitution.

float RoboticsAnimatSim::Environment::RbMaterialType::FrictionAngularPrimary ( )
virtual

Gets the angular primary friction coefficient.

Author
dcofer
Date
3/23/2011
Returns
friction coefficient.

Definition at line 66 of file RbMaterialType.cpp.

References m_fltFrictionAngularPrimary.

Referenced by SetData().

+ Here is the caller graph for this function:

void RoboticsAnimatSim::Environment::RbMaterialType::FrictionAngularPrimary ( float  fltVal)
virtual

Sets the angular primary friction coefficient.

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

Definition at line 77 of file RbMaterialType.cpp.

References m_fltFrictionAngularPrimary, and StdUtils::Std_IsAboveMin().

+ Here is the call graph for this function:

float RoboticsAnimatSim::Environment::RbMaterialType::FrictionAngularPrimaryConverted ( )
virtual

Gets the angular primary friction coefficient converted to match vortex values.

We need the angular friction value defined and used to match the results from the vortex simulation as closely as possible. These two systems use different methods to implement rolling friction, so they will never match exactly. However, I wanted them to produce at least similar results. I compared output for a sim that had a cylinder rolling on a plane and getting pushed and found how far it rolled in vortex. I then determined the friction required to make the value match in bullet and came up with the conversion factor below.

Author
dcofer
Date
3/23/2011
Returns
friction coefficient.

Definition at line 100 of file RbMaterialType.cpp.

References m_fltFrictionAngularPrimary.

float RoboticsAnimatSim::Environment::RbMaterialType::FrictionLinearPrimary ( )
virtual

Gets the primary friction coefficient.

Author
dcofer
Date
3/23/2011
Returns
friction coefficient.

Definition at line 40 of file RbMaterialType.cpp.

References m_fltFrictionLinearPrimary.

Referenced by SetData().

+ Here is the caller graph for this function:

void RoboticsAnimatSim::Environment::RbMaterialType::FrictionLinearPrimary ( float  fltVal)
virtual

Sets the primary linear friction coefficient.

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

Definition at line 50 of file RbMaterialType.cpp.

References m_fltFrictionLinearPrimary, and StdUtils::Std_IsAboveMin().

+ Here is the call graph for this function:

int RoboticsAnimatSim::Environment::RbMaterialType::GetMaterialID ( std::string  strName)
virtual

Gets a material identifier used by the physics engine.

This is a pure virtual function that must be overridden in the derived physics class.

Author
dcofer
Date
3/23/2011
Parameters
strNameName of the string.
Returns
The material identifier.

Implements AnimatSim::Environment::MaterialType.

Definition at line 265 of file RbMaterialType.cpp.

void RoboticsAnimatSim::Environment::RbMaterialType::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 274 of file RbMaterialType.cpp.

void RoboticsAnimatSim::Environment::RbMaterialType::RegisterMaterialType ( )
protectedvirtual

Registers the material types within the physics engine.

This is a pure virtual function that must be overridden in the derived physics class.

Author
dcofer
Date
3/23/2011
Parameters
aryMaterialTypesList of types of the ary materials.

Implements AnimatSim::Environment::MaterialType.

Definition at line 270 of file RbMaterialType.cpp.

void RoboticsAnimatSim::Environment::RbMaterialType::RemoveRigidBodyAssociation ( RigidBody *  lpBody)
virtual

Removes the rigid body association described by lpBody from this material.

Author
Dcofer
Date
10/27/2013
Parameters
[in,out]lpBodyIf non-null, the pointer to a body.

Definition at line 242 of file RbMaterialType.cpp.

References m_aryBodies.

float RoboticsAnimatSim::Environment::RbMaterialType::Restitution ( )
virtual

Gets the restitution for collisions between RigidBodies with these two materials.

When a collision occurs between two rigid bodies, the impulse corresponding to the force is equal to the total change in momentum that each body undergoes. This change of momentum is affected by the degree of resilience of each body, that is, the extent to which energy is diffused.
The coefficient of restitution is a parameter representing the degree of resilience of a particular material pair. To make simulations more efficient, it is best to set a restitution threshold as well. Impacts that measure less than the threshold will be ignored, to avoid jitter in the simulation. Small impulses do not add to the realism of most simulations.

Author
dcofer
Date
3/23/2011
Returns
Restitution value.

Definition at line 121 of file RbMaterialType.cpp.

References m_fltRestitution.

Referenced by SetData().

+ Here is the caller graph for this function:

void RoboticsAnimatSim::Environment::RbMaterialType::Restitution ( float  fltVal)
virtual

Sets the restitution for collisions between RigidBodies with these two materials.

When a collision occurs between two rigid bodies, the impulse corresponding to the force is equal to the total change in momentum that each body undergoes. This change of momentum is affected by the degree of resilience of each body, that is, the extent to which energy is diffused.
The coefficient of restitution is a parameter representing the degree of resilience of a particular material pair. To make simulations more efficient, it is best to set a restitution threshold as well. Impacts that measure less than the threshold will be ignored, to avoid jitter in the simulation. Small impulses do not add to the realism of most simulations.

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

Definition at line 139 of file RbMaterialType.cpp.

References m_fltRestitution, and StdUtils::Std_InValidRange().

+ Here is the call graph for this function:

bool RoboticsAnimatSim::Environment::RbMaterialType::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 160 of file RbMaterialType.cpp.

References FrictionAngularPrimary(), FrictionLinearPrimary(), Restitution(), and StdUtils::Std_CheckString().

+ Here is the call graph for this function:


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