public void Set(pointPair 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]; m_c[6] = a.m_c[6]; m_c[7] = a.m_c[7]; m_c[8] = a.m_c[8]; m_c[9] = a.m_c[9]; }
/// <summary>sets this to pointPair value. /// </summary> public void Set(pointPair src) { AllocateGroups(GroupBitmap.GROUP_2); float[] ptr; ptr = m_c[2]; ptr[0] = src.m_c[0]; ptr[1] = src.m_c[1]; ptr[2] = src.m_c[2]; ptr[3] = src.m_c[3]; ptr[4] = src.m_c[4]; ptr[5] = src.m_c[5]; ptr[6] = src.m_c[6]; ptr[7] = src.m_c[7]; ptr[8] = src.m_c[8]; ptr[9] = src.m_c[9]; }
/// <summary> /// Converts a pointPair to a mv. /// </summary> public mv(pointPair A) { Set(A); }
/// <summary> /// Copy constructor. /// </summary> public pointPair(pointPair A) { Set(A); }
/// <summary>Returns outer product of pointPair and normalizedPoint. /// </summary> public static circle op(pointPair a, normalizedPoint b) { return new circle(circle.coord_noe1e2_noe1e3_noe2e3_e1e2e3_noe1ni_noe2ni_e1e2ni_noe3ni_e1e3ni_e2e3ni, (a.m_c[0]*b.m_c[1]-a.m_c[1]*b.m_c[0]+a.m_c[2]), // no_e1_e2 (a.m_c[0]*b.m_c[2]-a.m_c[3]*b.m_c[0]+a.m_c[4]), // no_e1_e3 (a.m_c[1]*b.m_c[2]-a.m_c[3]*b.m_c[1]+a.m_c[5]), // no_e2_e3 (a.m_c[2]*b.m_c[2]-a.m_c[4]*b.m_c[1]+a.m_c[5]*b.m_c[0]), // e1_e2_e3 (a.m_c[0]*b.m_c[3]-a.m_c[6]*b.m_c[0]+a.m_c[7]), // no_e1_ni (a.m_c[1]*b.m_c[3]-a.m_c[6]*b.m_c[1]+a.m_c[8]), // no_e2_ni (a.m_c[2]*b.m_c[3]-a.m_c[7]*b.m_c[1]+a.m_c[8]*b.m_c[0]), // e1_e2_ni (a.m_c[3]*b.m_c[3]-a.m_c[6]*b.m_c[2]+a.m_c[9]), // no_e3_ni (a.m_c[4]*b.m_c[3]-a.m_c[7]*b.m_c[2]+a.m_c[9]*b.m_c[0]), // e1_e3_ni (a.m_c[5]*b.m_c[3]-a.m_c[8]*b.m_c[2]+a.m_c[9]*b.m_c[1]) // e2_e3_ni ); }
/// <summary>Returns left contraction of pointPair and plane. /// </summary> public static pointPair lc(pointPair a, plane b) { return new pointPair(pointPair.coord_noe1_noe2_e1e2_noe3_e1e3_e2e3_noni_e1ni_e2ni_e3ni, (-a.m_c[1]*b.m_c[3]-a.m_c[3]*b.m_c[2]), // no_e1 (a.m_c[0]*b.m_c[3]-a.m_c[3]*b.m_c[1]), // no_e2 (-a.m_c[3]*b.m_c[0]+a.m_c[6]*b.m_c[3]), // e1_e2 (a.m_c[0]*b.m_c[2]+a.m_c[1]*b.m_c[1]), // no_e3 (a.m_c[1]*b.m_c[0]+a.m_c[6]*b.m_c[2]), // e1_e3 (-a.m_c[0]*b.m_c[0]+a.m_c[6]*b.m_c[1]), // e2_e3 (-a.m_c[2]*b.m_c[3]-a.m_c[4]*b.m_c[2]-a.m_c[5]*b.m_c[1]), // no_ni (-a.m_c[5]*b.m_c[0]+a.m_c[8]*b.m_c[3]+a.m_c[9]*b.m_c[2]), // e1_ni (a.m_c[4]*b.m_c[0]-a.m_c[7]*b.m_c[3]+a.m_c[9]*b.m_c[1]), // e2_ni (-a.m_c[2]*b.m_c[0]-a.m_c[7]*b.m_c[2]-a.m_c[8]*b.m_c[1]) // e3_ni ); }