Code Search for Developers
 
 
  

joint.cpp from NeoEngineNG at Krugle


Show joint.cpp syntax highlighted

#include "joint.h"
#include "rigidbody.h"

namespace NeoNewton
{
/*
	Joint::Joint( RigidBody * pkChild, RigidBody * pkParent ) :
	m_pkChildBody( pkChild->m_pkBody )
	{
		m_pkParentBody = pkParent ? ( pkParent->m_pkBody ) : 0 ;
		m_pkWorld = NewtonBodyGetWorld( pkChild->m_pkBody );
	}
*/
	void Joint::Destroy()
	{
		NewtonDestroyJoint( GetWorld(), m_pkJoint );
	}

	NewtonWorld * Joint::GetWorld()
	{
		return static_cast< PhysicWorld * >( m_pkWorld )->Get();
	}

	NewtonBody * Joint::GetChild()
	{
		return m_pkChildBody ? static_cast< RigidBody * >( m_pkChildBody )->m_pkBody : 0;
	}

	NewtonBody * Joint::GetParent()
	{
		return m_pkParentBody ? static_cast< RigidBody * >( m_pkParentBody )->m_pkBody : 0;
	}

	float Joint::GetStiffness()
	{
		return NewtonJointGetStiffness( m_pkJoint );
	}

	void Joint::SetStiffness( float fStiffness )
	{
		NewtonJointSetStiffness( m_pkJoint, fStiffness );
	}

	BallAndSocketJoint::BallAndSocketJoint( const Vector3d &rkPivot ) :
	NeoEngine::BallAndSocketJoint( rkPivot ),
	Joint()
	{
	}

	void BallAndSocketJoint::Attach( NeoEngine::RigidBody * pkParent, NeoEngine::RigidBody * pkChild )
	{
		NeoEngine::BallAndSocketJoint::Attach( pkParent, pkChild );
		float pivot[3] = { m_kPivot.x, m_kPivot.y, m_kPivot.z };
		m_pkJoint = NewtonConstraintCreateBall( GetWorld(), pivot, GetChild(), GetParent() );
	}

	void BallAndSocketJoint::SetConeLimits( const Vector3d & rkPin, float fMaxConeAngle, float fMaxTwistAngle )
	{
		float pin[3] = { rkPin.x, rkPin.y, rkPin.z };
		NewtonBallSetConeLimits( m_pkJoint, pin, fMaxConeAngle, fMaxTwistAngle );
	}

	//

	HingeJoint::HingeJoint( const Vector3d &rkPivot, const Vector3d & rkPin ) :
	NeoEngine::HingeJoint( rkPivot, rkPin ),
	Joint()
	{
	}

	void HingeJoint::Attach( NeoEngine::RigidBody * pkParent, NeoEngine::RigidBody * pkChild )
	{
		NeoEngine::HingeJoint::Attach( pkParent, pkChild );
		float pivot[3] = { m_kPivot.x, m_kPivot.y, m_kPivot.z };
		float pin[3] = { m_kPin.x, m_kPin.y, m_kPin.z };
		m_pkJoint = NewtonConstraintCreateHinge( GetWorld(), pivot, pin, GetChild(), GetParent() );
	}

	//

	SliderJoint::SliderJoint( const Vector3d &rkPivot, const Vector3d & rkPin ) :
	NeoEngine::SliderJoint( rkPivot, rkPin ),
	Joint()
	{
	}

	void SliderJoint::Attach( NeoEngine::RigidBody * pkParent, NeoEngine::RigidBody * pkChild )
	{
		NeoEngine::SliderJoint::Attach( pkParent, pkChild );
		float pivot[3] = { m_kPivot.x, m_kPivot.y, m_kPivot.z };
		float pin[3] = { m_kPin.x, m_kPin.y, m_kPin.z };
		m_pkJoint = NewtonConstraintCreateSlider( GetWorld(), pivot, pin, GetChild(), GetParent() );
	}

	//

	CorkscrewJoint::CorkscrewJoint( const Vector3d &rkPivot, const Vector3d & rkPin ) :
	NeoEngine::CorkscrewJoint( rkPivot, rkPin ),
	Joint()
	{
	}

	void CorkscrewJoint::Attach( NeoEngine::RigidBody * pkParent, NeoEngine::RigidBody * pkChild )
	{
		NeoEngine::CorkscrewJoint::Attach( pkParent, pkChild );
		float pivot[3] = { m_kPivot.x, m_kPivot.y, m_kPivot.z };
		float pin[3] = { m_kPin.x, m_kPin.y, m_kPin.z };
		m_pkJoint = NewtonConstraintCreateCorkscrew( GetWorld(), pivot, pin, GetChild(), GetParent() );

	}

}; // end namespace NeoNewton




See more files for this project here

NeoEngineNG

NeoenEngine NG (Next Generation) is the evolution of neoengine one,it\'s a different development from NeoEngine2, it\'s a direct inherits from NeoEngine one.\n

Project homepage: http://sourceforge.net/projects/neoengineng
Programming language(s): C,C++
License: other

  Newton.h
  SConscript
  collisiongeometry.cpp
  collisiongeometry.h
  conversion.cpp
  conversion.h
  device.cpp
  device.h
  glue.cpp
  joint.cpp
  joint.h
  link.h
  neodevnewton.cbp
  neodevnewton.layout
  neodevnewton.vcproj
  physicworld.cpp
  physicworld.h
  rigidbody.cpp
  rigidbody.h
  sound.cpp
  sound.h