// ----------------------------------------------------------------------- public void AssignMesh(int id) { if (id >= 0) { this.mesh_id = id; this.BBOX.CalcFromMesh(this.mesh_id); F3D.Log.info("TF3D_Body", "Assigned mesh = '" + F3D.Meshes.Get(this.mesh_id).name + "'"); this.ReadAssignedSurfaces(); } else { F3D.Log.error( "TF3D_Body", "AssignMesh() : index of assigned MeshName is -1 (Mesh name doesn't exist.)"); } }
// ----------------------------------------------------------------------- public void AssignMesh(String meshname) { int id = F3D.Meshes.FindByName(meshname); if (id >= 0) { this.mesh_id = id; this.BBOX.CalcFromMesh(this.mesh_id); F3D.Log.info("TF3D_Body", "Assigned mesh = '" + name + "'"); this.ReadAssignedSurfaces(); } else { F3D.Log.error( "TF3D_Body", "AssignMesh() : index of assigned MeshName is -1 (Mesh '" + meshname + "' doesn't exist.)"); } }
// ----------------------------------------------------------------------- public void CreateRigidBody(int shapemode, float mass) { this.start_position = (Vector3f) this.GetPosition().clone(); this.start_rotation = (Vector3f) this.GetRotation().clone(); if (!F3D.Config.use_physics) { F3D.Log.error( "TF3D_Body", "You can't create rigidbody when Bullet physics is disabled in Config.use_physics !\n Note: Use TF3D_Model instead TF3D_Body, when you don't use Bullet physics on Model."); } this.PhysicObject = new TF3D_PhysicObject(); Vector3f rescaled = new Vector3f(); rescaled.x = this.BBOX.size.x * this.GetScale().x; rescaled.y = this.BBOX.size.y * this.GetScale().y; rescaled.z = this.BBOX.size.z * this.GetScale().z; this.BBOX.size.set(rescaled); if ((shapemode == F3D.BULLET_SHAPE_CONVEXHULL) | (shapemode == F3D.BULLET_SHAPE_TRIMESH)) { if (this.collision_mesh_id > 0) { this.PhysicObject.Create( shapemode, mass, this.GetPosition(), this.GetRotation(), rescaled, F3D.Meshes.items.get(this.collision_mesh_id)); } else { this.PhysicObject.Create( shapemode, mass, this.GetPosition(), this.GetRotation(), rescaled, F3D.Meshes.items.get(this.mesh_id)); } } else { this.PhysicObject.Create(shapemode, mass, this.GetPosition(), this.GetRotation(), rescaled); } this.PhysicObject.RigidBody.setUserPointer((Object) this); }