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); }
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)); }
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>(); } }
public static fbs_SamplePatch GetRootAsfbs_SamplePatch(ByteBuffer _bb, fbs_SamplePatch obj) { return(obj.__init(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); }