IStrokeHandler is an interface with methods to receive data about curves being stroked. CurvePrimitives emitStrokes () methods emit calls to a handler object with these methods. The various CurvePrimitive types are free to announce either single points (announcePoint), linear fragments, or fractional intervals of the parent curve.
- handler.startCurvePrimitive (cp) -- announce the curve primitive whose strokes will follow.
- announcePointTangent (xyz, fraction, tangent) -- announce a single point on the curve.
- announceIntervalForUniformStepStrokes (cp, numStrokes, fraction0, fraction1) -- announce a fraction interval in which the curve can be evaluated (e.g. the handler can call cp->fractionToPointAndDerivative ())
- announceSegmentInterval (cp, point0, point1, numStrokes, fraction0, fraction1) -- announce
that the fractional interval fraction0, fraction1 is a straight line which should be broken into
- A LineSegment would make a single call to this.
- A LineString would make one call to this for each of its segments, with fractions indicating position within the linestring.
- endCurvePrimitive (cp) -- announce the end of the curve primitive.
|announceBezierCurve(bezier: BezierCurveBase, numStrokes: number, parent: CurvePrimitive, spandex: number, fraction0: number, fraction1: number): void Optional||Announce a bezier curve fragment.|
|announceIntervalForUniformStepStrokes(cp: CurvePrimitive, numStrokes: number, fraction0: number, fraction1: number): void||Announce that curve primitive cp should be evaluated in the specified fraction interval.|
|announcePointTangent(xyz: Point3d, fraction: number, tangent: Vector3d): void||announce a single point with its fraction and tangent.|
|announceSegmentInterval(cp: CurvePrimitive, point0: Point3d, point1: Point3d, numStrokes: number, fraction0: number, fraction1: number): void||Announce numPoints interpolated between point0 and point1, with associated fractions|
|endCurvePrimitive(cp: CurvePrimitive): void||Announce that all data about
|endParentCurvePrimitive(cp: CurvePrimitive): void||Announce that all data about the parent primitive has been announced.|
|startCurvePrimitive(cp: CurvePrimitive): void||Announce the curve primitive that will be described in subsequent calls.|
|startParentCurvePrimitive(cp: CurvePrimitive): void||announce a parent curve primitive
* startParentCurvePrimitive() ...endParentCurvePrimitive() are wrapped around startCurvePrimitive and endCurvePrimitive when the interior primitive is a proxy.
Last Updated: 10 September, 2019