コード例 #1
0
ファイル: clipper.cs プロジェクト: asheikh91/repsnapper
 void DisposeScanbeamList()
 {
     while ( m_Scanbeam != null ) {
       Scanbeam sb2 = m_Scanbeam.next;
       m_Scanbeam = null;
       m_Scanbeam = sb2;
       }
 }
コード例 #2
0
ファイル: clipper.cs プロジェクト: asheikh91/repsnapper
 //------------------------------------------------------------------------------
 protected override bool Reset()
 {
     if ( !base.Reset() ) return false;
       m_Scanbeam = null;
       m_ActiveEdges = null;
       m_SortedEdges = null;
       LocalMinima lm = m_MinimaList;
       while (lm != null)
       {
     InsertScanbeam(lm.Y);
     InsertScanbeam(lm.leftBound.ytop);
     lm = lm.next;
       }
       return true;
 }
コード例 #3
0
ファイル: clipper.cs プロジェクト: asheikh91/repsnapper
 //------------------------------------------------------------------------------
 private void InsertScanbeam(int Y)
 {
     if( m_Scanbeam == null )
       {
     m_Scanbeam = new Scanbeam();
     m_Scanbeam.next = null;
     m_Scanbeam.Y = Y;
       }
       else if(  Y > m_Scanbeam.Y )
       {
     Scanbeam newSb = new Scanbeam();
     newSb.Y = Y;
     newSb.next = m_Scanbeam;
     m_Scanbeam = newSb;
       } else
       {
     Scanbeam sb2 = m_Scanbeam;
     while( sb2.next != null  && ( Y <= sb2.next.Y ) ) sb2 = sb2.next;
     if(  Y == sb2.Y ) return; //ie ignores duplicates
     Scanbeam newSb = new Scanbeam();
     newSb.Y = Y;
     newSb.next = sb2.next;
     sb2.next = newSb;
       }
 }
コード例 #4
0
ファイル: clipper.cs プロジェクト: asheikh91/repsnapper
 //------------------------------------------------------------------------------
 private int PopScanbeam()
 {
     int Y = m_Scanbeam.Y;
       Scanbeam sb2 = m_Scanbeam;
       m_Scanbeam = m_Scanbeam.next;
       sb2 = null;
       return Y;
 }
コード例 #5
0
ファイル: clipper.cs プロジェクト: asheikh91/repsnapper
 public Clipper()
 {
     m_Scanbeam = null;
     m_ActiveEdges = null;
     m_SortedEdges = null;
     m_IntersectNodes = null;
     m_ExecuteLocked = false;
     m_PolyPts = new List<PolyPt>();
     m_Joins = new List<JoinRec>();
     m_HorizJoins = new List<HorzJoinRec>();
 }