Tesseract
Motion Planning Environment
Loading...
Searching...
No Matches
ofkt_node.h
Go to the documentation of this file.
1
31#ifndef TESSERACT_STATE_SOLVER_OFKT_NODE_H
32#define TESSERACT_STATE_SOLVER_OFKT_NODE_H
33
36#include <Eigen/Geometry>
37#include <memory>
38#include <string>
39#include <vector>
41
43
45{
56{
57public:
58 // LCOV_EXCL_START
59 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
60 // LCOV_EXCL_STOP
61
62 using UPtr = std::unique_ptr<OFKTNode>;
63 using Ptr = std::shared_ptr<OFKTNode>;
64 using ConstPtr = std::shared_ptr<const OFKTNode>;
65
66 OFKTNode() = default;
67 virtual ~OFKTNode() = default;
68 OFKTNode(const OFKTNode&) = delete;
69 OFKTNode& operator=(const OFKTNode&) = delete;
70 OFKTNode(OFKTNode&&) = delete;
72
77 virtual JointType getType() const = 0;
78
86 virtual void setParent(OFKTNode* parent) = 0;
87
92 virtual OFKTNode* getParent() = 0;
93
98 virtual const OFKTNode* getParent() const = 0;
99
104 virtual const std::string& getLinkName() const = 0;
105
110 virtual const std::string& getJointName() const = 0;
111
119 virtual void storeJointValue(double joint_value) = 0;
120
125 virtual double getJointValue() const = 0;
126
131 virtual bool hasJointValueChanged() const = 0;
132
140 virtual void setStaticTransformation(Eigen::Isometry3d static_tf) = 0;
141
146 virtual const Eigen::Isometry3d& getStaticTransformation() const = 0;
147
154
159 virtual const Eigen::Isometry3d& getLocalTransformation() const = 0;
160
169 virtual Eigen::Isometry3d computeLocalTransformation(double joint_value) const = 0;
170
177
182 virtual const Eigen::Isometry3d& getWorldTransformation() const = 0;
183
194 virtual bool updateWorldTransformationRequired() const = 0;
195
200 virtual Eigen::Matrix<double, 6, 1> getLocalTwist() const = 0;
201
206 virtual void addChild(OFKTNode* node) = 0;
207
212 virtual void removeChild(const OFKTNode* node) = 0;
213
218 virtual std::vector<OFKTNode*>& getChildren() = 0;
219
224 virtual const std::vector<const OFKTNode*>& getChildren() const = 0;
225};
226} // namespace tesseract_scene_graph
227
228#endif // TESSERACT_STATE_SOLVER_OFKT_NODE_H
The OFKT node is contains multiple trasformation which are described below.
Definition: ofkt_node.h:56
virtual OFKTNode * getParent()=0
Get the parent node.
virtual bool updateWorldTransformationRequired() const =0
Indicates if an update of the world transformation is required.
virtual const Eigen::Isometry3d & getLocalTransformation() const =0
Get the local transformation: 'L = S * J'.
virtual const std::string & getLinkName() const =0
Get the link name associated with the node.
virtual void computeAndStoreLocalTransformation()=0
Compute and save the local transformation 'L = S * J(Joint Value)'.
virtual void setStaticTransformation(Eigen::Isometry3d static_tf)=0
Set the static transformation.
virtual void computeAndStoreWorldTransformation()=0
Compute and store the nodes world transformation.
virtual const OFKTNode * getParent() const =0
Get the parent node (const)
virtual void setParent(OFKTNode *parent)=0
Set the parent node.
virtual JointType getType() const =0
Get the type of joint associated with the node.
OFKTNode & operator=(OFKTNode &&)=delete
virtual const Eigen::Isometry3d & getStaticTransformation() const =0
Get the nodes static transformation.
virtual const std::vector< const OFKTNode * > & getChildren() const =0
Get a vector of child nodes associated with this node (Const)
OFKTNode(OFKTNode &&)=delete
std::shared_ptr< const OFKTNode > ConstPtr
Definition: ofkt_node.h:64
virtual Eigen::Isometry3d computeLocalTransformation(double joint_value) const =0
Compute the local tranformation but do not save.
virtual bool hasJointValueChanged() const =0
Indicates that the joint value has changed and that local and world transformation need to be recompu...
virtual void addChild(OFKTNode *node)=0
Add a child node.
virtual Eigen::Matrix< double, 6, 1 > getLocalTwist() const =0
Return the twist of the node in its local frame.
std::unique_ptr< OFKTNode > UPtr
Definition: ofkt_node.h:62
virtual const Eigen::Isometry3d & getWorldTransformation() const =0
Get the nodes world transformation.
virtual const std::string & getJointName() const =0
Get the joint name associated with the node.
virtual std::vector< OFKTNode * > & getChildren()=0
Get a vector of child nodes associated with this node.
virtual void removeChild(const OFKTNode *node)=0
Remove a child node assiciated with this node.
virtual double getJointValue() const =0
Get the current joint value.
OFKTNode & operator=(const OFKTNode &)=delete
std::shared_ptr< OFKTNode > Ptr
Definition: ofkt_node.h:63
virtual void storeJointValue(double joint_value)=0
Set the nodes joint value if it has one.
OFKTNode(const OFKTNode &)=delete
Common Tesseract Macros.
#define TESSERACT_COMMON_IGNORE_WARNINGS_PUSH
Definition: macros.h:71
Definition: create_convex_hull.cpp:36
Definition: graph.h:82
JointType
Definition: joint.h:270