#include <rdForce.h>
Inheritance diagram for rdForce:

Public Member Functions | |
| rdForce (int aBodyA=0, int aBodyB=0, int aNX=1, int aNY=0, int aNYP=0) | |
| Default constructor. | |
| rdForce (IDOM_Element *aElement, int aNX=1, int aNY=0, int aNYP=0) | |
| Construct an actuator from file. | |
| rdForce (const rdForce &aForce) | |
| Copy constructor. | |
| virtual | ~rdForce () |
| Destructor. | |
| virtual rdActuator * | copy () const |
| Copy this actuator. | |
| virtual rdActuator * | copy (IDOM_Element *aElement) const |
| Copy this actuator and modify the copy so that it is consistent with a specified XML element node. | |
| rdForce & | operator= (const rdForce &aForce) |
| Assignment operator. | |
| virtual void | setControls (const double aX[]) |
| Set the current values of the controls. | |
| virtual void | getControls (double rX[]) const |
| Get the current values of the controls. | |
| void | setBodyA (int aID) |
| Set the id of the first body to which the force is applied. | |
| int | getBodyA () const |
| Get the id of the first body to which the force is applied. | |
| void | setPointA (const double aPoint[3]) |
| Set the value of the point on BodyA at which the force is applied. | |
| void | getPointA (double rPoint[3]) const |
| Get the value of the point on BodyA at which the force is applied. | |
| void | setForceDirectionA (const double aDirection[3]) |
| Set the direction in which a positive actuator force is applied to BodyA. | |
| void | getForceDirectionA (double rDirection[3]) const |
| Set the direction in which a positive actuator force is applied to BodyA. | |
| void | setBodyB (int aID) |
| Set the id of the second body to which the force is applied. | |
| int | getBodyB () const |
| Get the id of the second body to which the force is applied. | |
| void | setPointB (const double aPoint[3]) |
| Set the value of the point on BodyB at which the force is applied. | |
| void | getPointB (double rPoint[3]) const |
| Get the value of the point on BodyB at which the force is applied. | |
| void | getForceDirectionB (double rDirection[3]) const |
| Get the direction in which a positive actuator force is applied to BodyB. | |
| virtual void | apply () |
| Apply the actuator force to BodyA and BodyB. | |
| virtual void | computeActuation () |
| Compute all quantities necessary for applying the actuator force to the model. | |
| void | computeForceDirectionForBodyB () |
| Compute the force direction for BodyB based on the force direction set for BodyA. | |
| void | computeSpeed () |
| Compute the speed of the actuator. | |
| virtual bool | check () const |
| Check that this force actuator has a valid set of states. | |
| void | computeLineOfAction (double aLineOfAction[3]) const |
| Compute the vector directed from the point of force application on BodyA to the point of force application on BodyB expressed in the local frame of BodyA. | |
| virtual void | updateObject (bool aDeep=true) |
| Update this object based on its XML node. | |
| virtual void | updateNode (bool aDeep=true) |
| Update the XML node representing this object. | |
| virtual void | generateNode (IDOM_Element *aParent) |
| Generate an XML node representing this object. | |
| void | updateData () |
| Update the member data of this object based on its XML node. | |
Static Public Attributes | |
| const char | PROP_BODYA [] = "body_A" |
| const char | PROP_POINTA [] = "point_A" |
| const char | PROP_DIRECTIONA [] = "direction_A" |
| const char | PROP_BODYB [] = "body_B" |
| const char | PROP_POINTB [] = "point_B" |
Protected Attributes | |
| int | _bA |
| BodyA. | |
| double | _pA [3] |
| Point on BodyA expressed in the body-local frame at which the force is applied. | |
| double | _uA [3] |
| Unit vector expressed in the local frame of BodyA that specifies the direction a positive actuator force is applied to BodyA. | |
| int | _bB |
| BodyB. | |
| double | _pB [3] |
| Point on BodyB expressed in the body-local frame at which the force is applied. | |
| double | _uB [3] |
| Unit vector expressed in the local frame of BodyB that specifies the direction a positive actuator force is applied to BodyB. | |
Private Member Functions | |
| void | setNull () |
| Set the data members of this actuator to their null values. | |
This actuator has no states; the control is simply the force to be applied to the model.
|
||||||||||||||||||||
|
Construct an actuator from file.
|
|
|
Copy constructor.
|
|
|
Compute the vector directed from the point of force application on BodyA to the point of force application on BodyB expressed in the local frame of BodyA.
|
|
|
Copy this actuator and modify the copy so that it is consistent with a specified XML element node. The copy is constructed by first using rdForce::rdForce(IDOM_Element*,int,int) in order to establish the relationship of the rdForce object with the XML node. Then, the assignment operator is used to set all data members of the copy to the values of this rdForce object. Finally, the data members of the copy are updated using rdForce::updateObject().
Implements rdActuator. Reimplemented in rdLinearSetPoint, rdMuscleZajac, and rdPolynomialSetPoint. |
|
|
Copy this actuator. The copy constructor for this class is used.
Implements rdActuator. Reimplemented in rdLinearSetPoint, rdMuscleZajac, and rdPolynomialSetPoint. |
|
|
Generate an XML node representing this object.
Reimplemented from rdActuator. Reimplemented in rdLinearSetPoint, rdMuscleZajac, rdPolynomialSetPoint, rdSetPoint, and rdContactForce. |
|
|
Get the id of the first body to which the force is applied.
|
|
|
Get the id of the second body to which the force is applied.
|
|
|
Get the current values of the controls.
Reimplemented from rdActuator. Reimplemented in rdMuscleZajac. |
|
|
Set the direction in which a positive actuator force is applied to BodyA.
|
|
|
Get the direction in which a positive actuator force is applied to BodyB. Note that the direction of force application on BodyB cannot be set; it is always computed based on the force direction set for BodyA.
|
|
|
Get the value of the point on BodyA at which the force is applied.
|
|
|
Get the value of the point on BodyB at which the force is applied.
|
|
|
Assignment operator.
|
|
|
Set the id of the first body to which the force is applied.
|
|
|
Set the id of the second body to which the force is applied.
|
|
|
Set the current values of the controls.
Reimplemented from rdActuator. Reimplemented in rdMuscleZajac. |
|
|
Set the direction in which a positive actuator force is applied to BodyA. Newton's second law states that the force between two bodies is equal and opposite in direction, so when the direction of force on one body is known, the direction on the other body can be calculated. Therefore, the direction of force on BodyB is always computed.
|
|
|
Set the value of the point on BodyA at which the force is applied.
|
|
|
Set the value of the point on BodyB at which the force is applied.
|
|
|
Update the member data of this object based on its XML node. Member objects (children) are not updated. Reimplemented from rdActuator. Reimplemented in rdLinearSetPoint, rdMuscleZajac, rdPolynomialSetPoint, rdSetPoint, and rdContactForce. |
|
|
Update the XML node representing this object.
Reimplemented from rdActuator. Reimplemented in rdLinearSetPoint, rdMuscleZajac, rdPolynomialSetPoint, rdSetPoint, and rdContactForce. |
|
|
Update this object based on its XML node.
Reimplemented from rdActuator. Reimplemented in rdLinearSetPoint, rdMuscleZajac, rdPolynomialSetPoint, rdSetPoint, and rdContactForce. |
1.3