private void normalize( )
public void normalize( )
	private void normalize( )	{		ArrayList sects = new ArrayList( );		long leftEdge = UNCLOSE_EDGE;		long rightEdge = UNCLOSE_EDGE;		int status = STATUS_INIT;		for ( int i = 0; i < edges.size( ); i++ )		{			SegmentEdge edge = (SegmentEdge) edges.get( i );			switch ( status )			{				case STATUS_INIT :					if ( edge.leftEdge )					{						leftEdge = edge.offset;						rightEdge = UNCLOSE_EDGE;						status = STATUS_START;					}					else					{						leftEdge = LEFT_MOST_EDGE;						rightEdge = edge.offset;						status = STATUS_CLOSE;					}					break;				case STATUS_START :					if ( !edge.leftEdge )					{						rightEdge = edge.offset;						status = STATUS_CLOSE;					}					break;				case STATUS_CLOSE :					if ( edge.leftEdge )					{						if (edge.offset == rightEdge)						{							rightEdge = UNCLOSE_EDGE;						}						else						{							sects.add( new long[]{leftEdge, rightEdge} );							leftEdge = edge.offset;							rightEdge = UNCLOSE_EDGE;						}						status = STATUS_START;					}					else					{						rightEdge = edge.offset;					}					break;			}		}		// TERMINATE		switch ( status )		{			case STATUS_START :				sects.add( new long[]{leftEdge, RIGHT_MOST_EDGE} );				break;			case STATUS_CLOSE :				sects.add( new long[]{leftEdge, rightEdge} );				break;		}		sections = new long[sects.size( )][];		for ( int i = 0; i < sects.size( ); i++ )		{			sections[i] = (long[]) sects.get( i );		}	}