True Axis Physics SDK 1.2.0.1 Beta Documentation
www.trueaxis.com

HingeJointExample.cpp

Example of setting up a hinge joint.

//---------------------------------------------------------------------------------
// Hinge joint example
//---------------------------------------------------------------------------------
    
TA::Physics& physics = TA::Physics::GetInstance();

// Create 2 boxes.
TA::DynamicObject* pObjectA = TA::DynamicObject::CreateNew();
TA::DynamicObject* pObjectB = TA::DynamicObject::CreateNew();
TA::AABB aabb(
    TA::Vec3(0.0f, 0.0f, 0.0f),  // Center.
    TA::Vec3(0.5f, 0.5f, 0.5f)); // Extent.
pObjectA->InitialiseAsABox(aabb);
pObjectB->InitialiseAsABox(aabb);

// Possition the 2 boxes.
pObjectA->SetPosition(TA::Vec3(2.0f, 3.0f, 0.0f));
pObjectB->SetPosition(TA::Vec3(4.0f, 3.0f, 0.0f));

// Add a hinge between them.
TA::Vec3 v3JointWorldPos(3.0f, 3.0f, 0.0f);
TA::Vec3 v3HingeAxis(0.0f, 0.0f, 1.0f);
TA::PhysicsJoint& physicsJoint = pObjectA->AddJoint(pObjectB);
physicsJoint.InitialiseHinge(
    v3JointWorldPos,
    v3HingeAxis,
    -TA::k_fPi * 0.5f,  // Min rotation about v3HingeAxis.
    TA::k_fPi * 0.5f);  // Max rotation about v3HingeAxis.

// Add the objects to the simulation.
physics.AddDynamicObject(pObjectA);
physics.AddDynamicObject(pObjectB);


© Copyright 2004-2006 TRUE AXIS PTY LTD Australia. All rights reserved.