// This source file is part of HGamer3D // (A project to enable 3D game development in Haskell) // For the latest info, see http://www.althainz.de/HGamer3D.html // // (c) 2011, 2012 Peter Althainz // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // // ClassRigidBody.h // #include "wchar.h" #ifndef _DEFINED_HG3D_ClassRigidBody #define _DEFINED_HG3D_ClassRigidBody #include "ClassPtr.h" #include "StructVec3.h" #include "StructQuaternion.h" #include "ClassMotionState.h" // void bt_rgdbd_destruct(struct hg3dclass_struct * thisclass_c); // void bt_rgdbd_saveKinematicState(struct hg3dclass_struct * thisclass_c, float step_c); // void bt_rgdbd_applyGravity(struct hg3dclass_struct * thisclass_c); // void bt_rgdbd_setGravity(struct hg3dclass_struct * thisclass_c, struct vector3_struct * acceleration_c); // void bt_rgdbd_getGravity(struct hg3dclass_struct * thisclass_c, struct vector3_struct * result_c); // void bt_rgdbd_setDamping(struct hg3dclass_struct * thisclass_c, float lin_damping_c, float ang_damping_c); // void bt_rgdbd_getLinearDamping(struct hg3dclass_struct * thisclass_c, float * result_c); // void bt_rgdbd_getAngularDamping(struct hg3dclass_struct * thisclass_c, float * result_c); // void bt_rgdbd_getLinearSleepingThreshold(struct hg3dclass_struct * thisclass_c, float * result_c); // void bt_rgdbd_getAngularSleepingThreshold(struct hg3dclass_struct * thisclass_c, float * result_c); // void bt_rgdbd_applyDamping(struct hg3dclass_struct * thisclass_c, float timeStep_c); // void bt_rgdbd_setMassProps(struct hg3dclass_struct * thisclass_c, float mass_c, struct vector3_struct * inertia_c); // void bt_rgdbd_getLinearFactor(struct hg3dclass_struct * thisclass_c, struct vector3_struct * result_c); // void bt_rgdbd_setLinearFactor(struct hg3dclass_struct * thisclass_c, struct vector3_struct * linearFactor_c); // void bt_rgdbd_getInvMass(struct hg3dclass_struct * thisclass_c, float * result_c); // void bt_rgdbd_integrateVelocities(struct hg3dclass_struct * thisclass_c, float step_c); // void bt_rgdbd_applyCentralForce(struct hg3dclass_struct * thisclass_c, struct vector3_struct * force_c); // void bt_rgdbd_getTotalForce(struct hg3dclass_struct * thisclass_c, struct vector3_struct * result_c); // void bt_rgdbd_getTotalTorque(struct hg3dclass_struct * thisclass_c, struct vector3_struct * result_c); // void bt_rgdbd_getInvInertiaDiagLocal(struct hg3dclass_struct * thisclass_c, struct vector3_struct * result_c); // void bt_rgdbd_setInvInertiaDiagLocal(struct hg3dclass_struct * thisclass_c, struct vector3_struct * diagInvInertia_c); // void bt_rgdbd_setSleepingThresholds(struct hg3dclass_struct * thisclass_c, float linear_c, float angular_c); // void bt_rgdbd_applyTorque(struct hg3dclass_struct * thisclass_c, struct vector3_struct * torque_c); // void bt_rgdbd_applyForce(struct hg3dclass_struct * thisclass_c, struct vector3_struct * force_c, struct vector3_struct * rel_pos_c); // void bt_rgdbd_applyCentralImpulse(struct hg3dclass_struct * thisclass_c, struct vector3_struct * impulse_c); // void bt_rgdbd_applyTorqueImpulse(struct hg3dclass_struct * thisclass_c, struct vector3_struct * torque_c); // void bt_rgdbd_applyImpulse(struct hg3dclass_struct * thisclass_c, struct vector3_struct * impulse_c, struct vector3_struct * rel_pos_c); // void bt_rgdbd_clearForces(struct hg3dclass_struct * thisclass_c); // void bt_rgdbd_updateInertiaTensor(struct hg3dclass_struct * thisclass_c); // void bt_rgdbd_getCenterOfMassPosition(struct hg3dclass_struct * thisclass_c, struct vector3_struct * result_c); // void bt_rgdbd_getOrientation(struct hg3dclass_struct * thisclass_c, struct quaternion_struct * result_c); // void bt_rgdbd_getLinearVelocity(struct hg3dclass_struct * thisclass_c, struct vector3_struct * result_c); // void bt_rgdbd_getAngularVelocity(struct hg3dclass_struct * thisclass_c, struct vector3_struct * result_c); // void bt_rgdbd_setLinearVelocity(struct hg3dclass_struct * thisclass_c, struct vector3_struct * lin_vel_c); // void bt_rgdbd_setAngularVelocity(struct hg3dclass_struct * thisclass_c, struct vector3_struct * ang_vel_c); // void bt_rgdbd_getVelocityInLocalPoint(struct hg3dclass_struct * thisclass_c, struct vector3_struct * rel_pos_c, struct vector3_struct * result_c); // void bt_rgdbd_translate(struct hg3dclass_struct * thisclass_c, struct vector3_struct * v_c); // void bt_rgdbd_getAabb(struct hg3dclass_struct * thisclass_c, struct vector3_struct * aabbMin_c, struct vector3_struct * aabbMax_c); // void bt_rgdbd_getMotionState(struct hg3dclass_struct * thisclass_c, struct hg3dclass_struct * result_c); // void bt_rgdbd_getMotionState2(struct hg3dclass_struct * thisclass_c, struct hg3dclass_struct * result_c); // void bt_rgdbd_setMotionState(struct hg3dclass_struct * thisclass_c, struct hg3dclass_struct * motionState_c); // void bt_rgdbd_setAngularFactor(struct hg3dclass_struct * thisclass_c, struct vector3_struct * angFac_c); // void bt_rgdbd_setAngularFactor2(struct hg3dclass_struct * thisclass_c, float angFac_c); // void bt_rgdbd_getAngularFactor(struct hg3dclass_struct * thisclass_c, struct vector3_struct * result_c); // void bt_rgdbd_isInWorld(struct hg3dclass_struct * thisclass_c, int * result_c); // void bt_rgdbd_getNumConstraintRefs(struct hg3dclass_struct * thisclass_c, int * result_c); // void bt_rgdbd_setFlags(struct hg3dclass_struct * thisclass_c, int flags_c); // void bt_rgdbd_getFlags(struct hg3dclass_struct * thisclass_c, int * result_c); // void bt_rgdbd_computeGyroscopicForce(struct hg3dclass_struct * thisclass_c, float maxGyroscopicForce_c, struct vector3_struct * result_c); // void bt_rgdbd_calculateSerializeBufferSize(struct hg3dclass_struct * thisclass_c, int * result_c); #endif