Share

AcGeOffsetCurve3d

Class Hierarchy

AcGeEntity3d
    AcGeCurve3d
        AcGeOffsetCurve3d

C++

class AcGeOffsetCurve3d : public AcGeCurve3d;

File

geoffc3d.h

Description

Represents a curve that is an exact offset of another curve (base curve). An object of this class stores a pointer to the base curve of which it is an offset. This means that any modification of the base curve also modifies the offset curve. Since this curve is an exact offset, it may be self-intersecting even though the base curve is not self-intersecting (a non-self-intersecting offset curve can be created by calling AcGeCurve3d::getTrimmedOffset()).

The base curve must be a planar curve. A normal vector must be specified when constructing an AcGeOffsetCurve3d object. This vector must be perpendicular to the plane of the base curve. The positive direction of offset at each point of the base curve is the cross product of the specified normal vector with the tangent vector at that point. The base curve may be offset in either of two directions by specifying a positive or negative offset value or by flipping the normal vector. Objects of this class may also be constructed with an offset distance of 0, in which case the offset curve is simply a replica of the base curve.

Functions that modify the offset curve, such as transformBy(), reverseParam(), and setInterval(), do not modify the base curve. If reverseParam() is called for an offset curve, then the direction of the resulting offset curve is opposite that of the base curve. If setInterval() is called for an offset curve, then the offset curve represents an offset of the specified interval of the base curve. This is useful for creating multiple offset curves, each of which represents a separate interval of the base curve. For instance, if three offset curves are constructed from the same base curve whose interval is [0,1], then setInterval() could be called for each of these offset curves to set their intervals to something like [.1,.3], [.5,.6], and [.7,.9]. If the offset distance was set to 0, then these offset curves each represent a different trimmed portion of the base curve. Any of these offset curves could then be transformed or reversed without modifying the other offset curves or the base curve.

If the offset curve is constructed with an offset distance that is not 0, then the continuity of the offset curve is one less than the continuity of the base curve. So if the base curve has continuity in the second derivative (but not the third), then the offset curve has continuity in the first derivative. If the base curve is discontinuous in the first derivative, then the offset curve may not be continuous at all. Therefore, the base curve should at least be continuous in the first derivative to ensure that the offset curve represents a valid curve.

Links

AcGeOffsetCurve3d Constructor, AcGeOffsetCurve3d Methods, AcGeOffsetCurve3d Operators

Was this information helpful?