Exemple #1
0
        int patchIndex;         // Patch Index
        #endregion

        public Q3BSPFace(
            int texture,
            int effect,
            Q3BSPFaceType facetype,
            int vertex,
            int vertices,
            int meshvertex,
            int meshvertices,
            int lightmap,
            int lmX,
            int lmY,
            int lmWidth,
            int lmHeight,
            Vector3 lmOrigin,
            Vector3 lmSVec,
            Vector3 lmTVec,
            Vector3 normal,
            int patchW,
            int patchH)
        {
            textureIndex    = texture;
            effectIndex     = effect;
            faceType        = facetype;
            startVertex     = vertex;
            vertexCount     = vertices;
            startMeshVertex = meshvertex;
            meshVertexCount = meshvertices;
            lightMapIndex   = lightmap;
            lm_startX       = lmX;
            lm_startY       = lmY;
            lm_width        = lmWidth;
            lm_height       = lmHeight;
            lm_origin       = lmOrigin;
            lm_sVec         = lmSVec;
            lm_tVec         = lmTVec;
            faceNormal      = normal;
            patchWidth      = patchW;
            patchHeight     = patchH;

            patchIndex = -1;
        }
Exemple #2
0
        public static Q3BSPFace FromStream(BinaryReader br)
        {
            int           texture     = br.ReadInt32();
            int           effect      = br.ReadInt32();
            Q3BSPFaceType type        = (Q3BSPFaceType)br.ReadInt32();
            int           vertex      = br.ReadInt32();
            int           n_vertices  = br.ReadInt32();
            int           meshvert    = br.ReadInt32();
            int           n_meshverts = br.ReadInt32();
            int           lm_index    = br.ReadInt32();

            int[] lm_start = new int[2];
            lm_start[0] = br.ReadInt32();
            lm_start[1] = br.ReadInt32();

            int[] lm_size = new int[2];
            lm_size[0] = br.ReadInt32();
            lm_size[1] = br.ReadInt32();

            Vector3 lm_origin = new Vector3();

            lm_origin.X = br.ReadSingle();
            lm_origin.Y = br.ReadSingle();
            lm_origin.Z = br.ReadSingle();

            float[] lm_vecs = new float[6];
            lm_vecs[0] = br.ReadSingle();
            lm_vecs[1] = br.ReadSingle();
            lm_vecs[2] = br.ReadSingle();
            lm_vecs[3] = br.ReadSingle();
            lm_vecs[4] = br.ReadSingle();
            lm_vecs[5] = br.ReadSingle();

            Vector3 normal = new Vector3();

            normal.X = br.ReadSingle();
            normal.Z = -br.ReadSingle();
            normal.Y = br.ReadSingle();

            int[] size = new int[2];
            size[0] = br.ReadInt32();
            size[1] = br.ReadInt32();

            return(new Q3BSPFace(
                       texture,
                       effect,
                       type,
                       vertex,
                       n_vertices,
                       meshvert,
                       n_meshverts,
                       lm_index,
                       lm_start[0],
                       lm_start[1],
                       lm_size[0],
                       lm_size[1],
                       lm_origin,
                       new Vector3(lm_vecs[0], lm_vecs[1], lm_vecs[2]),
                       new Vector3(lm_vecs[3], lm_vecs[4], lm_vecs[5]),
                       normal,
                       size[0],
                       size[1]));
        }