Actin®  Version 5.2.0
Software for Robotics Simulation and Control
ecPointStateEqualityConstraint.h
Go to the documentation of this file.
1 #ifndef EcPointStateEqualityConstraint_H_
2 #define EcPointStateEqualityConstraint_H_
3 //------------------------------------------------------------------------------
4 // Copyright (c) 2012-2013 Energid Technologies. All rights reserved.
5 //
9 //
10 //------------------------------------------------------------------------------
11 
12 #include <actinCore/actinCore_config.h> // Required to be first header.
14 #include <xml/ecXmlVector.h>
15 #include <xml/ecXmlBasicType.h>
16 
17 // forward declarations
18 class EcManipulatorLink;
20 
23 {
24 public:
27  (
28  );
29 
32  (
33  );
34 
37  (
39  );
40 
43  (
45  );
46 
48  EcBoolean operator==
49  (
51  ) const;
52 
54  virtual EcXmlObject* clone
55  (
56  ) const EC_OVERRIDE;
57 
59  virtual EcBoolean equality
60  (
61  const EcXmlObject* other
62  ) const EC_OVERRIDE;
63 
65  virtual EcXmlObject* newObject
66  (
67  ) const EC_OVERRIDE;
68 
70  virtual void registerComponents
71  (
72  ) EC_OVERRIDE;
73 
75  virtual const EcToken& token
76  (
77  ) const EC_OVERRIDE;
78 
80  virtual const EcXmlString& firstLinkLabel
81  (
82  ) const;
83 
85  virtual void setFirstLinkLabel
86  (
87  const EcXmlString& firstLinkLabel
88  );
89 
91  virtual const EcXmlString& secondLinkLabel
92  (
93  ) const;
94 
96  virtual void setSecondLinkLabel
97  (
98  const EcXmlString& secondLinkLabel
99  );
100 
102  virtual const EcXmlVector& firstLinkPoint
103  (
104  ) const;
105 
107  virtual void setFirstLinkPoint
108  (
109  const EcXmlVector& firstLinkPoint
110  );
111 
113  virtual const EcXmlVector& secondLinkPoint
114  (
115  ) const;
116 
118  virtual void setSecondLinkPoint
119  (
120  const EcXmlVector& secondLinkPoint
121  );
122 
124  virtual EcU32 doc
125  (
126  ) const EC_OVERRIDE;
127 
130  (
131  const EcIndividualManipulator& manipulator,
132  EcPositionState& positionState
133  ) const EC_OVERRIDE;
134 
137  (
138  const EcIndividualManipulator& manipulator,
139  const EcPositionState& positionState,
140  EcVelocityState& velocityState
141  ) const EC_OVERRIDE;
142 
145  (
146  const EcIndividualManipulator& manipulator,
147  const EcPositionState& positionState,
148  const EcVelocityState& velocityState,
149  EcAccelerationState& accelerationState
150  ) const EC_OVERRIDE;
151 
153 
159  virtual const EcReArray& jacobian
160  (
161  const EcIndividualManipulator& manipulator,
162  const EcPositionState& state
163  ) const EC_OVERRIDE;
164 
166 
172  virtual const EcReArray& jacobianDerivative
173  (
174  const EcIndividualManipulator& manipulator,
175  const EcPositionState& state,
176  const EcVelocityState& velState
177  ) const EC_OVERRIDE;
178 
180  static EcPointStateEqualityConstraint nullObject
181  (
182  );
183 
185  static const EcToken& classToken
186  (
187  );
188 
190  static EcXmlObject* creator
191  (
192  );
193 
194 protected:
195 
199  virtual EcVector pointMotion
200  (
201  const EcManipulatorLink& inboardLink,
202  const EcManipulatorLink& outboardLink,
203  const EcVector& point,
204  EcManipulatorActivePositionState& activePositionState
205  ) const;
206 
207 protected:
208  // the point constraint parameters
213 };
214 
215 #endif // EcPointStateEqualityConstraint_H_
virtual const EcToken & token() const =0
gets the xml token used for writing out.
Holds a class to describe real arrays. Includes operations such as addition, subtraction, and multiplication.
Definition: ecReArray.h:15
#define EC_OVERRIDE
Add wrapper around c++11 override keyword.
Definition: ecMacros.h:36
This compound type is added as wrapper to the EcVector basic type. This allows flexibility in the XML...
Definition: ecXmlVector.h:21
boost::uint32_t EcU32
32-bit unsigned integer
Definition: ecTypes.h:53
Holds a description of the position state of a manipulator. This includes the joint velocities and th...
virtual void registerComponents() EC_OVERRIDE
register components with the parent
EcXmlString m_SecondLinkLabel
The label of the second link.
virtual const EcReArray & jacobianDerivative(const EcIndividualManipulator &manipulator, const EcPositionState &state, const EcVelocityState &velState) const
returns the jacobian time derivative of the function.
EcXmlString m_FirstLinkLabel
The label of the first link.
virtual EcU32 doc() const =0
return the degrees of constraint
virtual EcBoolean constrainAcceleration(const EcIndividualManipulator &manipulator, const EcPositionState &positionState, const EcVelocityState &velocityState, EcAccelerationState &accelerationState) const =0
restrain the acceleration state
An EcString-like class that holds a tag and a namespace.
Definition: ecToken.h:41
Holds the active position state of a manipulator.
Abstract base class for position state restriction.
A base class for xml objects.
Definition: ecXmlObject.h:23
EcXmlVector m_FirstLinkPoint
The point on the first link relative to its primary frame.
virtual const EcReArray & jacobian(const EcIndividualManipulator &manipulator, const EcPositionState &state) const =0
returns the jacobian of the function.
EcXmlVector m_SecondLinkPoint
The point on the second link relative to its primary frame.
Configuration header for the foundation hierarchy.
#define EC_ACTINCORE_MANIPULATOR_DECL
manipulator directory
Holds a description of the position state of a manipulator.
virtual EcXmlObject * clone() const =0
clone
bool EcBoolean
Boolean (0 or 1)
Definition: ecTypes.h:21
An individual manipulator is described through this class. It includes a string label, a physical extent of the base, a list of top-most links, and a dynamic reference frame.
virtual EcBoolean equality(const EcXmlObject *other) const =0
equality - a virtual equality to an EcXmlObject pointer
virtual EcXmlObject * newObject() const =0
creates new object - a virtual new to an EcXmlObject pointer
virtual EcBoolean constrainVelocity(const EcIndividualManipulator &manipulator, const EcPositionState &positionState, EcVelocityState &velocityState) const =0
restrain the velocity state
Holds a description of the acceleration state of a manipulator. This includes the joint accelerations...
virtual EcBoolean constrainPosition(const EcIndividualManipulator &manipulator, EcPositionState &positionState) const =0
restrain the position state
A three-element vector.
Definition: ecVector.h:20
Created by Energid Technologies www.energid.com
Copyright © 2016 Energid. All trademarks mentioned in this document are property of their respective owners.