Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
Elmaron
unregistriert
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Elmaron« (06.02.2023, 00:35)
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
//Global-Callback inline void SetGlobalCollisionCallback(ogpCollisionCallback* pGCC) {m_pGlobalCollisionCallback = pGCC;} inline void UnsetGlobalCollisionCallback() {m_pGlobalCollisionCallback = NULL;} inline void SetCreationCallback(ogpCreationCallback* pCC) {m_pCreationCallback = pCC;} inline void UnsetCreationCallback() {m_pCreationCallback = NULL;} inline void SetIDGeneratorCallback(ogpIDGenerator* pIDG) {m_pIDGeneratorCallback = pIDG;} inline void UnsetIDGeneratorCallback() {m_pIDGeneratorCallback = NULL;} //Setzt die Gravitation inline void SetGravitation(const og3DVector& vGravitation) { m_vGravitation = vGravitation; //Gravitation außerdem für KollisionsAuflösung setzen ogpCollisionResponse::Instance().SetGravitation(vGravitation, m_fCurrentTimeStep); } //Globale Kräfte inline const void SetGlobalForce(const ogpGlobalForce& GlobalForce) { m_aGlobalForces[m_iGlobalForcesCount++] = GlobalForce; } /** * adds a joint to the constraint-solver */ inline void addJointToSolver(ogpJoint* pJoint) { pJoint->addJointToSolver(ogpCollisionResponse::Instance().getSolver()); } /** * This method registers a single object. In this case it has to be convex. In fact it returns * a ogpConvexPolytope instance. The geometry data is take out of the vertexbuffer pvPos and the * corresponding indexbuffer pwIndices. * NOTE: This method modifies the pvPos array! First the center of mass of the polytope is * computed and afterwards all positions are updated such that the center of mass lies in * the origin of the body coord system */ ogpConvexPolytope* RegisterObject(og3DVector* pvPos, const WORD* pwIndices, const UINT iIndexCount, const og3DVector& vInitPosition, const ogMatrix& mInitRotation, const og3DVector& vInitVelocity = og3DVector(0.f), const og3DVector& vInitAngularMomentum = og3DVector(0.f)); /** * This method registers a void composed object. Means after this registration, the container is empty. * Afterwards convex shapes may be added to this one! * initial state is taken from it's parts (which are added later on!) */ ogpComposedBody* RegisterComposedBody(); /** * Adds a convex polytope to a composed body and removes the polytope from * the "normal" object-list. Because every physical aspect is now treaten by * the composed one */ void addPolytopeToComposedBody(const UINT iComposedBodyID, const UINT iPolytopeID); /** * deletes a convex polytope as part of a composed object (there is not much left to do!) * ATTENTION: The object is deleted, not only removed from the composite! */ const bool deleteComposedPart(const UINT iID); const bool UnregisterObject(ogpRigidBody* pObjectToDelete); const bool UnregisterAllObjects(); //Simulation const bool DoSimulation(const float dt, const bool bDoCollisionResponse = true); |
Werbeanzeige