Collision Path VB .NET Sample
Description
Implementation
The most important functionality is contained in OnAnimate() handler of the
Animate button, where IMetrics of objects in
the model are added to
Kinematic Set,, which is a collection of object participated in the
detection.
The m_tCollision = m_iDetector.Detect(context) line performs
the collision detection and stores collision time in m_tCollision
data member. It will be a large number if there where no collision.
m_iDetector object is created on start of the application in
OnFormLoad sub.using IDIObjGenerator.Create(
EObjectType.eObjTypePathCollisionDetector ) (See
IDIObjGenerator.Create)
OnFormLoad sub also creates new
Movement objects and an auxiliary
frame object, which will be used to set / retrieve frames from frame array in
various parts of the program.
SetupDefaultMovement() sub, also called from OnFormLoad,
defines the initial moment paths for each object. The first object
(Cylinder) is translated up by 1 and then is translated to the right (along x
axis) by 3 with rotation around its local y axis. The second object (Cone)
remains in the same position, but rotates by 45 degrees during the second half
of the movement.
Notice also m_iKinematicSet.SetPosition(m_t) call inside
OnTimer handler of timer events, which moves all objects to their
position at the moment m_t. The
current frame is rendered in OnClientDraw() with
m_iGraphicItemFrame.Draw(). m_iGraphicItemFrame is a
IGraphicItem
implemented by Graphic
Item of the standalone frame m_iFrame. It is created in
CreateFrameGraphicItem().
|