public void setPhysMesh(Shape newShape) { RigidBody newBody = new RigidBody(newShape); newBody.Position = GenericMethods.FromOpenTKVector(Position); newBody.Mass = 20f; newBody.Tag = this; newBody.Orientation = GenericMethods.FromOpenTKMatrix(Orientation); Body = newBody; Scene.world.AddBody(newBody); }
protected override void rotate() { if (gameInput.keyboard[Key.Q]) { if (selectedMod != null && mConst == null) { JMatrix rotMatA = JMatrix.CreateRotationY(gameInput.move.X * cameraRotSpeed); JMatrix rotMatB = GenericMethods.FromOpenTKMatrix(Matrix4.CreateFromAxisAngle(-Parent.rightVec, gameInput.move.Y * cameraRotSpeed)); JMatrix rotMatFinal = JMatrix.Multiply(rotMatA, rotMatB); selectedBody.Orientation = JMatrix.Multiply(selectedBody.Orientation, rotMatFinal); } } else { base.rotate(); } }