NTRT Simulator
Version: Master
|
#include <NestedBoxTestModel.h>
Public Types | |
typedef std::map< std::string, std::vector < tgSpringCableActuator * > > | MuscleMap |
Public Member Functions | |
NestedBoxTestModel (size_t segments) | |
virtual | ~NestedBoxTestModel () |
virtual void | setup (tgWorld &world) |
virtual void | step (const double dt) |
const std::vector < tgSpringCableActuator * > & | getMuscles (const std::string &key) const |
size_t | getSegments () const |
void | attach (tgObserver< NestedBoxTestModel > *pObserver) |
void | notifyStep (double dt) |
void | notifySetup () |
void | notifyTeardown () |
virtual void | teardown () |
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 |
The NestedBoxTestModel implements a tensegrity with rigid tetrahedrons and six strings between segments, also known as Tetraspine.
Definition at line 46 of file NestedBoxTestModel.h.
typedef std::map<std::string, std::vector<tgSpringCableActuator*> > NestedBoxTestModel::MuscleMap |
Used within this function to map segments to string keys
Definition at line 53 of file NestedBoxTestModel.h.
NestedBoxTestModel::NestedBoxTestModel | ( | size_t | segments | ) |
The only constructor. The model details are instantiated once setup is called typically when the model is added to a simulation.
[in] | segments,a | positive integer dictating how many rigid segments will be constructed. |
Definition at line 50 of file NestedBoxTestModel.cpp.
|
inlinevirtual |
Nothing to do. Most functions already handled by tgModel::teardown
Definition at line 66 of file NestedBoxTestModel.h.
|
inherited |
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.
|
inherited |
Attach an observer to the subject of the observer.
[in,out] | pObserver | a pointer to an observer for the subject; do nothing if the pointer is NULL |
|
inlineinherited |
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.
|
inlineinherited |
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.
|
inherited |
Return a std::vector of const pointers to all sub-models.
Definition at line 170 of file tgModel.cpp.
const std::vector< tgSpringCableActuator * > & NestedBoxTestModel::getMuscles | ( | const std::string & | key | ) | const |
Get a group of muscles according to the provided key. Groups are populated during setup.
[in] | key | - a std:string* used as a key to a std::map from a string to a vector of muscles |
Definition at line 210 of file NestedBoxTestModel.cpp.
|
inline |
Return a std::size_t indicating the number of segments in the tetraSpine.
Definition at line 99 of file NestedBoxTestModel.h.
|
virtualinherited |
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.
|
inherited |
Call tgObserver<T>::onSetup() on all observers in the order in which they were attached.
|
inherited |
Call tgObserver<T>::onStep() on all observers in the order in which they were attached.
[in] | dt | the number of seconds since the previous call; do nothing if not positive |
|
inherited |
Call tgObserver<T>::onTeardown() on all observers in the order in which they were attached.
|
virtualinherited |
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 |
Create the model. Place the rods and strings into the world that is passed into the simulation. This is triggered automatically when the model is added to the simulation, when tgModel::setup(world) is called (if this model is a child), and when reset is called. Also notifies controllers of setup.
[in] | world | - the world we're building into |
Reimplemented from tgModel.
Definition at line 140 of file NestedBoxTestModel.cpp.
|
virtual |
Step the model, its children. Notifies controllers of step.
[in] | dt,the | timestep. Must be positive. |
Reimplemented from tgModel.
Definition at line 194 of file NestedBoxTestModel.cpp.
|
virtualinherited |
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.
|
virtualinherited |
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.