Esempio n. 1
0
    public virtual BSPtreeObject CreateSubObject(Vector3 a, Vector3 b, Vector3 c)
    {
        BSPtreeObject subObj = new BSPtreeObject();

        subObj.vertices[0] = vertices[0] * a.x + vertices[1] * a.y + vertices[2] * a.z;
        subObj.vertices[1] = vertices[0] * b.x + vertices[1] * b.y + vertices[2] * b.z;
        subObj.vertices[2] = vertices[0] * c.x + vertices[1] * c.y + vertices[2] * c.z;
        return(subObj);
    }
Esempio n. 2
0
    static public List <BSPtreeObject> CreateBSPtreeObjectWithMesh(List <Mesh> meshes)
    {
        List <BSPtreeObject> objs = new List <BSPtreeObject>();

        foreach (var mesh in meshes)
        {
            int triangleCount = mesh.triangles.Length / 3;
            for (int i = 0; i < triangleCount; ++i)
            {
                var bspObj = new BSPtreeObject();
                int i0     = mesh.triangles[i * 3];
                int i1     = mesh.triangles[i * 3 + 1];
                int i2     = mesh.triangles[i * 3 + 2];
                bspObj.vertices[0] = mesh.vertices[i0];
                bspObj.vertices[1] = mesh.vertices[i1];
                bspObj.vertices[2] = mesh.vertices[i2];
                objs.Add(bspObj);
            }
        }
        return(objs);
    }