public void Initialise() { m_ray = Vector3.Zero; m_nfree = 0; m_status = GJKStatus.Failed; m_current = 0; m_distance = 0f; for (int i = 0; i < m_simplices.Length; ++i) { m_simplices[i] = new sSimplex(); } for (int i = 0; i < m_store.Length; ++i) { m_store[i] = new sSV(); } // Free is a list of pointers/references so doesn't need objects. //for (int i = 0; i < m_free.Length; ++i) //{ // m_free[i] = new sSV(); //} }
public void Initialize() { m_status = eStatus.Failed; m_normal = Vector3.Zero; m_depth = 0; m_nextsv = 0; m_result = new sSimplex(); for (int i = 0; i < m_sv_store.Length; ++i) { m_sv_store[i] = new sSV(); } for (int i = 0; i < m_fc_store.Length; ++i) { m_fc_store[i] = new sFace(); } for (int i = 0; i < GjkEpaSolver2.EPA_MAX_FACES; ++i) { Append(m_stock, m_fc_store[GjkEpaSolver2.EPA_MAX_FACES - i - 1]); } }
public void AppendVertice(sSimplex simplex,ref Vector3 v) { simplex.p[simplex.rank]=0; simplex.c[simplex.rank]=m_free[--m_nfree]; GetSupport(ref v,ref simplex.c[simplex.rank++]); }
public void RemoveVertice(sSimplex simplex) { m_free[m_nfree++]=simplex.c[--simplex.rank]; }