public void SetRoomTransform(WRoomTransform roomTransform) { List <J3DNode> m_roomModelNodes = GetChildrenOfType <J3DNode>(); RoomTransform = roomTransform; foreach (J3DNode j3d_node in m_roomModelNodes) { j3d_node.Transform.Position = new Vector3(RoomTransform.Translation.X, 0, RoomTransform.Translation.Y); j3d_node.Transform.LocalRotation = Quaterniond.FromAxisAngle(Vector3d.UnitY, WMath.DegreesToRadians(RoomTransform.YRotation)); } }
public List <WRoomTransform> GetRoomTransformTable() { List <WRoomTransform> roomTransforms = new List <WRoomTransform>(); int multIndex = m_chunkList.FindIndex(x => x.FourCC == FourCC.MULT); if (multIndex >= 0) { ChunkHeader rtbl = m_chunkList[multIndex]; m_reader.BaseStream.Position = rtbl.ChunkOffset; for (int i = 0; i < rtbl.ElementCount; i++) { WRoomTransform roomTransform = new WRoomTransform(new Vector2(m_reader.ReadSingle(), m_reader.ReadSingle()), WMath.RotationShortToFloat(m_reader.ReadInt16()), m_reader.ReadByte(), m_reader.ReadByte()); roomTransforms.Add(roomTransform); } } return(roomTransforms); }