16 #include <matrix/vlVector.h>
17 #include <matrix/vlTaitBryan.h>
41 AttachedPointTypeInvalidObject
48 AttachedPointModeOrientationOnly
58 : myAttachedPointType( type )
59 , myTargetVertexIndex( targetVertexIndex )
60 , myPositionOffset( positionOffset )
61 , myAttachedPointMode(AttachedPointModePositionAndOrientation)
69 return myAttachedPointType;
72 int targetVertexIndex()
74 return myTargetVertexIndex;
84 return myPositionOffset;
89 myAttachedPointMode = mode;
94 return myAttachedPointMode;
112 int targetVertexIndex,
const DtVector& positionOffset )
113 :
AttachedPoint( AttachedPointTypeObject, targetVertexIndex, positionOffset )
114 , mySceneObject( sceneObject )
115 , myUpdater( updater )
123 mySceneObject = sceneObject;
128 return mySceneObject;
155 :
AttachedPoint( AttachedPointTypeVertex, targetVertexIndex, positionOffset )
156 , myVertex( position )
178 int vtx1,
int vtx2,
double proportion,
int targetVertexIndex,
182 , mySecondVtx( vtx2 )
183 , myProportion( proportion )
185 myAttachedPointType = AttachedPointTypeProportional;
188 inline int firstVtx()
193 inline int secondVtx()
198 inline double proportion()
222 virtual void addAttachedPoint(
const DtVector& position,
int targetVertexIndex );
227 virtual void addAttachedPoint(
DtUniqueID uniqueID,
int targetVertexIndex );
232 virtual void addAttachedPoint(
DtUniqueID uniqueID,
int vtx1,
int vtx2,
233 double proportion,
int targetVertexIndex );
239 virtual const AttachedPoint& attachedPoint(
int targetVertexIndex )
const;
243 virtual void setPositionOffset(
const DtVector& offset );
248 virtual void setPositionOffset(
const DtVector& offset,
int vtx );
252 virtual void setOrientationOffset(
const DtTaitBryan& offset);
255 virtual void setAttachedPointMode(
unsigned int mode,
int vtx );
258 virtual void update( DtTime tNow );
262 virtual void doAttachment( DtTime tNow );
266 virtual void slot_attachedSceneObjectToBeDeleted(
const DtUniqueID& );
267 virtual void slot_attachedUpdaterToBeDeleted(
const DtUniqueID&
id );
271 double simTime,
DtVector& location, DtTaitBryan& orientation );
274 virtual void removeAttachedPoint(
int vtx,
DtVector* positionOffset = 0);