public void Set(normalizedPoint 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]; }
/// <summary>sets this to normalizedPoint value. /// </summary> public void Set(normalizedPoint src) { AllocateGroups(GroupBitmap.GROUP_1); float[] ptr; ptr = m_c[1]; ptr[0] = 1.0f; ptr[1] = src.m_c[0]; ptr[2] = src.m_c[1]; ptr[3] = src.m_c[2]; ptr[4] = src.m_c[3]; }
/// <summary> /// Converts a normalizedPoint to a mv. /// </summary> public mv(normalizedPoint A) { Set(A); }
/// <summary>shortcut to c3ga.op(this, b) /// </summary> public circle op(normalizedPoint b) { return c3ga.op(this, b); }
/// <summary>shortcut to c3ga.op(this, b) /// </summary> public circle op(normalizedPoint b) { return(c3ga.op(this, b)); }
/// <summary>Returns outer product of normalizedPoint and normalizedPoint. /// </summary> public static pointPair op(normalizedPoint a, normalizedPoint b) { return new pointPair(pointPair.coord_noe1_noe2_e1e2_noe3_e1e3_e2e3_noni_e1ni_e2ni_e3ni, (-a.m_c[0]+b.m_c[0]), // no_e1 (-a.m_c[1]+b.m_c[1]), // no_e2 (a.m_c[0]*b.m_c[1]-a.m_c[1]*b.m_c[0]), // e1_e2 (-a.m_c[2]+b.m_c[2]), // no_e3 (a.m_c[0]*b.m_c[2]-a.m_c[2]*b.m_c[0]), // e1_e3 (a.m_c[1]*b.m_c[2]-a.m_c[2]*b.m_c[1]), // e2_e3 (-a.m_c[3]+b.m_c[3]), // no_ni (a.m_c[0]*b.m_c[3]-a.m_c[3]*b.m_c[0]), // e1_ni (a.m_c[1]*b.m_c[3]-a.m_c[3]*b.m_c[1]), // e2_ni (a.m_c[2]*b.m_c[3]-a.m_c[3]*b.m_c[2]) // e3_ni ); }
/// <summary> /// Copy constructor. /// </summary> public normalizedPoint(normalizedPoint A) { Set(A); }
/// <summary>Returns outer product of normalizedPoint and line. /// </summary> public static plane op(normalizedPoint a, line b) { return new plane(plane.coord_e1e2e3ni_noe2e3ni_noe1e3ni_noe1e2ni, (a.m_c[0]*b.m_c[2]-a.m_c[1]*b.m_c[1]+a.m_c[2]*b.m_c[0]), // e1_e2_e3_ni (a.m_c[1]*b.m_c[5]-a.m_c[2]*b.m_c[4]+b.m_c[2]), // no_e2_e3_ni (a.m_c[0]*b.m_c[5]-a.m_c[2]*b.m_c[3]+b.m_c[1]), // no_e1_e3_ni (a.m_c[0]*b.m_c[4]-a.m_c[1]*b.m_c[3]+b.m_c[0]) // no_e1_e2_ni ); }
/// <summary>Returns outer product of normalizedPoint and flatPoint. /// </summary> public static line op(normalizedPoint a, flatPoint b) { return new line(line.coord_e1e2ni_e1e3ni_e2e3ni_e1noni_e2noni_e3noni, (a.m_c[0]*b.m_c[1]-a.m_c[1]*b.m_c[0]), // e1_e2_ni (a.m_c[0]*b.m_c[2]-a.m_c[2]*b.m_c[0]), // e1_e3_ni (a.m_c[1]*b.m_c[2]-a.m_c[2]*b.m_c[1]), // e2_e3_ni -(-a.m_c[0]*b.m_c[3]+b.m_c[0]), // e1_no_ni -(-a.m_c[1]*b.m_c[3]+b.m_c[1]), // e2_no_ni -(-a.m_c[2]*b.m_c[3]+b.m_c[2]) // e3_no_ni ); }
/// <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 outer product of normalizedPoint and ni_t. /// </summary> public static flatPoint op(normalizedPoint a, ni_t b) { return new flatPoint(flatPoint.coord_e1ni_e2ni_e3ni_noni, a.m_c[0], // e1_ni a.m_c[1], // e2_ni a.m_c[2], // e3_ni 1.0f // no_ni ); }
/// <summary>shortcut to c3ga.op(this, b) /// </summary> public pointPair op(normalizedPoint b) { return(c3ga.op(this, b)); }
/// <summary>shortcut to c3ga.op(this, b) /// </summary> public pointPair op(normalizedPoint b) { return c3ga.op(this, b); }