public void RotateZAroundPoint(TV_3DVECTOR point, float angle) { TVMesh node = Scene.CreateMeshBuilder(); node.SetPosition(point.x, point.y, point.z); mesh.AttachTo(CONST_TV_NODETYPE.TV_NODETYPE_MESH, node.GetIndex(), -1); TV_3DVECTOR nodePos = node.GetPosition(); TV_3DMATRIX mat = new TV_3DMATRIX(); TV_3DMATRIX modyMat = node.GetMatrix(); MathLibrary.TVMatrixRotationZ(ref mat, angle); node.SetRotationMatrix(mat); mesh.AttachTo(CONST_TV_NODETYPE.TV_NODETYPE_NONE, -1, -1); node.Destroy(); mat = mesh.GetMatrix(); Physics.SetBodyMatrix(PhysicsId, mat); }