Syntax
[C/C++:]
void gEnqCurveAttribs2D(float dxbeg, float dybeg, float dxfin, float dyfin, GPOINT *begp2, GPOINT *finp2);
void gEnqCurveAttribs3D(float dxbeg, float dybeg, float dzbeg, float dxfin, float dyfin, float dzfin, GPOINT3 *begp3, GPOINT3 *finp3);
[F90:]
subroutine gEnqCurveAttribs2D(dxbeg, dybeg, dxfin, dyfin, begp2, finp2)
subroutine gEnqCurveAttribs3D(dxbeg, dybeg, dzbeg, dxfin, dyfin, dzfin, begp3, finp3)
real, intent(out) :: dxbeg,dybeg,dzbeg,dxfin,dyfin,dzfin
type (GPOINT), intent(out) :: begp2,finp2
type (GPOINT3), intent(out) :: begp3,finp3
Arguments
dxbeg,dybeg,dzbeg
Slope angle/derivative for start of the curve
dxfin,dyfin,dzfin
Slope angle/derivative for end of the curve
begp2,begp3
Extra point defining start angle of curve
finp2,finp3
Extra point defining end angle of curve
Description
The routine gEnqCurveAttribs2D() and gEnqCurveAttribs3D() return the curve end conditions which have either been set through calling gSetCurveAttribs2D() or gSetCurveAttribs3D() or have been set/updated as a result of the last curve drawing routine.
For the piecewise cubic curves, the slopes are measured in terms of the cosine and sine of the angles at each end, whereas for the spline curves, the slope is measured in terms of actual gradient and therefore will be scaled.
The curve end conditions define the direction of a curve at each end. They will be used in the next curve drawing routine if the curve is to be drawn with specified end conditions and then updated so that the start and end slopes match those of the curve that has been drawn. By enquiring and setting the curve end conditions in between curve drawing routines, it is possible to get curves to merge smoothly.
See Also
gEnqCurveAttribs UsagegDrawAkimaBy2D
gDrawAkimaTo2D
gDrawCurveBy2D
gDrawCurveTo2D
gDrawSplineBy2D
gDrawSplineTo2D
gSetCurveAttribs2D
gSetCurveAttribs3D