Example #1
0
        private EdgeRing _shell; // if non-null, the ring is a hole and this EdgeRing is its containing shell

        #endregion Fields

        #region Constructors

        /// <summary>
        /// Initializes a new instance of the EdgeRing class.
        /// </summary>
        public EdgeRing( DirectedEdge start, GeometryFactory geometryFactory, CGAlgorithms cga )
        {
            _geometryFactory = geometryFactory;
            _cga = cga;
            ComputePoints(start);
            ComputeRing();
        }
		public BufferEdgeBuilder(CGAlgorithms cga, LineIntersector li, double distance, bool makePrecise, int quadrantSegments)
		{
			
			this._cga = cga;
			this._distance = distance;
			//lineBuilder = new BufferMultiLineBuilder(cga, li);
			_lineBuilder = new BufferLineBuilder(_cga, li, makePrecise,quadrantSegments);
			
		}
		public BufferLineBuilder(CGAlgorithms _cga, LineIntersector li, bool makePrecise, int quadrantSegments)
		{
			
			this._cga = _cga;
			this._li = li;
			this._makePrecise = makePrecise;
			_angleInc = Math.PI / 2.0 / quadrantSegments;
			_lineList = new ArrayList();
			// ensure array has exactly one element
			_lineList.Add(arrayTypeCoordinate);
			
		}
		/// <summary>
		/// Initializes a new instance of the MaximalEdgeRing class.
		/// A MaximalEdgeRing is a ring of edges which may contain nodes of degree > 2.
		/// A MaximalEdgeRing may represent two different spatial entities:
		/// &lt;ul&gt;
		/// &lt;li&gt;a single polygon possibly containing inversions (if the ring is oriented CW)
		/// &lt;li&gt;a single hole possibly containing exversions (if the ring is oriented CCW)
		/// &lt;/ul&gt;
		/// If the MaximalEdgeRing represents a polygon,
		/// the interior of the polygon is strongly connected.
		/// These are the form of rings used to define polygons under some spatial data models.
		/// However, under the OGC SFS model, {@link MinimalEdgeRings} are required.
		/// A MaximalEdgeRing can be converted to a list of MinimalEdgeRings using the
		/// { BuildMinimalRings() } method.
		/// </summary>
		public MaximalEdgeRing( DirectedEdge start, GeometryFactory geometryFactory, CGAlgorithms cga ) : base( start, geometryFactory, cga )
		{
		}
		public BufferLineBuilder(CGAlgorithms _cga, LineIntersector li, bool makePrecise)
			: this(_cga, li, makePrecise, DefaultQuadrantSegments)
		{
		}
Example #6
0
		/// <summary>
		/// Initializes a new instance of the ConvexHull with the specified CGAlgorithms class.
		/// </summary>
		/// <param name="cga"></param>
		public ConvexHull(CGAlgorithms cga)
		{
			this._cga = cga;
		}
		/// <summary>
		/// Initializes a new instance of the BufferMultiLineBuilder class.
		/// </summary>
		/// <param name="cga"></param>
		/// <param name="li"></param>
		public BufferMultiLineBuilder(CGAlgorithms cga, LineIntersector li)
		{	
			_cga = cga;
			_li = li;
			_angleInc = Math.PI / 2.0 / QUADRANT_SEGMENTS;		
		} // public BufferMultiLineBuilder(CGAlgorithms cga, LineIntersector li)
		/// <summary>
		/// Initializes a new instance of the PolygonBuilder class.
		/// </summary>
		public PolygonBuilder( GeometryFactory geometryFactory, CGAlgorithms cga )
		{
			_geometryFactory = geometryFactory;
			_cga = cga;
		} // public PolygonBuilder( GeometryFactory geometryFactory, CGAlgorithms cga )
Example #9
0
 /// <summary>
 /// Initializes a new instance of the ConvexHull with the specified CGAlgorithms class.
 /// </summary>
 /// <param name="cga"></param>
 public ConvexHull(CGAlgorithms cga)
 {
     this._cga = cga;
 }
		private void  InitBlock()
		{
			_geometryFactory = new GeometryFactory();
			_cga = new RobustCGAlgorithms();
		}