public void Set(dualLine a) { m_c[0] = a.m_c[0]; m_c[1] = a.m_c[1]; m_c[2] = a.m_c[2]; m_c[3] = a.m_c[3]; m_c[4] = a.m_c[4]; m_c[5] = a.m_c[5]; }
/// <summary>sets this to dualLine value. /// </summary> public void Set(dualLine src) { AllocateGroups(GroupBitmap.GROUP_2); float[] ptr; ptr = m_c[2]; ptr[0] = ptr[1] = ptr[3] = ptr[6] = 0.0f; ptr[2] = src.m_c[0]; ptr[4] = src.m_c[1]; ptr[5] = src.m_c[2]; ptr[7] = src.m_c[3]; ptr[8] = src.m_c[4]; ptr[9] = src.m_c[5]; }
/// <summary> /// Converts a dualLine to a mv. /// </summary> public mv(dualLine A) { Set(A); }
/// <summary> /// Copy constructor. /// </summary> public dualLine(dualLine A) { Set(A); }
/// <summary>Returns left contraction of dualLine and plane. /// </summary> public static flatPoint lc(dualLine a, plane b) { return new flatPoint(flatPoint.coord_e1ni_e2ni_e3ni_noni, (-a.m_c[2]*b.m_c[0]+a.m_c[4]*b.m_c[3]+a.m_c[5]*b.m_c[2]), // e1_ni (a.m_c[1]*b.m_c[0]-a.m_c[3]*b.m_c[3]+a.m_c[5]*b.m_c[1]), // e2_ni (-a.m_c[0]*b.m_c[0]-a.m_c[3]*b.m_c[2]-a.m_c[4]*b.m_c[1]), // e3_ni (-a.m_c[0]*b.m_c[3]-a.m_c[1]*b.m_c[2]-a.m_c[2]*b.m_c[1]) // no_ni ); }