com.esri.arcgis.geometry
Interface IConstructCurve

All Superinterfaces:
Serializable
All Known Subinterfaces:
IConstructCurve2, IConstructCurve3
All Known Implementing Classes:
Polygon, Polyline

public interface IConstructCurve
extends Serializable

Provides access to members that construct a curve using other geometries and measures.

Superseded By

IConstructCurve3

Description

IConstructCurve contains methods used to create specialized Polylines or Polygons from input curves. ConstructOffset is used to create the right or left offset of a given curve. ConstructExtended extends a curve according to the desired extension method.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.


Method Summary
 void constructExtended(ICurve fromCurve, ICurve toCurve, int extensionFlags, boolean[] extensionsPerformed)
          Constructs an extended version of the 'from' curve that goes to the 'to' curve.
 void constructKoch(IPolycurve p, double r, int recursionLevel)
          Constructs a Koch snowflake fractal using the input polycurve as the generator.
 void constructOffset(IPolycurve inCurve, double offset, Object offsetHow, Object bevelRatio)
          Constructs a curve being the locus of points offset a given distance from another curve.
 

Method Detail

constructOffset

void constructOffset(IPolycurve inCurve,
                     double offset,
                     Object offsetHow,
                     Object bevelRatio)
                     throws IOException,
                            AutomationException
Constructs a curve being the locus of points offset a given distance from another curve. See the enumeration esriConstructOffsetEnum to information on different ways that offset curve can be generated.

Description

ConstructOffset constructs the offset of the given input Polycurve. If the offset parameter is positive, the constructed offset will be on the right side of the curve (left side offsets are constructed with negative offset parameters). Tracing the curve from it's first vertex to the last will give you a direction along the curve. It is to the right and left respective of this direction that the positive and negative parameters will dictate where the offset is constructed. In these terms it is simple to infer where the offset of even horizontal polycurves will be constructed. The offsetHow parameter determines how outer corners between segments are handled. Rounded offset rounds the corner between extended offsets. Bevelled offset squares off the corner after a given ratio distance. Mitered offset attempts to allow extended offsets to naturally intersect, but if that intersection occurs too far from the corner, the corner is eventually bevelled off at a fixed distance.

Remarks

This results produced by this method are sensitive to large offset distances, particularly when the offset distance is larger than the length of the segments in the reference geometry. The remove self intersecting arcs feature is particularly problematic when extremely large offsets are involved.

The sides of the curve are determined from the order of the vertices of the curve. Tracing the curve from the first vertex to the last will give you a direction along the curve it is to the right and left of this direction that the positive and negative parameters will dictate where the offset is constructed. In these terms it is simple to infer where the offset will be constructed.

One alternative is to use buffer to generate the offsets.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

Parameters:
inCurve - A reference to a com.esri.arcgis.geometry.IPolycurve (in)
offset - The offset (in)
offsetHow - A Variant (in, optional, pass null if not required)
bevelRatio - A Variant (in, optional, pass null if not required)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

constructKoch

void constructKoch(IPolycurve p,
                   double r,
                   int recursionLevel)
                   throws IOException,
                          AutomationException
Constructs a Koch snowflake fractal using the input polycurve as the generator. 'r' is not used. Do not use a value for recursionLevel > 10.

Description

ConstructKoch creates a Koch fractal from the given input curve. It treats all segments as linear segments (ie. All CircularArcs, BezierCurves, and EllipticArc as treated like lines between the From and To Points.).

Remarks

ConstructCurve ConstructKoch Example

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

Parameters:
p - A reference to a com.esri.arcgis.geometry.IPolycurve (in)
r - The r (in)
recursionLevel - The recursionLevel (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

constructExtended

void constructExtended(ICurve fromCurve,
                       ICurve toCurve,
                       int extensionFlags,
                       boolean[] extensionsPerformed)
                       throws IOException,
                              AutomationException
Constructs an extended version of the 'from' curve that goes to the 'to' curve. The flags are bit-wise combined esriCurveExtension values.

Remarks

This method will return an empty geometry if you attempt to create a polygon from two linear

geometries as input. This is not a way to create a polygon from two polylines.

If the input curve is a polygon the result will be a copy of the polygon.

The flags are bit-wise combined esriCurveExtension values.

ConstructCurve ConstructExtended Example

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

Parameters:
fromCurve - A reference to a com.esri.arcgis.geometry.ICurve (in)
toCurve - A reference to a com.esri.arcgis.geometry.ICurve (in)
extensionFlags - The extensionFlags (in)
extensionsPerformed - The extensionsPerformed (in/out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.