AnimatLab
2
Test
|
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... | |
![]() | |
MaterialType () | |
Default constructor. More... | |
virtual | ~MaterialType () |
Destructor. More... | |
![]() | |
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 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 | 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. | |
![]() | |
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.. | |
Additional Inherited Members | |
![]() | |
static MaterialType * | CastToDerived (AnimatBase *lpBase) |
Definition at line 11 of file RbMaterialType.h.
|
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.
[in,out] | lpBody | If non-null, the pointer to a body. |
Definition at line 224 of file RbMaterialType.cpp.
References m_aryBodies.
|
virtual |
This takes the default values defined in the constructor and scales them according to the distance and mass units to be acceptable values.
Implements AnimatSim::Environment::MaterialType.
Definition at line 153 of file RbMaterialType.cpp.
References m_fltFrictionAngularPrimary, m_fltFrictionLinearPrimary, and m_fltRestitution.
|
virtual |
Gets the angular primary friction coefficient.
Definition at line 66 of file RbMaterialType.cpp.
References m_fltFrictionAngularPrimary.
Referenced by SetData().
|
virtual |
Sets the angular primary friction coefficient.
fltVal | The new value. |
Definition at line 77 of file RbMaterialType.cpp.
References m_fltFrictionAngularPrimary, and StdUtils::Std_IsAboveMin().
|
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.
Definition at line 100 of file RbMaterialType.cpp.
References m_fltFrictionAngularPrimary.
|
virtual |
Gets the primary friction coefficient.
Definition at line 40 of file RbMaterialType.cpp.
References m_fltFrictionLinearPrimary.
Referenced by SetData().
|
virtual |
Sets the primary linear friction coefficient.
fltVal | The new value. |
Definition at line 50 of file RbMaterialType.cpp.
References m_fltFrictionLinearPrimary, and StdUtils::Std_IsAboveMin().
|
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.
strName | Name of the string. |
Implements AnimatSim::Environment::MaterialType.
Definition at line 265 of file RbMaterialType.cpp.
|
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.
Reimplemented from AnimatSim::AnimatBase.
Definition at line 274 of file RbMaterialType.cpp.
|
protectedvirtual |
Registers the material types within the physics engine.
This is a pure virtual function that must be overridden in the derived physics class.
aryMaterialTypes | List of types of the ary materials. |
Implements AnimatSim::Environment::MaterialType.
Definition at line 270 of file RbMaterialType.cpp.
|
virtual |
Removes the rigid body association described by lpBody from this material.
[in,out] | lpBody | If non-null, the pointer to a body. |
Definition at line 242 of file RbMaterialType.cpp.
References m_aryBodies.
|
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.
Definition at line 121 of file RbMaterialType.cpp.
References m_fltRestitution.
Referenced by SetData().
|
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.
fltVal | The new value. |
Definition at line 139 of file RbMaterialType.cpp.
References m_fltRestitution, and StdUtils::Std_InValidRange().
|
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 160 of file RbMaterialType.cpp.
References FrictionAngularPrimary(), FrictionLinearPrimary(), Restitution(), and StdUtils::Std_CheckString().