RobWorkProject
Public Member Functions | Friends | List of all members
StateData Class Reference

the basic building block for the stateless design using the StateStructure class. A StateData represents a size, a unique id, and a unique name, when inserted into the StateStructure. The size will allocate "size"-doubles in State objects originating from the StateStructure. More...

#include <StateData.hpp>

Inherited by Frame, and Constraint.

Public Member Functions

virtual ~StateData ()
 destructor
 
int getID () const
 An integer ID for the StateData. More...
 
const std::string & getName () const
 The name of the state data. More...
 
int size () const
 The number of doubles allocated by this StateData in each State object. More...
 
const double * getData (const State &state) const
 An array of length size() containing the values for the state data. More...
 
double * getData (State &state)
 An array of length size() containing the values for the state data. More...
 
void setData (State &state, const double *vals) const
 Assign for state data the size() of values of the array vals. More...
 
bool hasCache () const
 Check is state data includes a cache. More...
 
rw::common::Ptr< StateCachegetCache (const State &state) const
 Get the cache. More...
 
rw::common::Ptr< StateCachegetCache (State &state)
 Get the cache. . More...
 
rw::common::Ptr< StateCachegetDefaultCache ()
 Get default cache. More...
 
void setCache (rw::common::Ptr< StateCache > cache, State &state)
 Set the cache values. More...
 
class StateStructuregetStateStructure ()
 Get the state structure. More...
 
 StateData (int size, const std::string &name)
 A state with size number of doubles in the State vector. More...
 
 StateData (int size, const std::string &name, rw::common::Ptr< StateCache > cache)
 A state with size number of doubles in the State vector. More...
 

Friends

class StateStructure
 the StateStructure is responsible for handling a structure of StateData and Frames More...
 

Detailed Description

the basic building block for the stateless design using the StateStructure class. A StateData represents a size, a unique id, and a unique name, when inserted into the StateStructure. The size will allocate "size"-doubles in State objects originating from the StateStructure.

Constructor & Destructor Documentation

◆ StateData() [1/2]

StateData ( int  size,
const std::string &  name 
)

A state with size number of doubles in the State vector.

size must be non-negative.

The newly created state data can be added to a structure with StateStructure::addData().

The size of the state data in nr of doubles of the state data is constant throughout the lifetime of the state data.

Parameters
size[in] The number of degrees of freedom of the frame.
name[in] The name of the frame.

◆ StateData() [2/2]

StateData ( int  size,
const std::string &  name,
rw::common::Ptr< StateCache cache 
)

A state with size number of doubles in the State vector.

size must be non-negative.

The newly created state data can be added to a structure with StateStructure::addData().

The size of the state data in nr of doubles of the state data is constant throughout the lifetime of the state data.

Parameters
size[in] The number of degrees of freedom of the frame.
name[in] The name of the frame.
cache[in] a cache.

Member Function Documentation

◆ getCache() [1/2]

rw::common::Ptr<StateCache> getCache ( const State state) const

Get the cache.

Parameters
state[in] the state.
Returns
the cache.

◆ getCache() [2/2]

rw::common::Ptr<StateCache> getCache ( State state)

Get the cache. .

Parameters
state[in] the state.
Returns
the cache. .

◆ getData() [1/2]

const double* getData ( const State state) const
inline

An array of length size() containing the values for the state data.

It is OK to call this method also for a StateData with zero size.

Parameters
state[in] The state containing the StateData values.
Returns
The values for the frame.

◆ getData() [2/2]

double* getData ( State state)
inline

An array of length size() containing the values for the state data.

It is OK to call this method also for a StateData with zero size.

Parameters
state[in] The state containing the StateData values.
Returns
The values for the frame.

◆ getDefaultCache()

rw::common::Ptr<StateCache> getDefaultCache ( )
inline

Get default cache.

Returns
the cache.

◆ getID()

int getID ( ) const
inline

An integer ID for the StateData.

IDs are assigned to the state data upon insertion State. StateData that are not in a State have an ID of -1.

StateData present in different trees may have identical IDs.

IDs are used for the efficient implementation of State. Normally, you should not make use of StateData IDs yourself.

Returns
An integer ID for the frame.

◆ getName()

const std::string& getName ( ) const
inline

The name of the state data.

Returns
The name of the state data.

◆ getStateStructure()

class StateStructure* getStateStructure ( )
inline

Get the state structure.

Returns
the state structure.

◆ hasCache()

bool hasCache ( ) const
inline

Check is state data includes a cache.

Returns
true if cache, false otherwise.

◆ setCache()

void setCache ( rw::common::Ptr< StateCache cache,
State state 
)

Set the cache values.

Parameters
cache[in] the cache.
state[in/out] state updated with new cache.

◆ setData()

void setData ( State state,
const double *  vals 
) const
inline

Assign for state data the size() of values of the array vals.

The array vals must be of length at least size().

Parameters
state[inout] The state to which vals are written.
vals[in] The joint values to assign.

setData() and getData() are related as follows:

data.setData(state, q_in);
const double* q_out = data.getData(state);
for (int i = 0; i < data.getDOF(); i++)
q_in[i] == q_out[i];

◆ size()

int size ( ) const
inline

The number of doubles allocated by this StateData in each State object.

Returns
The number of doubles allocated by the StateData

Friends And Related Function Documentation

◆ StateStructure

friend class StateStructure
friend

the StateStructure is responsible for handling a structure of StateData and Frames


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