ScummVM API documentation
CollideShapeNewton.h
1 /* ScummVM - Graphic Adventure Engine
2  *
3  * ScummVM is the legal property of its developers, whose names
4  * are too numerous to list here. Please refer to the COPYRIGHT
5  * file distributed with this source distribution.
6  *
7  * This program is free software: you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation, either version 3 of the License, or
10  * (at your option) any later version.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program. If not, see <http://www.gnu.org/licenses/>.
19  *
20  */
21 
22 /*
23  * Copyright (C) 2006-2010 - Frictional Games
24  *
25  * This file is part of HPL1 Engine.
26  */
27 
28 #ifndef HPL_COLLIDE_SHAPE_NEWTON_H
29 #define HPL_COLLIDE_SHAPE_NEWTON_H
30 
31 #include "hpl1/engine/libraries/newton/Newton.h"
32 #include "hpl1/engine/physics/CollideShape.h"
33 
34 #include "hpl1/engine/math/MathTypes.h"
35 
36 namespace hpl {
37 
38 class iVertexBuffer;
39 class iCollideShape;
40 
41 typedef Common::Array<iCollideShape *> tCollideShapeVec;
42 typedef tCollideShapeVec::iterator tCollideShapeVecIt;
43 
45 public:
46  cCollideShapeNewton(eCollideShapeType aType, const cVector3f &avSize,
47  cMatrixf *apOffsetMtx, NewtonWorld *apNewtonWorld,
48  iPhysicsWorld *apWorld);
50 
51  iCollideShape *GetSubShape(int alIdx);
52  int GetSubShapeNum();
53 
54  cVector3f GetInertia(float afMass);
55 
56  void CreateFromShapeVec(tCollideShapeVec &avShapes);
57  void CreateFromVertices(const unsigned int *apIndexArray, int alIndexNum,
58  const float *apVertexArray, int alVtxStride, int alVtxNum);
59 
60  NewtonCollision *GetNewtonCollision() { return mpNewtonCollision; }
61 
62 private:
63  NewtonCollision *mpNewtonCollision;
64  NewtonWorld *mpNewtonWorld;
65 
66  tCollideShapeVec mvSubShapes;
67 };
68 
69 } // namespace hpl
70 
71 #endif // HPL_COLLIDE_SHAPE_NEWTON_H
Definition: AI.h:36
Definition: PhysicsWorld.h:115
T * iterator
Definition: array.h:54
Definition: CollideShape.h:50
Definition: CollideShapeNewton.h:44