#include <FlemonsSpineModelContact.h>
|
| FlemonsSpineModelContact (int segments) |
|
virtual void | setup (tgWorld &world) |
|
virtual void | teardown () |
|
virtual void | step (double dt) |
|
virtual std::vector< double > | getSegmentCOM (const int n) const |
|
virtual const std::vector
< tgSpringCableActuator * > & | getMuscles (const std::string &key) const |
|
virtual const std::vector
< tgSpringCableActuator * > & | getAllMuscles () |
|
virtual const std::vector
< tgBaseRigid * > | getAllRigids () |
|
virtual const int | getSegments () |
|
virtual std::size_t | getNumberofMuslces () const |
|
void | attach (tgObserver< BaseSpineModelLearning > *pObserver) |
|
void | notifyStep (double dt) |
|
void | notifySetup () |
|
void | notifyTeardown () |
|
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 () |
|
tgTags & | getTags () |
|
const tgTags & | getTags () const |
|
void | setTags (tgTags tags) |
|
std::string | getTagStr (std::string delim=" ") const |
|
|
std::vector
< tgSpringCableActuator * > | m_allMuscles |
|
std::vector< tgModel * > | m_allSegments |
|
MuscleMap | m_muscleMap |
|
const std::size_t | m_segments |
|
This class implements the tetrahedral complex tensegrity spine based on the work of Tom Flemons This is similar to the version in examples, but uses muscles with contact dynamics
Definition at line 41 of file FlemonsSpineModelContact.h.
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] | pChild | a pointer to a sub-model |
- Exceptions
-
std::invalid_argument | is 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.
Attach an observer to the subject of the observer.
- Parameters
-
[in,out] | pObserver | a 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,a | tagSearch 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.
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,a | std::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.
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.
Call tgObserver<T>::onStep() on all observers in the order in which they were attached.
- Parameters
-
[in] | dt | the number of seconds since the previous call; do nothing if not positive |
Call tgModelVisitor::render() on self and all descendants.
- Parameters
-
Reimplemented in ConnectorTestModel, BuildTestModel, tgKinematicActuator, tgSphere, tgBox, tgRod, MuscleNPCons, tgBasicActuator, hillyMuscleNP, simpleMuscleNP, tgBaseRigid, and tgGhostModel.
Definition at line 107 of file tgModel.cpp.
void FlemonsSpineModelContact::setup |
( |
tgWorld & |
world | ) |
|
|
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.
- Parameters
-
[in] | world | - the tgWorld the models will exist in. |
- Todo:
- : reference the things that do this for us
- Todo:
- : there seems to be an issue with Muscle2P connections if the front of a tetra is inside the next one.
- Todo:
- : the snake is a temporary variable – will its destructor be called? If not, where do we delete its children?
Reimplemented from BaseSpineModelLearning.
Definition at line 60 of file FlemonsSpineModelContact.cpp.
void FlemonsSpineModelContact::step |
( |
double |
dt | ) |
|
|
virtual |
Advance the simulation.
- Parameters
-
[in] | dt | the number of seconds since the previous call; std::invalid_argument is thrown if dt is not positive |
- Exceptions
-
std::invalid_argument | if dt is not positive |
- Note
- This is not necessarily const for every child.
Reimplemented from BaseSpineModelLearning.
Definition at line 199 of file FlemonsSpineModelContact.cpp.
void FlemonsSpineModelContact::teardown |
( |
| ) |
|
|
virtual |
std::string tgModel::toString |
( |
std::string |
prefix = "" | ) |
const |
|
virtualinherited |
Returns the tag names of this model and its children
- Parameters
-
[in] | prefix | a 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.
The documentation for this class was generated from the following files: