|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public interface IConstructCurve
Provides access to members that construct a curve using other geometries and measures.
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.
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 |
---|
void constructOffset(IPolycurve inCurve, double offset, Object offsetHow, Object bevelRatio) throws IOException, AutomationException
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.
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.
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)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void constructKoch(IPolycurve p, double r, int recursionLevel) throws IOException, AutomationException
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.).
p
- A reference to a com.esri.arcgis.geometry.IPolycurve (in)r
- The r (in)recursionLevel
- The recursionLevel (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void constructExtended(ICurve fromCurve, ICurve toCurve, int extensionFlags, boolean[] extensionsPerformed) throws IOException, AutomationException
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.
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)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |