NTRT Simulator  Version: Master
 All Classes Namespaces Files Functions Variables Typedefs Friends Pages
Hilbert2DModel Class Reference
Inheritance diagram for Hilbert2DModel:
Collaboration diagram for Hilbert2DModel:

Public Member Functions

 Hilbert2DModel (int n=1, double xsize=10, double ysize=0)
 
virtual void setup (tgWorld &world)
 
void hilbert (tgStructure &tetra, double x, double y, double xi, double xj, double yi, double yj, int n)
 
void makePairs (tgStructure &tetra)
 
btVector3 point (double x, double y)
 
void makePair (btVector3 p1, btVector3 p2)
 
tgPairsgetPairs ()
 
void attach (tgObserver< Hilbert2DModel > *pObserver)
 
void notifyStep (double dt)
 
void notifySetup ()
 
void notifyTeardown ()
 
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 ()
 
tgTagsgetTags ()
 
const tgTagsgetTags () const
 
void setTags (tgTags tags)
 
std::string getTagStr (std::string delim=" ") const
 

Detailed Description

Definition at line 51 of file Hilbert2DModel.h.

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:

void tgSubject< Hilbert2DModel >::attach ( tgObserver< Hilbert2DModel > *  pObserver)
inherited

Attach an observer to the subject of the observer.

Parameters
[in,out]pObservera pointer to an observer for the subject; do nothing if the pointer is NULL
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:

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:

void tgSubject< Hilbert2DModel >::notifySetup ( )
inherited

Call tgObserver<T>::onSetup() on all observers in the order in which they were attached.

void tgSubject< Hilbert2DModel >::notifyStep ( double  dt)
inherited

Call tgObserver<T>::onStep() on all observers in the order in which they were attached.

Parameters
[in]dtthe number of seconds since the previous call; do nothing if not positive
void tgSubject< Hilbert2DModel >::notifyTeardown ( )
inherited

Call tgObserver<T>::onTeardown() on all observers in the order in which they were attached.

void tgModel::onVisit ( const tgModelVisitor r) const
virtualinherited

Call tgModelVisitor::render() on self and all descendants.

Parameters
[in,out]ra 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.

Here is the call graph for this function:

virtual void Hilbert2DModel::setup ( tgWorld world)
inlinevirtual

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 from tgModel.

Definition at line 66 of file Hilbert2DModel.h.

Here is the call graph for this function:

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 tgModel::teardown ( )
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.

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:


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