bool ON_HatchLoop::SetCurve( const ON_Curve& curve) { ON_Curve* pC = curve.DuplicateCurve(); if( pC) { if(pC->Dimension() == 3 && !pC->ChangeDimension(2)) return false; if( m_p2dCurve) delete m_p2dCurve; m_p2dCurve = pC; } return true; }
// Copy the 2d curve, make it 3d, and transform it // to the 3d plane position ON_Curve* ON_Hatch::LoopCurve3d( int index) const { int count = m_loops.Count(); ON_Curve* pC = NULL; if( index >= 0 && index < count) { if( m_loops[index]->Curve()) { pC = m_loops[index]->Curve()->DuplicateCurve(); if( pC) { pC->ChangeDimension( 3); ON_Xform xf; xf.Rotation( ON_xy_plane, m_plane); pC->Transform( xf); } } } return pC; }