#include <MultiVec.h>

Helper class providing a high-level view of underlying state vectors.
It is used to convert math-like operations to call to computation methods.
| Protected Attributes | |
| BaseVectorOperations * | vop | 
| Solver who is using this vector.  More... | |
| MyMultiVecId | v | 
| Identifier of this vector.  More... | |
| bool | dynamic | 
| Flag indicating if this vector was dynamically allocated.  More... | |
| Public Member Functions | |
| TMultiVec (BaseVectorOperations *vop, MyMultiVecId v) | |
| Refers to a state vector with the given ID (VecId::position(), VecId::velocity(), etc).  More... | |
| TMultiVec () | |
| Refers to a not yet allocated state vector.  More... | |
| TMultiVec (BaseVectorOperations *vop, bool dynamic=true, const VecIdProperties &properties={}) | |
| Allocate a new temporary vector with the given type (sofa::core::V_COORD or sofa::core::V_DERIV).  More... | |
| ~TMultiVec () | |
| operator MyMultiVecId () | |
| Automatic conversion to the underlying VecId.  More... | |
| operator ConstMyMultiVecId () | |
| operator AllMultiVecId () | |
| operator ConstAllMultiVecId () | |
| const MyMultiVecId & | id () const | 
| MyMultiVecId & | id () | 
| BaseVectorOperations * | ops () | 
| void | setOps (BaseVectorOperations *op) | 
| void | realloc (BaseVectorOperations *_vop, bool interactionForceField=false, bool propagate=false, const VecIdProperties &properties={}) | 
| void | clear () | 
| v = 0  More... | |
| void | eq (MyMultiVecId a) | 
| v = a  More... | |
| void | eq (MyMultiVecId a, SReal f) | 
| v = a*f  More... | |
| void | peq (AllMultiVecId a, SReal f=1.0) | 
| v += a*f  More... | |
| void | teq (SReal f) | 
| v *= f  More... | |
| void | eq (AllMultiVecId a, AllMultiVecId b, SReal f=1.0) | 
| v = a+b*f  More... | |
| SReal | dot (MyMultiVecId a) | 
| void | threshold (SReal threshold) | 
| nullify values below given threshold  More... | |
| SReal | norm () | 
| SReal | norm (unsigned l) | 
| void | operator= (MyMultiVecId a) | 
| v = a  More... | |
| void | operator= (const TMultiVec< vtype > &a) | 
| v = a  More... | |
| void | operator+= (MyMultiVecId a) | 
| v += a  More... | |
| void | operator-= (MyMultiVecId a) | 
| v -= a  More... | |
| void | operator*= (SReal f) | 
| v *= f  More... | |
| void | operator/= (SReal f) | 
| v /= f  More... | |
| SReal | operator* (MyMultiVecId a) | 
| return the scalar product dot(v,a)  More... | |
| size_t | size () const | 
| Friends | |
| std::ostream & | operator<< (std::ostream &out, const TMultiVec< vtype > &mv) | 
| 
 | protected | 
Flag indicating if this vector was dynamically allocated.
| 
 | protected | 
Identifier of this vector.
| 
 | protected | 
Solver who is using this vector.
| 
 | inline | 
Refers to a state vector with the given ID (VecId::position(), VecId::velocity(), etc).
| 
 | inline | 
Refers to a not yet allocated state vector.
| 
 | inline | 
Allocate a new temporary vector with the given type (sofa::core::V_COORD or sofa::core::V_DERIV).
| 
 | inline | 
| 
 | inline | 
v = 0
| 
 | inline | 
| 
 | inline | 
v = a+b*f
| 
 | inline | 
v = a
| 
 | inline | 
v = a*f
| 
 | inline | 
| 
 | inline | 
| 
 | inline | 
| 
 | inline | 
Compute the norm of a vector. The type of norm is set by parameter l. Use 0 for the infinite norm. Note that the 2-norm is more efficiently computed using the square root of the dot product.
| 
 | inline | 
| 
 | inline | 
| 
 | inline | 
| 
 | inline | 
Automatic conversion to the underlying VecId.
| 
 | inline | 
return the scalar product dot(v,a)
| 
 | inline | 
v *= f
| 
 | inline | 
v += a
| 
 | inline | 
v -= a
| 
 | inline | 
v /= f
| 
 | inline | 
v = a
| 
 | inline | 
v = a
| 
 | inline | 
| 
 | inline | 
v += a*f
| 
 | inline | 
allocates vector for every newly appeared mechanical states (initializing them to 0 and does not modify already allocated mechanical states)
| interactionForceField | set to true, also allocate external mechanical states linked by an InteractionForceField (TODO remove this option by seeing external mmstates as abstract null vectors) | 
| 
 | inline | 
| 
 | inline | 
| 
 | inline | 
v *= f
| 
 | inline | 
nullify values below given threshold
| 
 | friend |