| 97 |
|
virtual ~StuntDouble(); |
| 98 |
|
|
| 99 |
|
/** |
| 100 |
< |
* Returns the global index of this stuntdouble. |
| 100 |
> |
* Returns the global index of this stuntRealType. |
| 101 |
|
* @return the global index of this stuntdouble |
| 102 |
|
*/ |
| 103 |
|
int getGlobalIndex() { |
| 105 |
|
} |
| 106 |
|
|
| 107 |
|
/** |
| 108 |
< |
* Sets the global index of this stuntdouble. |
| 108 |
> |
* Sets the global index of this stuntRealType. |
| 109 |
|
* @param new global index to be set |
| 110 |
|
*/ |
| 111 |
|
void setGlobalIndex(int index) { |
| 128 |
|
localIndex_ = index; |
| 129 |
|
} |
| 130 |
|
|
| 131 |
+ |
int getGlobalIntegrableObjectIndex(){ |
| 132 |
+ |
return globalIntegrableObjectIndex_; |
| 133 |
+ |
} |
| 134 |
+ |
void setGlobalIntegrableObjectIndex(int index) { |
| 135 |
+ |
globalIntegrableObjectIndex_ = index; |
| 136 |
+ |
} |
| 137 |
+ |
|
| 138 |
|
/** |
| 139 |
|
* Sets the Snapshot Manager of this stuntdouble |
| 140 |
|
*/ |
| 175 |
|
} |
| 176 |
|
|
| 177 |
|
/** |
| 178 |
+ |
* Freezes out all velocity, angular velocity, forces and torques |
| 179 |
+ |
* on this StuntDouble. Also computes the number of frozen degrees |
| 180 |
+ |
* of freedom. |
| 181 |
+ |
* @return the total number of frozen degrees of freedom |
| 182 |
+ |
*/ |
| 183 |
+ |
int freeze() { |
| 184 |
+ |
|
| 185 |
+ |
int fdf = 3; |
| 186 |
+ |
|
| 187 |
+ |
setVel(V3Zero); |
| 188 |
+ |
setFrc(V3Zero); |
| 189 |
+ |
if (isDirectional()){ |
| 190 |
+ |
setJ(V3Zero); |
| 191 |
+ |
setTrq(V3Zero); |
| 192 |
+ |
if (isLinear()) |
| 193 |
+ |
fdf +=2; |
| 194 |
+ |
else |
| 195 |
+ |
fdf +=3; |
| 196 |
+ |
} |
| 197 |
+ |
return fdf; |
| 198 |
+ |
} |
| 199 |
+ |
|
| 200 |
+ |
/** |
| 201 |
|
* Returns the previous position of this stuntdouble |
| 202 |
|
* @return the position of this stuntdouble |
| 203 |
|
*/ |
| 490 |
|
} |
| 491 |
|
|
| 492 |
|
/** |
| 493 |
< |
* Sets the previous euler angles of this stuntdouble. |
| 493 |
> |
* Sets the previous euler angles of this stuntRealType. |
| 494 |
|
* @param euler new euler angles |
| 495 |
|
* @see #getEuler |
| 496 |
|
* @note actual storage data is rotation matrix |
| 717 |
|
* Returns the previous z-angle of this stuntdouble |
| 718 |
|
* @return the z-angle of this stuntdouble |
| 719 |
|
*/ |
| 720 |
< |
double getPrevZangle() { |
| 720 |
> |
RealType getPrevZangle() { |
| 721 |
|
return ((snapshotMan_->getPrevSnapshot())->*storage_).zAngle[localIndex_]; |
| 722 |
|
} |
| 723 |
|
|
| 725 |
|
* Returns the current z-angle of this stuntdouble |
| 726 |
|
* @return the z-angle of this stuntdouble |
| 727 |
|
*/ |
| 728 |
< |
double getZangle() { |
| 728 |
> |
RealType getZangle() { |
| 729 |
|
return ((snapshotMan_->getCurrentSnapshot())->*storage_).zAngle[localIndex_]; |
| 730 |
|
} |
| 731 |
|
|
| 734 |
|
* @return the z-angle of this stuntdouble |
| 735 |
|
* @param snapshotNo |
| 736 |
|
*/ |
| 737 |
< |
double getZangle(int snapshotNo) { |
| 737 |
> |
RealType getZangle(int snapshotNo) { |
| 738 |
|
return ((snapshotMan_->getSnapshot(snapshotNo))->*storage_).zAngle[localIndex_]; |
| 739 |
|
} |
| 740 |
|
|
| 743 |
|
* @param angle new z-angle |
| 744 |
|
* @see #getZangle |
| 745 |
|
*/ |
| 746 |
< |
void setPrevZangle(double angle) { |
| 746 |
> |
void setPrevZangle(RealType angle) { |
| 747 |
|
((snapshotMan_->getPrevSnapshot())->*storage_).zAngle[localIndex_] = angle; |
| 748 |
|
} |
| 749 |
|
|
| 751 |
|
* Sets the current z-angle of this stuntdouble |
| 752 |
|
* @param angle new z-angle |
| 753 |
|
*/ |
| 754 |
< |
void setZangle(double angle) { |
| 754 |
> |
void setZangle(RealType angle) { |
| 755 |
|
((snapshotMan_->getCurrentSnapshot())->*storage_).zAngle[localIndex_] = angle; |
| 756 |
|
} |
| 757 |
|
|
| 761 |
|
* @param snapshotNo |
| 762 |
|
* @see #getZangle |
| 763 |
|
*/ |
| 764 |
< |
void setZangle(double angle, int snapshotNo) { |
| 764 |
> |
void setZangle(RealType angle, int snapshotNo) { |
| 765 |
|
((snapshotMan_->getSnapshot(snapshotNo))->*storage_).zAngle[localIndex_] = angle; |
| 766 |
|
} |
| 767 |
|
|
| 770 |
|
* @param angle new z-angle |
| 771 |
|
* @see #getZangle |
| 772 |
|
*/ |
| 773 |
< |
void addPrevZangle(double angle) { |
| 773 |
> |
void addPrevZangle(RealType angle) { |
| 774 |
|
((snapshotMan_->getPrevSnapshot())->*storage_).zAngle[localIndex_] += angle; |
| 775 |
|
} |
| 776 |
|
|
| 778 |
|
* Adds z-angle into the current z-angle of this stuntdouble |
| 779 |
|
* @param angle new z-angle |
| 780 |
|
*/ |
| 781 |
< |
void addZangle(double angle) { |
| 781 |
> |
void addZangle(RealType angle) { |
| 782 |
|
((snapshotMan_->getCurrentSnapshot())->*storage_).zAngle[localIndex_] += angle; |
| 783 |
|
} |
| 784 |
|
|
| 788 |
|
* @param snapshotNo |
| 789 |
|
* @see #getZangle |
| 790 |
|
*/ |
| 791 |
< |
void addZangle(double angle, int snapshotNo) { |
| 791 |
> |
void addZangle(RealType angle, int snapshotNo) { |
| 792 |
|
((snapshotMan_->getSnapshot(snapshotNo))->*storage_).zAngle[localIndex_] += angle; |
| 793 |
|
} |
| 794 |
|
|
| 804 |
|
* Returns the gradient of this stuntdouble |
| 805 |
|
* @return the gradient of this stuntdouble |
| 806 |
|
*/ |
| 807 |
< |
virtual std::vector<double> getGrad() = 0; |
| 807 |
> |
virtual std::vector<RealType> getGrad() = 0; |
| 808 |
|
|
| 809 |
|
/** |
| 810 |
|
* Tests the if this stuntdouble is a linear rigidbody |
| 830 |
|
} |
| 831 |
|
|
| 832 |
|
/** Returns the mass of this stuntdouble */ |
| 833 |
< |
double getMass() { |
| 833 |
> |
RealType getMass() { |
| 834 |
|
return mass_; |
| 835 |
|
} |
| 836 |
|
|
| 838 |
|
* Sets the mass of this stuntdoulbe |
| 839 |
|
* @param mass the mass to be set |
| 840 |
|
*/ |
| 841 |
< |
void setMass(double mass) { |
| 841 |
> |
void setMass(RealType mass) { |
| 842 |
|
mass_ = mass; |
| 843 |
|
} |
| 844 |
|
|
| 845 |
|
/** Returns the name of this stuntdouble */ |
| 846 |
|
virtual std::string getType() = 0; |
| 847 |
|
|
| 848 |
< |
/** Sets the name of this stuntdouble*/ |
| 848 |
> |
/** Sets the name of this stuntRealType*/ |
| 849 |
|
virtual void setType(const std::string& name) {} |
| 850 |
|
|
| 851 |
|
/** |
| 939 |
|
|
| 940 |
|
|
| 941 |
|
int globalIndex_; |
| 942 |
+ |
int globalIntegrableObjectIndex_; |
| 943 |
|
int localIndex_; |
| 944 |
|
|
| 945 |
|
|
| 946 |
< |
double mass_; |
| 946 |
> |
RealType mass_; |
| 947 |
|
|
| 948 |
|
private: |
| 949 |
|
|