Example #1
0
// frees all memory allocated to the skeleton struct
void destroySkeleton(Skeleton skeleton) {
	free(skeleton.name);
	for (size_t i = 0; i < skeleton.numJoints; i++) {
		destroyJoint(skeleton.jointArray[i]);
	}
	free(skeleton.jointArray);
}
Example #2
0
void ClockCircle :: createJoint ( float x, float y, float length )
{
	if( hasJoint() )
		destroyJoint();
	
	b2BodyDef bd;
	bd.position.Set( ( x * screenWidth ) / OFX_BOX2D_SCALE, ( y * screenHeight ) / OFX_BOX2D_SCALE );
	point = world->CreateBody( &bd );
	
	b2DistanceJointDef jd;
	b2Vec2 p1, p2, d;
	
	jd.frequencyHz  = 1.0;
	jd.dampingRatio = 0.2;
	
	jd.body1 = body;
	jd.body2 = point;
	
	jd.localAnchor1.Set( 0, 0 );
	jd.localAnchor2.Set( 0, 0 );
	jd.collideConnected = false;
	
	p1	= jd.body1->GetWorldPoint( jd.localAnchor1 );
	p2	= jd.body2->GetWorldPoint( jd.localAnchor2 );
	d	= p2 - p1;
	
	jd.length = length / OFX_BOX2D_SCALE;
	
	joint = (b2DistanceJoint*)world->CreateJoint( &jd );
	
	body->WakeUp();
}
Example #3
0
void PHJoint::setObject2(PHLObject*obj)
{
    destroyJoint();
    if (body2)
        body2->removeJoint(this);
    body2 = obj;
    if (body2)
        body2->addJoint(this);
}
Example #4
0
void PHJoint::setObject1(PHLObject*obj)
{
    destroyJoint();
    if (body1)
        body1->removeJoint(this);
    body1 = obj;
    if (body1)
        body1->addJoint(this);
}
Example #5
0
void PHDistanceJoint::recreateJoint()
{
    destroyJoint();
    b2DistanceJointDef jointDef;
    b2Body * b1 = body1->getBody();
    b2Body * b2 = body2->getBody();
    
    b2Vec2 a1;
    b2Vec2 a2;
    a1.x = anchor1.x;
    a1.y = anchor1.y;
    a2.x = anchor2.x;
    a2.y = anchor2.y;
    if (!worldCoord)
    {
        a1 = b1->GetWorldPoint(a1);
        a2 = b2->GetWorldPoint(a2);
    }
    jointDef.Initialize(b1,b2,a1,a2);
    jointDef.collideConnected = collideConnected;
    jointDef.frequencyHz = freq;
    jointDef.dampingRatio = damp;
    joint = world->getPhysicsWorld()->CreateJoint(&jointDef);
}
Example #6
0
void PHJoint::recreateJoint()
{
    destroyJoint();
    //placeholder
}
Example #7
0
PHJoint::~PHJoint()
{
    destroyJoint();
    setObject1(NULL);
    setObject2(NULL);
}
Example #8
0
	GearJoint::~GearJoint()
	{
		destroyJoint(joint);
		joint = 0;
	}
	PulleyJoint::~PulleyJoint()
	{
		destroyJoint(joint);
		joint = 0;
	}
Example #10
0
	DistanceJoint::~DistanceJoint()
	{
		destroyJoint(joint);
		joint = 0;
	}
Example #11
0
	PrismaticJoint::~PrismaticJoint()
	{
		destroyJoint(joint);
		joint = 0;
	}
Example #12
0
Joint::~Joint() {
    mBodyA->unregisterAttachedJoint(this);
    mBodyB->unregisterAttachedJoint(this);
    setParent(nullptr);
    destroyJoint();
}