NTRT Simulator  Version: Master
 All Classes Namespaces Files Functions Variables Typedefs Friends Pages
tgBoxMoreAnchors Class Reference

#include <tgBoxMoreAnchors.h>

Inheritance diagram for tgBoxMoreAnchors:
Collaboration diagram for tgBoxMoreAnchors:

Public Member Functions

 tgBoxMoreAnchors (btRigidBody *pRigidBody, const tgTags &tags, const double length)
 
virtual ~tgBoxMoreAnchors ()
 
virtual void onVisit (const tgModelVisitor &v) const
 
double length () const
 
virtual void teardown ()
 
virtual double mass () const
 
virtual btVector3 centerOfMass () const
 
virtual btRigidBody * getPRigidBody ()
 
virtual btVector3 orientation () const
 
virtual void setup (tgWorld &world)
 
virtual void step (double dt)
 
void addChild (tgModel *pChild)
 
virtual std::string toString (std::string prefix="") const
 
template<typename T >
std::vector< T * > find (const tgTagSearch &tagSearch)
 
template<typename T >
std::vector< T * > find (const std::string &tagSearch)
 
std::vector< tgModel * > getDescendants () const
 
const std::vector
< abstractMarker > & 
getMarkers () const
 
void addMarker (abstractMarker a)
 
virtual std::vector
< tgSenseable * > 
getSenseableDescendants () const
 
void addTags (const std::string &space_separated_tags)
 
void addTags (const tgTags &tags)
 
bool hasTag (const std::string tag) const
 
bool hasAllTags (std::string tags)
 
bool hasAnyTags (const std::string tags)
 
bool hasNoTags ()
 
tgTagsgetTags ()
 
const tgTagsgetTags () const
 
void setTags (tgTags tags)
 
std::string getTagStr (std::string delim=" ") const
 

Protected Attributes

btRigidBody * m_pRigidBody
 
const double m_mass
 

Detailed Description

This class is a child of tgBox, with nothing changed. The purpose of this class is to force the use of tgBoxMoreAnchorsInfo, since the code could potentially get messy if a regular tgBox was able to be created with a tgBoxMoreAnchorsInfo. More things may be added if needed? But for now, use it exactly the same as tgBox, just with the different Info.

Definition at line 44 of file tgBoxMoreAnchors.h.

Constructor & Destructor Documentation

tgBoxMoreAnchors::tgBoxMoreAnchors ( btRigidBody *  pRigidBody,
const tgTags tags,
const double  length 
)

Use the config struct from tgBox. Only the one constructor (like tgBox.)

The constructor for this class will just call the constructor for the parent. However, we also need to assign m_length for this class too. See the .h file for a to-do about this use of private m_length.

Definition at line 41 of file tgBoxMoreAnchors.cpp.

tgBoxMoreAnchors::~tgBoxMoreAnchors ( )
virtual

A class with a virtual memeber function requires a virtual destructor.

Definition at line 59 of file tgBoxMoreAnchors.cpp.

Member Function Documentation

void tgModel::addChild ( tgModel pChild)
inherited

Add a sub-model to this model. The model takes ownership of the child sub-model and is responsible for deallocating it.

Parameters
[in,out]pChilda pointer to a sub-model
Exceptions
std::invalid_argumentis pChild is NULL, this object, or already a descendant
Todo:
Make sure that every child appears no more than once in the tree.

Definition at line 122 of file tgModel.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

btVector3 tgBaseRigid::centerOfMass ( ) const
virtualinherited

Return the center of mass of the rod, a vector in 3-space.

Returns
the center of mass of the rod, a vector in 3-space

Definition at line 74 of file tgBaseRigid.cpp.

template<typename T >
std::vector<T*> tgModel::find ( const tgTagSearch tagSearch)
inlineinherited

Get a vector of descendants sorted by type and a tagsearch. Useful for pulling out muscle groups, or similar.

Parameters
[in]tagSearch,atagSearch that contains the desired tags
Returns
a std::vector of pointers to members that match the tag search and typename T

Definition at line 128 of file tgModel.h.

Here is the call graph for this function:

template<typename T >
std::vector<T*> tgModel::find ( const std::string &  tagSearch)
inlineinherited

Get a vector of descendants sorted by type and a tagsearch. Useful for pulling out muscle groups, or similar.

Parameters
[in]tagSearch,astd::string& that contains the desired tags
Returns
a std::vector of pointers to members that match the tag search and typename T

Definition at line 141 of file tgModel.h.

Here is the call graph for this function:

std::vector< tgModel * > tgModel::getDescendants ( ) const
inherited

Return a std::vector of const pointers to all sub-models.

Todo:
examine whether this should be public, and perhaps create a read only version
Returns
a std::vector of const pointers all sub-models.
Todo:
Unnecessary copying can be avoided by pasing the result collection in the recursive step.

Definition at line 170 of file tgModel.cpp.

Here is the call graph for this function:

virtual btRigidBody* tgBaseRigid::getPRigidBody ( )
inlinevirtualinherited

Getter for rigid body

Definition at line 76 of file tgBaseRigid.h.

std::vector< tgSenseable * > tgModel::getSenseableDescendants ( ) const
virtualinherited

From tgSenseable: need to return all the children of this class. Since tgModels are tgSenseables, just return getDescendants().

Returns
a vector of tgModels, with pointers changed into pointers for tgSenseables.

For tgSenseable: just return the results of getDescendants here. This should be OK, since a vector of tgModel* is also a vector of tgSenseable*.

Reimplemented from tgSenseable.

Definition at line 191 of file tgModel.cpp.

Here is the call graph for this function:

double tgBoxMoreAnchors::length ( ) const
inline

Since m_length is a private variable, it needs to be stored in this class and returned from here. : this is messy! Two copies of m_length are stored: one in the parent, and one in this class. Even though we'll make them the same, this is BAD, should do something like (for example) make length protected in the parent.

Definition at line 75 of file tgBoxMoreAnchors.h.

virtual double tgBaseRigid::mass ( ) const
inlinevirtualinherited

Return the rod's mass in application-dependent units.

Returns
the rod's mass in application-dependent units

Definition at line 65 of file tgBaseRigid.h.

void tgBoxMoreAnchors::onVisit ( const tgModelVisitor v) const
virtual

Almost all the other methods can be inherited directly from tgBox, no need to re-declare or re-define them.

Reimplemented from tgBox.

Definition at line 63 of file tgBoxMoreAnchors.cpp.

Here is the call graph for this function:

btVector3 tgBaseRigid::orientation ( ) const
virtualinherited

Return the rod's orientation in Euler angles.

Returns
3-vector of these euler angles

Definition at line 87 of file tgBaseRigid.cpp.

Here is the caller graph for this function:

void tgModel::setup ( tgWorld world)
virtualinherited

Setup takes a tgWorld and passes it to any children for their own setup functions. All subclasses should call this at the appropriate time (usually end of setup) within their own setup function.

Parameters
[in]world- the tgWorld the models will exist in.

Reimplemented in TensegrityModel, tgSpringCableActuator, tgCompressionSpringActuator, tgUnidirComprSprActuator, tgKinematicActuator, tgBlockField, tgStairs, DuCTTTestModel, VerticalSpineModel, NestedBoxTestModel, NestedStructureTestModel, tgPrismatic, FlemonsArmModel, T6Model, tgBoxAnchorDebugModel, pidTestRig, CraterDeep, PrismModel, tgCraterDeep, ContactCableDemo, SuperBallModel, Crater, ScarrArmModel, PrismModel, tsTestRig, tgCraterShallow, Wall, T6Model, T12SuperBallPayload, CaterpillarModel, T6SphereModel, BigPuppy, T6Model, T6Model, Escape_T6Model, EscapeModel, SingleRibModel, SingleRibModel, T6Model, hillyMuscleNP, simpleMuscleNP, Hilbert2DModel, tgBasicActuator, BigDoxie, BigDoxieNoFeet, BigDoxieSpirals, MountainGoat, MountainGoatAchilles, MountainGoatFM0, BigPuppySymmetricSpiral2, BigPuppySymmetricSpiral2, BigPuppyNoFeet, BigPuppyRigidFeet, BigPuppySpineOnly, BigPuppySpineOnlyStats, BigPuppySymmetric, BigPuppySymmetricArching, BigPuppySymmetricSpiral1, BigPuppySymmetricSpiral2, BigPuppySymmetricSpiralMetrics, BigPuppySymmetricSpiralSegments, MountainGoatNL2, BigPuppy, BigFoot, BigPuppy, BigPuppy, BigPuppy, ContactTestModel, RBStringTest, BaseQuadModelLearning, BaseSpineModelLearning, VerticalSpineModelCableCollision, TetraSpineStaticModel_hf, StructureTestModel, FlemonsSpineModelGoal, OctahedralComplex, BaseSpineModelGoal, TetraSpineKinematic, TetraSpineGoal, TetraSpineCollisions, ConnectorTestModel, TetraSpineStaticModel, TetraSpineLearningModel, BuildTestModel, FlemonsSpineModelContact, FlemonsSpineModelMixed, RibModelMixedContact, FlemonsSpineModelLearningCL, FlemonsSpineModelLearning, and RibModel.

Definition at line 57 of file tgModel.cpp.

void tgModel::step ( double  dt)
virtualinherited

Advance the simulation.

Parameters
[in]dtthe number of seconds since the previous call; std::invalid_argument is thrown if dt is not positive
Exceptions
std::invalid_argumentif dt is not positive
Note
This is not necessarily const for every child.

Reimplemented in TensegrityModel, tgSpringCableActuator, NestedStructureTestModel, tgCompressionSpringActuator, tgUnidirComprSprActuator, ConnectorTestModel, BuildTestModel, ContactTestModel, tgKinematicActuator, StructureTestModel, tgBlockField, tgStairs, DuCTTTestModel, VerticalSpineModel, FlemonsArmModel, T6Model, tgBoxAnchorDebugModel, pidTestRig, PrismModel, NestedBoxTestModel, NestedStructureTestModel, SuperBallModel, ScarrArmModel, PrismModel, tsTestRig, T6Model, T12SuperBallPayload, ContactCableDemo, CaterpillarModel, T6SphereModel, BigPuppy, T6Model, T6Model, Escape_T6Model, EscapeModel, T6Model, tgBasicActuator, CraterDeep, tgCraterDeep, tgPrismatic, hillyMuscleNP, simpleMuscleNP, BigDoxie, BigDoxieNoFeet, BigDoxieSpirals, MountainGoat, MountainGoatAchilles, MountainGoatFM0, BigPuppySymmetricSpiral2, BigPuppySymmetricSpiral2, BigPuppyNoFeet, BigPuppyRigidFeet, BigPuppySpineOnly, BigPuppySpineOnlyStats, BigPuppySymmetric, BigPuppySymmetricArching, BigPuppySymmetricSpiral1, BigPuppySymmetricSpiral2, BigPuppySymmetricSpiralMetrics, BigPuppySymmetricSpiralSegments, MountainGoatNL2, Crater, tgCraterShallow, Wall, BigPuppy, BigFoot, BigPuppy, BigPuppy, BigPuppy, RBStringTest, BaseQuadModelLearning, BaseSpineModelLearning, TetraSpineStaticModel_hf, FlemonsSpineModelGoal, VerticalSpineModelCableCollision, OctahedralComplex, BaseSpineModelGoal, TetraSpineKinematic, TetraSpineGoal, TetraSpineCollisions, TetraSpineStaticModel, TetraSpineLearningModel, FlemonsSpineModelContact, FlemonsSpineModelMixed, RibModelMixedContact, FlemonsSpineModelLearningCL, FlemonsSpineModelLearning, and RibModel.

Definition at line 84 of file tgModel.cpp.

Here is the call graph for this function:

void tgBox::teardown ( )
virtualinherited

Sets the btRigidBody to NULL

Reimplemented from tgBaseRigid.

Definition at line 85 of file tgBox.cpp.

Here is the call graph for this function:

std::string tgModel::toString ( std::string  prefix = "") const
virtualinherited

Returns the tag names of this model and its children

Parameters
[in]prefixa string to append to
Returns
the original string with this model and its children's tags appended

Definition at line 152 of file tgModel.cpp.

Here is the caller graph for this function:

Member Data Documentation

const double tgBaseRigid::m_mass
protectedinherited

The rod's mass. The units are application dependent.

Definition at line 105 of file tgBaseRigid.h.

btRigidBody* tgBaseRigid::m_pRigidBody
protectedinherited

The Bullet Physics implementation of the rod.

Definition at line 102 of file tgBaseRigid.h.


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