NTRT Simulator  v1.1
 All Classes Namespaces Files Functions Variables Typedefs Friends Pages
NestedStructureTestModel Class Reference

#include <NestedStructureTestModel.h>

Inherits tgSubject< NestedStructureTestModel >, tgModel, tgSubject< NestedStructureTestModel >, and tgModel.

Collaboration diagram for NestedStructureTestModel:

Public Types

typedef std::map< std::string,
std::vector< tgBasicActuator * > > 
ActuatorMap
 

Public Member Functions

 NestedStructureTestModel (int segments)
 
virtual void setup (tgWorld *world)
 
virtual void step (double dt)
 
void changeMuscle (double length, double dt)
 
const std::vector
< tgLinearString * > 
getMuscles (std::string key)
 
const int getSegments ()
 
 NestedStructureTestModel (size_t segments)
 
virtual ~NestedStructureTestModel ()
 
virtual void setup (tgWorld &world)
 
virtual void step (const double dt)
 
const std::vector
< tgBasicActuator * > & 
getActuators (const std::string &key) const
 
size_t getSegments () const
 
void attach (tgObserver< NestedStructureTestModel > *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)
 
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

The NestedStructureTestModel implements a tensegrity with rigid tetrahedrons and six strings between segments, also known as Tetraspine.

Definition at line 46 of file NestedStructureTestModel_rb.h.

Member Typedef Documentation

typedef std::map<std::string, std::vector<tgBasicActuator*> > NestedStructureTestModel::ActuatorMap

Used within this function to map segments to string keys

Definition at line 53 of file NestedStructureTestModel.h.

Constructor & Destructor Documentation

NestedStructureTestModel::NestedStructureTestModel ( size_t  segments)

The only constructor. The model details are instantiated once setup is called typically when the model is added to a simulation.

Parameters
[in]segments,apositive integer dictating how many rigid segments will be constructed.

Definition at line 45 of file NestedStructureTestModel.cpp.

virtual NestedStructureTestModel::~NestedStructureTestModel ( )
inlinevirtual

Nothing to do. Most functions already handled by tgModel::teardown

Definition at line 66 of file NestedStructureTestModel.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 124 of file tgModel.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

void tgSubject< NestedStructureTestModel >::attach ( tgObserver< NestedStructureTestModel > *  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 125 of file tgModel.h.

Here is the call graph for this function:

Here is the caller 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 138 of file tgModel.h.

Here is the call graph for this function:

const std::vector< tgBasicActuator * > & NestedStructureTestModel::getActuators ( const std::string &  key) const

Get a group of actuators according to the provided key. Groups are populated during setup.

Parameters
[in]key- a std:string* used as a key to a std::map from a string to a vector of actuators
Returns
a std::vector of pointers to the actuators found by the key

Definition at line 198 of file NestedStructureTestModel.cpp.

Here is the caller 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 172 of file tgModel.cpp.

Here is the call graph for this function:

size_t NestedStructureTestModel::getSegments ( ) const
inline

Return a std::size_t indicating the number of segments in the tetraSpine.

Returns
a std::size_t with the value of m_segments

Definition at line 99 of file NestedStructureTestModel.h.

void tgSubject< NestedStructureTestModel >::notifySetup ( )
inherited

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

void tgSubject< NestedStructureTestModel >::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

Here is the caller graph for this function:

void tgSubject< NestedStructureTestModel >::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 ConnectorTestModel, BuildTestModel, tgKinematicActuator, tgSphere, tgBox, tgRod, MuscleNPCons, tgBasicActuator, hillyMuscleNP, simpleMuscleNP, tgBaseRigid, and tgGhostModel.

Definition at line 107 of file tgModel.cpp.

Here is the call graph for this function:

void NestedStructureTestModel::setup ( tgWorld world)
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.

Parameters
[in]world- the world we're building into

Reimplemented from tgModel.

Definition at line 135 of file NestedStructureTestModel.cpp.

Here is the call graph for this function:

virtual void NestedStructureTestModel::step ( const double  dt)
virtual

Step the model, its children. Notifies controllers of step.

Parameters
[in]dt,thetimestep. Must be positive.

Reimplemented from tgModel.

void NestedStructureTestModel::step ( double  dt)
inlinevirtual

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

Definition at line 178 of file NestedStructureTestModel_rb.h.

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 154 of file tgModel.cpp.

Here is the caller graph for this function:


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