[nobuild] physics component + wiBullet update

This commit is contained in:
turanszkij
2018-08-24 20:18:20 +01:00
parent 3e922c4903
commit 33cb5e41b4
4 changed files with 420 additions and 600 deletions
+410 -563
View File
File diff suppressed because it is too large Load Diff
+1 -15
View File
@@ -15,21 +15,7 @@ public:
wiBULLET();
~wiBULLET();
virtual void addWind(const XMFLOAT3& wind) override;
virtual void addBox(const XMFLOAT3& sca, const XMFLOAT4& rot, const XMFLOAT3& pos
, float newMass, float newFriction, float newRestitution, float newDamping, bool kinematic) override;
virtual void addSphere(float rad, const XMFLOAT3& pos
, float newMass, float newFriction, float newRestitution, float newDamping, bool kinematic) override;
virtual void addCapsule(float rad, float hei, const XMFLOAT4& rot, const XMFLOAT3& pos
, float newMass, float newFriction, float newRestitution, float newDamping, bool kinematic) override;
virtual void addConvexHull(const std::vector<XMFLOAT4>& vertices, const XMFLOAT3& sca, const XMFLOAT4& rot, const XMFLOAT3& pos
, float newMass, float newFriction, float newRestitution, float newDamping, bool kinematic) override;
virtual void addTriangleMesh(const std::vector<XMFLOAT4>& vertices, const std::vector<unsigned int>& indices, const XMFLOAT3& sca, const XMFLOAT4& rot, const XMFLOAT3& pos
, float newMass, float newFriction, float newRestitution, float newDamping, bool kinematic) override;
virtual void addSoftBodyTriangleMesh(wiSceneSystem::PhysicsComponent& physicscomponent) override;
virtual void setWind(const XMFLOAT3& wind) override;
virtual void connectVerticesToSoftBody(wiSceneSystem::PhysicsComponent& physicscomponent) override;
virtual void connectSoftBodyToVertices(wiSceneSystem::PhysicsComponent& physicscomponent) override;
+1 -15
View File
@@ -34,21 +34,7 @@ public:
virtual void ClearWorld()=0;
virtual void CleanUp()=0;
virtual void addWind(const XMFLOAT3& wind)=0;
virtual void addBox(const XMFLOAT3& sca, const XMFLOAT4& rot, const XMFLOAT3& pos
, float newMass=1, float newFriction=1, float newRestitution=1, float newDamping=1, bool kinematic=false)=0;
virtual void addSphere(float rad, const XMFLOAT3& pos
, float newMass=1, float newFriction=1, float newRestitution=1, float newDamping=1, bool kinematic=false)=0;
virtual void addCapsule(float rad, float hei, const XMFLOAT4& rot, const XMFLOAT3& pos
, float newMass=1, float newFriction=1, float newRestitution=1, float newDamping=1, bool kinematic=false)=0;
virtual void addConvexHull(const std::vector<XMFLOAT4>& vertices, const XMFLOAT3& sca, const XMFLOAT4& rot, const XMFLOAT3& pos
, float newMass=1, float newFriction=1, float newRestitution=1, float newDamping=1, bool kinematic=false)=0;
virtual void addTriangleMesh(const std::vector<XMFLOAT4>& vertices, const std::vector<unsigned int>& indices, const XMFLOAT3& sca, const XMFLOAT4& rot, const XMFLOAT3& pos
, float newMass=1, float newFriction=1, float newRestitution=1, float newDamping=1, bool kinematic=false)=0;
virtual void addSoftBodyTriangleMesh(wiSceneSystem::PhysicsComponent& physicscomponent)=0;
virtual void setWind(const XMFLOAT3& wind)=0;
virtual void connectVerticesToSoftBody(wiSceneSystem::PhysicsComponent& physicscomponent)=0;
virtual void connectSoftBodyToVertices(wiSceneSystem::PhysicsComponent& physicscomponent)=0;
+8 -7
View File
@@ -248,9 +248,6 @@ namespace wiSceneSystem
std::vector<Vertex_POS> vertices_Transformed_POS; // for soft body simulation
std::vector<Vertex_POS> vertices_Transformed_PRE; // for soft body simulation
std::vector<uint32_t> indices;
std::vector<XMFLOAT3> physicsverts;
std::vector<uint32_t> physicsindices;
std::vector<int> physicalmapGP;
struct MeshSubset
{
@@ -302,10 +299,6 @@ namespace wiSceneSystem
};
std::vector<VertexGroup> vertexGroups;
bool softBody;
float mass, friction;
int massVG, goalVG, softVG; //vertexGroupID
std::vector<XMFLOAT3> goalPositions, goalNormals;
wiRenderTarget impostorTarget;
float impostorDistance;
@@ -343,6 +336,14 @@ namespace wiSceneSystem
bool rigidBody, kinematic;
std::string collisionShape, physicsType;
float mass, friction, restitution, damping;
bool softBody;
int massVG, goalVG, softVG; //vertexGroupID
std::vector<XMFLOAT3> goalPositions, goalNormals;
std::vector<XMFLOAT3> physicsverts;
std::vector<uint32_t> physicsindices;
std::vector<int> physicalmapGP;
};
struct Bone