internal static W3xMesh Parse(BinaryReader reader, AssetImportCollection imports, AssetEntry header) { var result = new W3xMesh { VertexData = reader.ReadAtOffset(() => W3xMeshVertexData.Parse(reader, header)), GeometryType = reader.ReadUInt32AsEnum <MeshGeometryType>(), BoundingBox = new AxisAlignedBoundingBox(reader.ReadVector3(), reader.ReadVector3()) }; var sphereRadius = reader.ReadSingle(); var sphereCenter = reader.ReadVector3(); result.BoundingSphere = new BoundingSphere(sphereCenter, sphereRadius); result.Triangles = reader.ReadArrayAtOffset(() => W3xTriangle.Parse(reader)); result.FXShader = FXShaderMaterial.Parse(reader, imports); result.AabTree = reader.ReadAtOffset(() => W3xAabTree.Parse(reader)); result.Hidden = reader.ReadBooleanChecked(); result.CastShadow = reader.ReadBooleanChecked(); result.SortLevel = reader.ReadByte(); return(result); }
internal static W3xAabTree Parse(BinaryReader reader) { var result = new W3xAabTree(); result.PolyIndices = reader.ReadArrayAtOffset(() => reader.ReadUInt32()); result.Nodes = reader.ReadArrayAtOffset(() => Node.Parse(reader)); return(result); }