NTRT Simulator
Version: Master
|
#include <tgModel.h>
Inherits tgTaggable, and tgSenseable.
Inherited by BaseQuadModelLearning, BaseSpineModelLearning, BigFoot, BigPuppy, BigPuppy, BigPuppy, BigPuppy, BigPuppy, BuildTestModel, CaterpillarModel, ConnectorTestModel, ContactCableDemo, ContactTestModel, Crater, CraterDeep, DuCTTTestModel, Escape_T6Model, EscapeModel, FlemonsArmModel, Hilbert2DModel, hillyMuscleNP, NestedBoxTestModel, NestedStructureTestModel, NestedStructureTestModel, pidTestRig, PrismModel, PrismModel, RBStringTest, ScarrArmModel, simpleMuscleNP, SingleRibModel, SingleRibModel, StructureTestModel, SuperBallModel, T12SuperBallPayload, T6Model, T6Model, T6Model, T6Model, T6Model, T6SphereModel, TensegrityModel, tgBaseRigid, tgBlockField, tgBoxAnchorDebugModel, tgCompressionSpringActuator, tgCraterDeep, tgCraterShallow, tgGhostModel, tgPrismatic, tgSpringCableActuator, tgStairs, tsTestRig, VerticalSpineModel, and Wall.
Public Member Functions | |
tgModel () | |
tgModel (const tgTags &tags) | |
virtual | ~tgModel () |
virtual void | setup (tgWorld &world) |
virtual void | teardown () |
virtual void | step (double dt) |
virtual void | onVisit (const tgModelVisitor &r) const |
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 () |
tgTags & | getTags () |
const tgTags & | getTags () const |
void | setTags (tgTags tags) |
std::string | getTagStr (std::string delim=" ") const |
A root-level model is a Tensegrity. It can contain sub-models. The Composite design pattern is used for the sub-models. Note that this is a sense-able object, meaning that pointers to tgModels can be passed around in the sensing infrastructure.
tgModel::tgModel | ( | ) |
The default constructor. Primarily used within the tgCreator for compounded objects and subclasses of tgModel
Definition at line 33 of file tgModel.cpp.
tgModel::tgModel | ( | const tgTags & | tags | ) |
Constructor for a model with tags, used within tgCreator for things that are already tagged
[in] | tgTags,tags | for the tgTaggable parent class |
Definition at line 39 of file tgModel.cpp.
|
virtual |
Destructor. Deletes the children, if they weren't already deleted by teardown()
Definition at line 45 of file tgModel.cpp.
void tgModel::addChild | ( | tgModel * | pChild | ) |
Add a sub-model to this model. The model takes ownership of the child sub-model and is responsible for deallocating it.
[in,out] | pChild | a pointer to a sub-model |
std::invalid_argument | is pChild is NULL, this object, or already a descendant |
Definition at line 122 of file tgModel.cpp.
|
inline |
Get a vector of descendants sorted by type and a tagsearch. Useful for pulling out muscle groups, or similar.
[in] | tagSearch,a | tagSearch that contains the desired tags |
Definition at line 128 of file tgModel.h.
|
inline |
Get a vector of descendants sorted by type and a tagsearch. Useful for pulling out muscle groups, or similar.
[in] | tagSearch,a | std::string& that contains the desired tags |
Definition at line 141 of file tgModel.h.
std::vector< tgModel * > tgModel::getDescendants | ( | ) | const |
Return a std::vector of const pointers to all sub-models.
Definition at line 170 of file tgModel.cpp.
|
virtual |
From tgSenseable: need to return all the children of this class. Since tgModels are tgSenseables, just return getDescendants().
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.
|
virtual |
Call tgModelVisitor::render() on self and all descendants.
[in,out] | r | a reference to a tgModelVisitor |
Reimplemented in tgCompressionSpringActuator, tgUnidirComprSprActuator, ConnectorTestModel, BuildTestModel, tgKinematicActuator, tgSphere, tgBox, tgRod, ContactCableDemo, tgBasicActuator, hillyMuscleNP, simpleMuscleNP, tgBoxMoreAnchors, tgBaseRigid, and tgGhostModel.
Definition at line 107 of file tgModel.cpp.
|
virtual |
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.
[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.
|
virtual |
Advance the simulation.
[in] | dt | the number of seconds since the previous call; std::invalid_argument is thrown if dt is not positive |
std::invalid_argument | if dt is not positive |
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.
|
virtual |
Deletes the children (undoes setup)
Reimplemented in TensegrityModel, tgSpringCableActuator, tgCompressionSpringActuator, ContactTestModel, tgUnidirComprSprActuator, tgBlockField, tgStairs, tgKinematicActuator, tgSphere, tgBox, tgRod, CraterDeep, tgCraterDeep, Crater, tgCraterShallow, Wall, FlemonsArmModel, T6Model, tgBoxAnchorDebugModel, pidTestRig, PrismModel, SuperBallModel, ScarrArmModel, PrismModel, ContactCableDemo, tsTestRig, tgPrismatic, T6Model, T12SuperBallPayload, CaterpillarModel, T6SphereModel, BigPuppy, T6Model, T6Model, Escape_T6Model, EscapeModel, T6Model, hillyMuscleNP, simpleMuscleNP, BigDoxie, BigDoxieNoFeet, BigDoxieSpirals, MountainGoat, MountainGoatAchilles, MountainGoatFM0, tgBasicActuator, BigPuppySymmetricSpiral2, BigPuppySymmetricSpiral2, BigPuppyNoFeet, BigPuppyRigidFeet, BigPuppySpineOnly, BigPuppySpineOnlyStats, BigPuppySymmetric, BigPuppySymmetricArching, BigPuppySymmetricSpiral1, BigPuppySymmetricSpiral2, BigPuppySymmetricSpiralMetrics, BigPuppySymmetricSpiralSegments, MountainGoatNL2, BigPuppy, BigFoot, BigPuppy, BigPuppy, BigPuppy, BaseQuadModelLearning, BaseSpineModelLearning, TetraSpineStaticModel_hf, VerticalSpineModelCableCollision, FlemonsSpineModelGoal, tgGhostModel, OctahedralComplex, BaseSpineModelGoal, TetraSpineKinematic, TetraSpineGoal, TetraSpineCollisions, tgBaseRigid, TetraSpineStaticModel, TetraSpineLearningModel, FlemonsSpineModelContact, FlemonsSpineModelMixed, RibModelMixedContact, FlemonsSpineModelLearningCL, FlemonsSpineModelLearning, and RibModel.
Definition at line 68 of file tgModel.cpp.
|
virtual |
Returns the tag names of this model and its children
[in] | prefix | a string to append to |
Definition at line 152 of file tgModel.cpp.