public Vector3[] GetPatchCorners(int vertIndex)
        {
            Validate();
            if (m_fbsObj.SamplePatchLength > vertIndex)
            {
                fbs_SamplePatch patch = m_fbsObj.GetSamplePatch(vertIndex);

                AssignVector3(patch.Center, ref m_center);
                AssignVector3(patch.Size, ref m_size);
                AssignVector3(patch.Basis0, ref m_basis0);
                AssignVector3(patch.Basis1, ref m_basis1);

                float xSize = Mathf.Abs(Vector3.Dot(m_basis0, m_size)) * 0.5f;
                float ySize = Mathf.Abs(Vector3.Dot(m_basis1, m_size)) * 0.5f;

                return(new Vector3[] {
                    (m_center - m_basis0 * xSize + m_basis1 * ySize), // TL
                    (m_center + m_basis0 * xSize + m_basis1 * ySize), // TR

                    (m_center + m_basis0 * xSize - m_basis1 * ySize), // BR
                    (m_center - m_basis0 * xSize - m_basis1 * ySize), // BL
                });
            }

            return(null);
        }
        public void GetSamplePatch(int vertIndex, ref SamplePatch sp)
        {
            fbs_SamplePatch patch = m_fbsObj.GetSamplePatch(vertIndex);

            AssignVector3(patch.Center, ref sp.m_center);
            AssignVector3(patch.Size, ref sp.m_size);
            AssignVector3(patch.Basis0, ref sp.m_basis0);
            AssignVector3(patch.Basis1, ref sp.m_basis1);
        }
Exemplo n.º 3
0
        public fbs_SamplePatch GetSamplePatch(fbs_SamplePatch obj, int j)
        {
            int num = base.__offset(8);

            if (num == 0)
            {
                return(null);
            }
            return(obj.__init(base.__indirect(base.__vector(num) + j * 4), base.bb));
        }
Exemplo n.º 4
0
        public void GetSamplePatch(int vertIndex, ref SamplePatch sp)
        {
            fbs_SamplePatch patch = m_fbsObj.GetSamplePatch(vertIndex);

            AssignVector3(patch.Center, ref sp.m_center);
            AssignVector3(patch.Size, ref sp.m_size);
            AssignVector3(patch.Basis0, ref sp.m_basis0);
            AssignVector3(patch.Basis1, ref sp.m_basis1);

            if (patch.Version >= (int)SamplePatch.Version.kSamplePatchV1)
            {
                sp.m_faces = new List <int>(patch.FacesLength);
                for (int i = 0; i < patch.FacesLength; ++i)
                {
                    sp.m_faces.Add(System.Convert.ToInt32(patch.GetFaces(i)));
                }
            }
            else
            {
                sp.m_faces = new List <int>();
            }
        }
Exemplo n.º 5
0
 public static fbs_SamplePatch GetRootAsfbs_SamplePatch(ByteBuffer _bb, fbs_SamplePatch obj)
 {
     return(obj.__init(_bb.GetInt(_bb.Position) + _bb.Position, _bb));
 }