Drake
Drake C++ Documentation
MyVector< T, N > Class Template Reference

Detailed Description

template<typename T, int N>
class drake::systems::MyVector< T, N >

A simple subclass of BasicVector<T> for testing, particularly for cases where BasicVector subtyping must be preserved through the framework.

#include <drake/systems/framework/test_utilities/my_vector.h>

Public Member Functions

 MyVector ()
 Constructs an uninitialized N-vector. More...
 
 MyVector (const VectorX< T > &data)
 Constructs from a variable-length vector whose length must be N. More...
 
 MyVector (const Eigen::Matrix< T, N, 1 > &data)
 Constructs from a fixed-size Eigen VectorN. More...
 
std::unique_ptr< MyVector< T, N > > Clone () const
 Shadows the base class Clone() method to change the return type, so that this can be used in copyable_unique_ptr<MyVector> and Value<MyVector>. More...
 
Does not allow copy, move, or assignment
 MyVector (const MyVector &)=delete
 
MyVectoroperator= (const MyVector &)=delete
 
 MyVector (MyVector &&)=delete
 
MyVectoroperator= (MyVector &&)=delete
 
- Public Member Functions inherited from BasicVector< T >
 BasicVector ()=default
 Constructs an empty BasicVector. More...
 
 BasicVector (int size)
 Initializes with the given size using the drake::dummy_value<T>, which is NaN when T = double. More...
 
 BasicVector (VectorX< T > vec)
 Constructs a BasicVector with the specified vec data. More...
 
 BasicVector (const std::initializer_list< T > &init)
 Constructs a BasicVector whose elements are the elements of init. More...
 
int size () const final
 Returns the number of elements in the vector. More...
 
void set_value (const Eigen::Ref< const VectorX< T >> &value)
 Sets the vector to the given value. More...
 
const VectorX< T > & value () const
 Returns a const reference to the contained VectorX<T>. More...
 
Eigen::VectorBlock< VectorX< T > > get_mutable_value ()
 Returns the entire vector as a mutable Eigen::VectorBlock, which allows mutation of the values, but does not allow resize() to be invoked on the returned object. More...
 
void SetFromVector (const Eigen::Ref< const VectorX< T >> &value) final
 Replaces the entire vector with the contents of value. More...
 
VectorX< T > CopyToVector () const final
 Copies this entire VectorBase into a contiguous Eigen Vector. More...
 
void ScaleAndAddToVector (const T &scale, EigenPtr< VectorX< T >> vec) const final
 Adds a scaled version of this vector to Eigen vector vec. More...
 
void SetZero () final
 Sets all elements of this vector to zero. More...
 
std::unique_ptr< BasicVector< T > > Clone () const
 Copies the entire vector to a new BasicVector, with the same concrete implementation type. More...
 
Eigen::VectorBlock< const VectorX< T > > get_value () const
 (Don't use this in new code) Returns the entire vector as a const Eigen::VectorBlock. More...
 
 BasicVector (const BasicVector &)=delete
 
BasicVectoroperator= (const BasicVector &)=delete
 
 BasicVector (BasicVector &&)=delete
 
BasicVectoroperator= (BasicVector &&)=delete
 
- Public Member Functions inherited from VectorBase< T >
virtual ~VectorBase ()
 
T & operator[] (int index)
 Returns the element at the given index in the vector. More...
 
const T & operator[] (int index) const
 Returns the element at the given index in the vector. More...
 
const T & GetAtIndex (int index) const
 Returns the element at the given index in the vector. More...
 
T & GetAtIndex (int index)
 Returns the element at the given index in the vector. More...
 
void SetAtIndex (int index, const T &value)
 Replaces the state at the given index with the value. More...
 
virtual void SetFrom (const VectorBase< T > &value)
 Replaces the entire vector with the contents of value. More...
 
virtual void CopyToPreSizedVector (EigenPtr< VectorX< T >> vec) const
 Copies this entire VectorBase into a pre-sized Eigen Vector. More...
 
VectorBasePlusEqScaled (const T &scale, const VectorBase< T > &rhs)
 Add in scaled vector rhs to this vector. More...
 
VectorBasePlusEqScaled (const std::initializer_list< std::pair< T, const VectorBase< T > & >> &rhs_scale)
 Add in multiple scaled vectors to this vector. More...
 
VectorBaseoperator+= (const VectorBase< T > &rhs)
 Add in vector rhs to this vector. More...
 
VectorBaseoperator-= (const VectorBase< T > &rhs)
 Subtract in vector rhs to this vector. More...
 
virtual void GetElementBounds (Eigen::VectorXd *lower, Eigen::VectorXd *upper) const
 Get the bounds for the elements. More...
 
 VectorBase (const VectorBase &)=delete
 
VectorBaseoperator= (const VectorBase &)=delete
 
 VectorBase (VectorBase &&)=delete
 
VectorBaseoperator= (VectorBase &&)=delete
 

Static Public Member Functions

template<typename... Fargs>
static std::unique_ptr< MyVectorMake (Fargs &&... args)
 Constructs a MyVector where each element is constructed using the placewise-corresponding member of args as the sole constructor argument. More...
 
- Static Public Member Functions inherited from BasicVector< T >
static std::unique_ptr< BasicVector< T > > Make (const std::initializer_list< T > &init)
 Constructs a BasicVector whose elements are the elements of init. More...
 
template<typename... Fargs>
static std::unique_ptr< BasicVector< T > > Make (Fargs &&... args)
 Constructs a BasicVector where each element is constructed using the placewise-corresponding member of args as the sole constructor argument. More...
 

Additional Inherited Members

- Protected Member Functions inherited from BasicVector< T >
const T & DoGetAtIndexUnchecked (int index) const final
 Implementations should ensure this operation is O(1) and allocates no memory. More...
 
T & DoGetAtIndexUnchecked (int index) final
 Implementations should ensure this operation is O(1) and allocates no memory. More...
 
const T & DoGetAtIndexChecked (int index) const final
 Implementations should ensure this operation is O(1) and allocates no memory. More...
 
T & DoGetAtIndexChecked (int index) final
 Implementations should ensure this operation is O(1) and allocates no memory. More...
 
const VectorX< T > & values () const
 Provides const access to the element storage. More...
 
VectorX< T > & values ()
 (Advanced) Provides mutable access to the element storage. More...
 
- Protected Member Functions inherited from VectorBase< T >
 VectorBase ()
 
void ThrowOutOfRange (int index) const
 
void ThrowMismatchedSize (int other_size) const
 
- Static Protected Member Functions inherited from BasicVector< T >
template<typename F , typename... Fargs>
static void MakeRecursive (BasicVector< T > *data, int index, F constructor_arg, Fargs &&... recursive_args)
 Sets data at index to an object of type T, which must have a single-argument constructor invoked via constructor_arg, and then recursively invokes itself on the next index with recursive args. More...
 
template<typename F , typename... Fargs>
static void MakeRecursive (BasicVector< T > *data, int index, F constructor_arg)
 Base case for the MakeRecursive template recursion. More...
 

Constructor & Destructor Documentation

◆ MyVector() [1/5]

MyVector ( const MyVector< T, N > &  )
delete

◆ MyVector() [2/5]

MyVector ( MyVector< T, N > &&  )
delete

◆ MyVector() [3/5]

MyVector ( )

Constructs an uninitialized N-vector.

◆ MyVector() [4/5]

MyVector ( const VectorX< T > &  data)
explicit

Constructs from a variable-length vector whose length must be N.

◆ MyVector() [5/5]

MyVector ( const Eigen::Matrix< T, N, 1 > &  data)
explicit

Constructs from a fixed-size Eigen VectorN.

Member Function Documentation

◆ Clone()

std::unique_ptr<MyVector<T, N> > Clone ( ) const

Shadows the base class Clone() method to change the return type, so that this can be used in copyable_unique_ptr<MyVector> and Value<MyVector>.

◆ Make()

static std::unique_ptr<MyVector> Make ( Fargs &&...  args)
static

Constructs a MyVector where each element is constructed using the placewise-corresponding member of args as the sole constructor argument.

For instance: MyVector<2, double>::Make(1.1, 2.2).

◆ operator=() [1/2]

MyVector& operator= ( const MyVector< T, N > &  )
delete

◆ operator=() [2/2]

MyVector& operator= ( MyVector< T, N > &&  )
delete

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