public BEPUphysics.ISpaceObject CreateCollision(JMapObjectData block) { BEPUphysics.ISpaceObject collision = null; if (block.colliderTypes == 0) { BEPUphysics.EntityStateManagement.MotionState ms = new BEPUphysics.EntityStateManagement.MotionState(); ms.Position = new BEPUutilities.Vector3(block.mapPos.x, block.mapPos.y, block.mapPos.z); ms.Orientation = new BEPUutilities.Quaternion(block.mapRot.x, block.mapRot.y, block.mapRot.z, block.mapRot.w); collision = new Box(ms, block.mapScale.x, 1f, block.mapScale.y); } else { var vertices = new BEPUutilities.Vector3[block.meshColliderVertices.Length]; int[] indices = new int[block.meshColliderIndices.Length]; for (int i = 0; i < vertices.Length; ++i) { vertices[i] = new BEPUutilities.Vector3(block.meshColliderVertices[i].x, block.meshColliderVertices[i].y, block.meshColliderVertices[i].z); } for (int i = 0; i < indices.Length; ++i) { indices[i] = block.meshColliderIndices[i]; } var Position = new BEPUutilities.Vector3(block.mapPos.x, block.mapPos.y, block.mapPos.z); var Orientation = new BEPUutilities.Quaternion(block.mapRot.x, block.mapRot.y, block.mapRot.z, block.mapRot.w); var staticMesh = new BEPUphysics.BroadPhaseEntries.StaticMesh(vertices, indices, new BEPUutilities.AffineTransform(new BEPUutilities.Vector3(0.1f, 0.1f, 0.1f), Orientation, Position)); //staticMesh.Sidedness = BEPUutilities.TriangleSidedness.DoubleSided; collision = staticMesh; } space.Add(collision); return(collision); }
public GameObjectReference(string cellContainerId, string baseObjectId) { this.cellContainerId = cellContainerId; this.baseObjectId = baseObjectId; isOn = true; pos = Vector3.Zero; rotation = Matrix.Identity; rotationValues = Vector3.Zero; scale = new Vector3(1, 1, 1); physicsObj = null; entityTransform = Matrix.Identity; target = new Vector3(0, 0, 0); endPoint = new Vector3(-10, 3, 10); _lerpInc = 0.2f; color = new Vector3(1, 1, 1); intensity = 1; maxRange = 30; }