| @@ -44,11 +44,24 @@ public: | |||||
| MeshRand << "[sc#ada afcb2 2 2 -.1]"; | MeshRand << "[sc#ada afcb2 2 2 -.1]"; | ||||
| MeshRand << "[sc#aad afcb2 2 2 -.1]"; | MeshRand << "[sc#aad afcb2 2 2 -.1]"; | ||||
| int SphereLimit = MeshRand.Count(); | |||||
| MeshRand << "[sc#add asph16 2 2 2]"; | |||||
| MeshRand << "[sc#dad asph16 2 2 2]"; | |||||
| MeshRand << "[sc#dda asph16 2 2 2]"; | |||||
| MeshRand << "[sc#daa asph16 2 2 2]"; | |||||
| MeshRand << "[sc#ada asph16 2 2 2]"; | |||||
| MeshRand << "[sc#aad asph16 2 2 2]"; | |||||
| int RandValue = (int)(lol::RandF() * (MeshRand.Count() - 1)); | int RandValue = (int)(lol::RandF() * (MeshRand.Count() - 1)); | ||||
| m_mesh.Compile(MeshRand[RandValue]); | m_mesh.Compile(MeshRand[RandValue]); | ||||
| vec3 BoxSize = vec3(2.0f); | vec3 BoxSize = vec3(2.0f); | ||||
| m_physics.SetShapeToBox(BoxSize); | |||||
| if (RandValue >= SphereLimit) | |||||
| m_physics.SetShapeToSphere(BoxSize.x); | |||||
| else | |||||
| m_physics.SetShapeToBox(BoxSize); | |||||
| m_physics.SetMass(base_mass); | m_physics.SetMass(base_mass); | ||||
| m_physics.SetBaseTransform(base_location); | m_physics.SetBaseTransform(base_location); | ||||
| m_physics.InitBodyToRigid(); | m_physics.InitBodyToRigid(); | ||||
| @@ -68,10 +68,10 @@ void EasyPhysics::SetShapeToBox(lol::vec3& box_size) | |||||
| SetShapeTo(new btBoxShape(LOL2BT_VEC3(new_box_size))); | SetShapeTo(new btBoxShape(LOL2BT_VEC3(new_box_size))); | ||||
| } | } | ||||
| //void EasyPhysics::SetShapeToSphere(lol::vec3& box_size) | |||||
| //{ | |||||
| // SetShapeTo(new btBoxShape(LOL2BT_VEC3(box_size * LOL2BT_UNIT * LOL2BT_SIZE))); | |||||
| //} | |||||
| void EasyPhysics::SetShapeToSphere(float radius) | |||||
| { | |||||
| SetShapeTo(new btSphereShape(radius * LOL2BT_UNIT * LOL2BT_SIZE)); | |||||
| } | |||||
| //------------------------------------------------------------------------- | //------------------------------------------------------------------------- | ||||
| //Base Location/Rotation setup | //Base Location/Rotation setup | ||||
| @@ -36,6 +36,7 @@ public: | |||||
| EasyPhysics(); | EasyPhysics(); | ||||
| void SetShapeToBox(lol::vec3& box_size); | void SetShapeToBox(lol::vec3& box_size); | ||||
| void SetShapeToSphere(float radius); | |||||
| void SetBaseTransform(const lol::vec3& base_location, const lol::quat& base_rotation=lol::quat(lol::mat4(1.0f))); | void SetBaseTransform(const lol::vec3& base_location, const lol::quat& base_rotation=lol::quat(lol::mat4(1.0f))); | ||||
| void SetMass(float mass); | void SetMass(float mass); | ||||
| void InitBodyToRigid(); | void InitBodyToRigid(); | ||||