|
| | Plane (const Eigen::Vector3d &normal, double offset) |
| |
| | Plane (const Eigen::Vector3d &normal, const Eigen::Vector3d &point) |
| |
| template<typename S , typename EnumO > |
| void | setIntegrator (std::shared_ptr< S > integrator, EnumO oPosition, EnumO oVelocity, EnumO oAcceleration) |
| |
| template<typename S , typename EnumO , typename std::enable_if< std::is_base_of< tvm::graph::abstract::Outputs, S >::value, int >::type = 0> |
| void | setIntegrator (S &integrator, EnumO oPosition, EnumO oVelocity, EnumO oAcceleration) |
| |
| void | position (const Eigen::Vector3d &normal, const Eigen::Vector3d &point) |
| |
| void | position (const Eigen::Vector3d &normal, double offset) |
| |
| void | velocity (const Eigen::Vector3d &nDot, const Eigen::Vector3d &speed) |
| |
| void | acceleration (const Eigen::Vector3d &nDotDot, const Eigen::Vector3d &accel) |
| |
| const Eigen::Vector3d & | normal () const |
| |
| double | offset () const |
| |
| const Eigen::Vector3d & | point () const |
| |
| const Eigen::Vector3d & | normalDot () const |
| |
| const Eigen::Vector3d & | speed () const |
| |
| const Eigen::Vector3d & | normalDotDot () const |
| |
| const Eigen::Vector3d & | acceleration () const |
| |
| template<typename EnumT > |
| bool | isUpdateEnabled (EnumT e) const |
| |
| virtual bool | isUpdateStaticallyEnabled (int) const |
| |
| virtual bool | isUpdateCustomEnabled (int) const |
| |
| virtual | ~AbstractNode ()=default |
| |
| void | update (int i) |
| |
| virtual | ~Inputs ()=default |
| |
| template<typename T , typename EnumI , typename... Args> |
| void | addInput (std::shared_ptr< T > source, EnumI i, Args... args) |
| |
| template<typename T , typename EnumI , typename... Args, typename std::enable_if< std::is_base_of< abstract::Outputs, T >::value, int >::type = 0> |
| void | addInput (T &source, EnumI i, Args... args) |
| |
| template<typename T > |
| void | removeInput (T *source) |
| |
| template<typename T , typename... Args> |
| void | removeInput (T *source, Args... args) |
| |
| template<typename T > |
| Iterator | getInput (T *source) |
| |
| template<typename T > |
| Iterator | getInput (const std::shared_ptr< T > &source) |
| |
| virtual | ~Outputs ()=default |
| |
| template<typename EnumT > |
| bool | isOutputEnabled (EnumT e) const |
| |
| bool | isOutputEnabled (int i) const |
| |
| virtual bool | isOutputStaticallyEnabled (int) const |
| |
| virtual bool | isOutputCustomEnabled (int) const |
| |
|
| enum class | Update_ |
| |
| using | UpdateParent = AbstractNode |
| |
| using | UpdateBase = AbstractNode |
| |
| using | inputs_t = std::unordered_map< abstract::Outputs *, std::set< int > > |
| |
| using | store_t = std::unordered_set< std::shared_ptr< abstract::Outputs > > |
| |
| enum class | Output_ |
| |
| using | OutputParent = Outputs |
| |
| using | OutputBase = Outputs |
| |
| static constexpr const char * | UpdateName (Update_) |
| |
| template<typename EnumT > |
| static constexpr bool | UpdateStaticallyEnabled (EnumT) |
| |
| static constexpr const char * | OutputName (Output_) |
| |
| template<typename EnumT > |
| static constexpr bool | OutputStaticallyEnabled (EnumT) |
| |
| static constexpr unsigned int | UpdateSize = 0 |
| |
| static constexpr auto | UpdateBaseName = "AbstractNode" |
| |
| static constexpr unsigned int | OutputSize = 0 |
| |
| static constexpr auto | OutputBaseName = "Outputs" |
| |
| using | input_dependency_t = std::map< Outputs *, std::set< int > > |
| |
| void | registerUpdates (EnumT u, void(U::*fn)(), Args... args) |
| |
| void | registerUpdates (EnumT u, void(U::*fn)()) |
| |
| void | addOutputDependency (EnumO o, EnumU u) |
| |
| void | addOutputDependency (std::initializer_list< EnumO > os, EnumU u) |
| |
| void | addInternalDependency (EnumU1 uDependent, EnumU2 u) |
| |
| void | addInputDependency (EnumU u, std::shared_ptr< S > source, EnumO i, Args... args) |
| |
| void | addInputDependency (EnumU u, S &source, EnumO i, Args... args) |
| |
| void | addDirectDependency (EnumO o, std::shared_ptr< S > source, EnumI i) |
| |
| void | addDirectDependency (EnumO o, S &source, EnumI i) |
| |
| std::map< int, std::function< void(AbstractNode &)> > | updates_ |
| |
| std::map< int, std::vector< int > > | outputDependencies_ |
| |
| std::map< int, std::vector< int > > | internalDependencies_ |
| |
| std::map< int, input_dependency_t > | inputDependencies_ |
| |
| std::map< int, std::pair< Outputs *, int > > | directDependencies_ |
| |
| bool | is_node_ = false |
| |
Represents a 2D plane in 3D space
A static plane is represented by the usual (normal, offset) representation. (i.e. normal.dot(x) + offset = 0)
A moving plane is represented by a (normal, point) couple and their derivatives. (i.e. normal.dot(point) = -offset)
This object does not update any of these quantities (exception: when point is changed, offset is changed accordingly), this responsibility belongs to the Plane provider. In other words, this is not a plane integrator.
Outputs:
- Position: position of the plane, represents (normal, offset, point) quantities
- Velocity: first derivative of (normal, point)
- Acceleration: second derivative of (normal, point)
template<typename S , typename EnumO , typename std::enable_if< std::is_base_of< tvm::graph::abstract::Outputs, S >::value, int >::type = 0>
| void tvm::geometry::Plane::setIntegrator |
( |
S & |
integrator, |
|
|
EnumO |
oPosition, |
|
|
EnumO |
oVelocity, |
|
|
EnumO |
oAcceleration |
|
) |
| |
|
inline |
Set a direct dependency to the outputs of the integrator
This variant is probably preferable if the integrator creates the plane object
Such an integrator should update the plane in its own update method