Exemple #1
0
        private void DumpEntry3(Coct.Collision face, int indent)
        {
            var dump = ObjDumpUtil.FormatObj(face
                                             , it => it.BoundingBox
                                             , it => it.Plane
                                             , it => it.v00
                                             )
                       .Add(
                "SurfaceFlags",
                face.SurfaceFlags.Flags.ToString("X8")
                )
                       .Add(
                "Vertices",
                string.Join(
                    ", ",
                    new int[] {
                face.Vertex1,
                face.Vertex2,
                face.Vertex3,
                face.Vertex4,
            }
                    .Where(it => it != -1)
                    .Select(it => coct.VertexList[it])
                    )
                );

            writer.WriteLine($"{new string(' ', indent)}{dump}");
        }
Exemple #2
0
        private void DumpEntry1(int index, int indent)
        {
            if (index == -1)
            {
                return;
            }

            var entry = coct.CollisionMeshGroupList[index];

            writer.WriteLine($"{new string(' ', indent)}{ObjDumpUtil.FormatObj(entry, it => it.BoundingBox)}");

            foreach (var mesh in entry.Meshes)
            {
                DumpEntry2(mesh, indent + 1);
            }

            DumpEntry1(entry.Child1, indent + 1);
            DumpEntry1(entry.Child2, indent + 1);
            DumpEntry1(entry.Child3, indent + 1);
            DumpEntry1(entry.Child4, indent + 1);
            DumpEntry1(entry.Child5, indent + 1);
            DumpEntry1(entry.Child6, indent + 1);
            DumpEntry1(entry.Child7, indent + 1);
            DumpEntry1(entry.Child8, indent + 1);
        }
Exemple #3
0
        private void DumpNode(int index, int indent)
        {
            if (index == -1)
            {
                return;
            }

            var node = coct.Nodes[index];

            writer.WriteLine($"{new string(' ', indent)}{ObjDumpUtil.FormatObj(node, it => it.BoundingBox)}");

            foreach (var mesh in node.Meshes)
            {
                DumpMeshInfo(mesh, indent + 1);
            }

            DumpNode(node.Child1, indent + 1);
            DumpNode(node.Child2, indent + 1);
            DumpNode(node.Child3, indent + 1);
            DumpNode(node.Child4, indent + 1);
            DumpNode(node.Child5, indent + 1);
            DumpNode(node.Child6, indent + 1);
            DumpNode(node.Child7, indent + 1);
            DumpNode(node.Child8, indent + 1);
        }
Exemple #4
0
        private void DumpEntry2(Coct.CollisionMesh mesh, int indent)
        {
            writer.WriteLine($"{new string(' ', indent)}{ObjDumpUtil.FormatObj(mesh, it => it.BoundingBox, it => it.v10, it => it.v12)}");

            foreach (var face in mesh.Collisions)
            {
                DumpEntry3(face, indent + 1);
            }
        }
Exemple #5
0
        private void DumpMeshInfo(Coct.CollisionMesh mesh, int indent)
        {
            writer.WriteLine($"{new string(' ', indent)}{ObjDumpUtil.FormatObj(mesh, it => it.BoundingBox, it => it.Visibility, it => it.Group)}");

            foreach (var face in mesh.Collisions)
            {
                DumpFace(face, indent + 1);
            }
        }