Home

Evaluators
[Kernel Functionality]

Collaboration diagram for Evaluators:

Functions

double coedge_end_cross (COEDGE const *coedge, SPAtransf const &transf1=*(SPAtransf *) NULL_REF, FACE const *face=NULL, SPAtransf const &transf2=*(SPAtransf *) NULL_REF)
 Returns the cross-curvature at either the start or end of the EDGE underlying a COEDGE, depending upon the coedge's sense.
SPAvector coedge_end_curv (COEDGE const *coedge, SPAtransf const &transf=*(SPAtransf *) NULL_REF, logical nominal=TRUE)
 Returns either the start or end curvature of the EDGE underlying a COEDGE, depending upon the coedge's sense.
SPAunit_vector coedge_end_dir (COEDGE const *coedge, SPAtransf const &transf=*(SPAtransf *) NULL_REF, logical nominal=TRUE)
 Returns the direction at either the start or end of the EDGE underlying a COEDGE, depending upon the coedge's sense.
SPAunit_vector coedge_end_norm (COEDGE const *coedge, SPAtransf const &transf1=*(SPAtransf *) NULL_REF, FACE const *face=NULL, SPAtransf const &transf2=*(SPAtransf *) NULL_REF)
 Returns the direction of the normal of a FACE at either the start or end of the EDGE underlying a COEDGE, depending upon the coedge's sense.
SPAunit_vector coedge_end_outdir (COEDGE const *coedge, SPAtransf const &transf1=*(SPAtransf *) NULL_REF, FACE const *face=NULL, SPAtransf const &transf2=*(SPAtransf *) NULL_REF)
 Returns the direction outwards from a surface at either the start or end of the EDGE underlying a COEDGE, depending upon the coedge's sense.
double coedge_end_param (COEDGE const *coedge)
 Returns either the start or end parameter of the EDGE underlying a COEDGE, depending upon the coedge's sense.
SPAposition coedge_end_pos (COEDGE const *coedge, SPAtransf const &transf=*(SPAtransf *) NULL_REF)
 Returns either the start or end position of the EDGE underlying a COEDGE, depending upon the coedge's sense.
double coedge_mid_cross (COEDGE const *coedge, SPAtransf const &transf1=*(SPAtransf *) NULL_REF, FACE const *face=NULL, SPAtransf const &transf2=*(SPAtransf *) NULL_REF)
 Returns the cross-curvature at the middle position of the EDGE underlying a COEDGE.
SPAvector coedge_mid_curv (COEDGE const *coedge, SPAtransf const &transf=*(SPAtransf *) NULL_REF, logical nominal=TRUE)
 Returns the curvature at the middle position of the EDGE underlying a COEDGE.
SPAunit_vector coedge_mid_dir (COEDGE const *coedge, SPAtransf const &transf=*(SPAtransf *) NULL_REF, logical nominal=TRUE)
 Returns the direction at the middle position of the EDGE underlying a COEDGE, or its negation.
SPAunit_vector coedge_mid_norm (COEDGE const *coedge, SPAtransf const &transf1=*(SPAtransf *) NULL_REF, FACE const *face=NULL, SPAtransf const &transf2=*(SPAtransf *) NULL_REF)
 Returns the direction of the normal of a FACE at the middle position of the EDGE underlyling a COEDGE.
SPAunit_vector coedge_mid_outdir (COEDGE const *coedge, SPAtransf const &transf1=*(SPAtransf *) NULL_REF, FACE const *face=NULL, SPAtransf const &transf2=*(SPAtransf *) NULL_REF)
 Returns the direction outwards from a surface at the middle position of the EDGE underlying a COEDGE.
SPAposition coedge_mid_pos (COEDGE const *coedge, SPAtransf const &transf=*(SPAtransf *) NULL_REF)
 Returns the middle position of the of the EDGE underlying a COEDGE.
double coedge_min_radius_curv (COEDGE const *coedge)
 Returns the minimum radius of curvature of the EDGE underlying a COEDGE.
double coedge_param_cross (COEDGE const *coedge, double param, SPAtransf const &transf1=*(SPAtransf *) NULL_REF, FACE const *face=NULL, SPAtransf const &transf2=*(SPAtransf *) NULL_REF)
 Returns the cross-curvature at a position on the EDGE underlying a COEDGE, given a parameter value.
SPAvector coedge_param_curv (COEDGE const *coedge, double param, SPAtransf const &transf=*(SPAtransf *) NULL_REF, logical nominal=TRUE)
 Returns the curvature on the EDGE underlying a COEDGE, given a parameter value.
SPAunit_vector coedge_param_dir (COEDGE const *coedge, double param, SPAtransf const &transf=*(SPAtransf *) NULL_REF, logical nominal=TRUE)
 Returns the direction on the EDGE underlying a COEDGE, given a parameter value.
SPAunit_vector coedge_param_norm (COEDGE const *coedge, double param, SPAtransf const &transf1=*(SPAtransf *) NULL_REF, FACE const *face=NULL, SPAtransf const &transf2=*(SPAtransf *) NULL_REF)
 Returns the direction of the normal of a FACE at a position on the EDGE underlying a COEDGE, given a parameter value.
SPAunit_vector coedge_param_outdir (COEDGE const *coedge, double param, SPAtransf const &transf1=*(SPAtransf *) NULL_REF, FACE const *face=NULL, SPAtransf const &transf2=*(SPAtransf *) NULL_REF)
 Returns the direction outwards from a surface at a position on the EDGE underlying a COEDGE, given a parameter value.
SPAposition coedge_param_pos (COEDGE const *coedge, double param, SPAtransf const &transf=*(SPAtransf *) NULL_REF, logical nominal=FALSE)
 Returns the position on the EDGE underlying a COEDGE, given a parameter value.
double coedge_start_cross (COEDGE const *coedge, SPAtransf const &transf1=*(SPAtransf *) NULL_REF, FACE const *face=NULL, SPAtransf const &transf2=*(SPAtransf *) NULL_REF)
 Returns the cross-curvature at either the start or end of the EDGE underlying a COEDGE, depending upon the coedge's sense.
SPAvector coedge_start_curv (COEDGE const *coedge, SPAtransf const &transf=*(SPAtransf *) NULL_REF, logical nominal=TRUE)
 Returns either the start or end curvature of the EDGE underlying a COEDGE, depending upon the coedge's sense.
SPAunit_vector coedge_start_dir (COEDGE const *coedge, SPAtransf const &transf=*(SPAtransf *) NULL_REF, logical nominal=TRUE)
 Returns the direction at either the start or end of the EDGE underlying a COEDGE, depending upon the coedge's sense.
SPAunit_vector coedge_start_norm (COEDGE const *coedge, SPAtransf const &transf1=*(SPAtransf *) NULL_REF, FACE const *face=NULL, SPAtransf const &transf2=*(SPAtransf *) NULL_REF)
 Returns the direction of the normal of a FACE at either the start or end of the EDGE underlying a COEDGE, depending upon the coedge's sense.
SPAunit_vector coedge_start_outdir (COEDGE const *coedge, SPAtransf const &transf1=*(SPAtransf *) NULL_REF, FACE const *face=NULL, SPAtransf const &transf2=*(SPAtransf *) NULL_REF)
 Returns the direction outwards from a surface at either the start or end of the EDGE underlying a COEDGE, depending upon the coedge's sense.
double coedge_start_param (COEDGE const *coedge)
 Returns either the start or end parameter of the EDGE underlying a COEDGE, depending upon the coedge's sense.
SPAposition coedge_start_pos (COEDGE const *coedge, SPAtransf const &transf=*(SPAtransf *) NULL_REF)
 Returns either the start or end position of the EDGE underlying a COEDGE, depending upon the coedge's sense.
SPApar_pos coedge_uv_param (COEDGE const *coedge, double param, SPAtransf const &transf=*(SPAtransf *) NULL_REF)
 Returns the surface u and v parameters for a given parameter on the EDGE underlying a COEDGE.
double edge_end_cross (EDGE const *edge, SPAtransf const &transf1, FACE const *face, SPAtransf const &transf2=*(SPAtransf *) NULL_REF, logical rhs_curv=FALSE, pcurve const &pcur=*(pcurve *) NULL_REF)
 Returns the cross-curvature at the end of an EDGE.
SPAvector edge_end_curv (EDGE const *edge, SPAtransf const &transf=*(SPAtransf *) NULL_REF)
 Returns the curve curvature at the end parameter of an EDGE.
SPAunit_vector edge_end_dir (EDGE const *edge, SPAtransf const &transf=*(SPAtransf *) NULL_REF)
 Returns the direction at the end of an EDGE.
SPAunit_vector edge_end_norm (EDGE const *edge, SPAtransf const &transf1, FACE const *face, SPAtransf const &transf2=*(SPAtransf *) NULL_REF, pcurve const &pcur=*(pcurve *) NULL_REF)
 Returns the direction of the normal of a FACE at the end of an EDGE.
SPAunit_vector edge_end_outdir (EDGE const *edge, SPAtransf const &transf1, FACE const *face, SPAtransf const &transf2=*(SPAtransf *) NULL_REF, pcurve const &pcur=*(pcurve *) NULL_REF)
 Returns the direction outwards from a surface at the end of an EDGE.
SPAposition edge_end_pos (EDGE const *edge, SPAtransf const &transf=*(SPAtransf *) NULL_REF)
 Returns the position at the end of an EDGE.
double edge_mid_cross (EDGE const *edge, SPAtransf const &transf1, FACE const *face, SPAtransf const &transf2=*(SPAtransf *) NULL_REF, logical rhs_curv=FALSE, pcurve const &pcur=*(pcurve *) NULL_REF)
 Returns the cross-curvature at the middle position of an EDGE.
SPAvector edge_mid_curv (EDGE const *edge, SPAtransf const &transf=*(SPAtransf *) NULL_REF)
 Returns the curve curvature at the middle range parameter of an EDGE.
SPAunit_vector edge_mid_dir (EDGE const *edge, SPAtransf const &transf=*(SPAtransf *) NULL_REF)
 Returns an EDGE's direction corresponding to the middle position of the EDGE's parameter range.
SPAunit_vector edge_mid_norm (EDGE const *edge, SPAtransf const &transf1, FACE const *face, SPAtransf const &transf2=*(SPAtransf *) NULL_REF, pcurve const &pcur=*(pcurve *) NULL_REF)
 Returns the direction of the normal of a FACE at the middle position of an EDGE.
SPAunit_vector edge_mid_outdir (EDGE const *edge, SPAtransf const &transf1, FACE const *face, SPAtransf const &transf2=*(SPAtransf *) NULL_REF, pcurve const &pcur=*(pcurve *) NULL_REF)
 Returns the direction outwards from a surface at the middle position of an EDGE.
SPAposition edge_mid_pos (EDGE const *edge, SPAtransf const &transf=*(SPAtransf *) NULL_REF)
 Returns the middle position of an EDGE.
double edge_min_radius_curv (EDGE const *edge)
 Returns the minimum radius of curvature of an EDGE.
double edge_param_cross (EDGE const *edge, double param, SPAtransf const &transf1, FACE const *face, SPAtransf const &transf2=*(SPAtransf *) NULL_REF, logical rhs_curv=FALSE, pcurve const &pcur=*(pcurve *) NULL_REF)
 Returns the cross-curvature at at a position on an EDGE, given a parameter value.
SPAvector edge_param_curv (EDGE const *edge, double param, SPAtransf const &transf=*(SPAtransf *) NULL_REF)
 Returns the curve curvature at the give parameter of an EDGE.
SPAunit_vector edge_param_dir (EDGE const *edge, double param, SPAtransf const &transf=*(SPAtransf *) NULL_REF)
 Returns the direction on an EDGE corresponding to a specified parameter value.
SPAunit_vector edge_param_norm (EDGE const *edge, double param, SPAtransf const &transf1, FACE const *face, SPAtransf const &transf2=*(SPAtransf *) NULL_REF, pcurve const &pcur=*(pcurve *) NULL_REF)
 Returns the direction of the normal of a FACE at a position on an EDGE, given a parameter value.
SPAunit_vector edge_param_outdir (EDGE const *edge, double param, SPAtransf const &transf1, FACE const *face, SPAtransf const &transf2=*(SPAtransf *) NULL_REF, pcurve const &pcur=*(pcurve *) NULL_REF)
 Returns the direction outwards from a surface at a position on an EDGE, given a parameter value.
SPAposition edge_param_pos (EDGE const *edge, double param, SPAtransf const &transf=*(SPAtransf *) NULL_REF)
 Returns the position on an EDGE corresponding to a specified parameter value.
double edge_start_cross (EDGE const *edge, SPAtransf const &transf1, FACE const *face, SPAtransf const &transf2=*(SPAtransf *) NULL_REF, logical rhs_curv=FALSE, pcurve const &pcur=*(pcurve *) NULL_REF)
 Returns the cross-curvature at the start of an EDGE.
SPAvector edge_start_curv (EDGE const *edge, SPAtransf const &transf=*(SPAtransf *) NULL_REF)
 Returns the curvature corresponding to the start parameter of an EDGE.
SPAunit_vector edge_start_dir (EDGE const *edge, SPAtransf const &transf=*(SPAtransf *) NULL_REF)
 Returns the direction at the start of an EDGE.
SPAunit_vector edge_start_norm (EDGE const *edge, SPAtransf const &transf1, FACE const *face, SPAtransf const &transf2=*(SPAtransf *) NULL_REF, pcurve const &pcur=*(pcurve *) NULL_REF)
 Returns the direction of the normal of a FACE at the start of an EDGE.
SPAunit_vector edge_start_outdir (EDGE const *edge, SPAtransf const &transf1, FACE const *face, SPAtransf const &transf2=*(SPAtransf *) NULL_REF, pcurve const &pcur=*(pcurve *) NULL_REF)
 Returns the direction outwards from a surface at the start of an EDGE.
SPAposition edge_start_pos (EDGE const *edge, SPAtransf const &transf=*(SPAtransf *) NULL_REF)
 Returns the position at the start of an EDGE.
SPAunit_vector sg_get_face_normal (FACE *face, const SPAposition &p)
 Calculate the normal to a face at a given SPAposition.
logical sg_get_face_par_box (FACE *this_face, SPApar_box &face_range)
 This function determines a parameter space SPApar_box encompassing the given face.

Function Documentation

double coedge_end_cross ( COEDGE const *  coedge,
SPAtransf const &  transf1 = *(SPAtransf *) NULL_REF,
FACE const *  face = NULL,
SPAtransf const &  transf2 = *(SPAtransf *) NULL_REF 
)

Returns the cross-curvature at either the start or end of the EDGE underlying a COEDGE, depending upon the coedge's sense.



Role: Uses the edge's end position if the coedge sense is FORWARD; otherwise, uses the edge's start position. If face is given, it is assumed that the COEDGE lies on it, and this face is used for evaluation of the normal; otherwise, the FACE owning the coedge's LOOP is used. If transf2 is given, it represents the transformation needed to translate the optional input face into the same coordinate system as that of the the untransformed COEDGE geometry. It should only be non-NULL if the optional face is given, and is used primarily by Boolean operations when testing a graph COEDGE against BODY faces.

Cross-curvature refers to the curvature of the curve that is the intersection of the surface with a plane through the test point and normal to the coedge or edge direction, or to a given direction. By convention, where the intersection has a discontinuity of curvature, it is the value to the left of the test point, looking along the given direction with the surface normal upwards, which is returned. For edges, this convention can be reversed. In all cases, the curvature is positive if the surface is convex (that is, curves away from the outward normal) and negative if it is concave.

Parameters:
coedge COEDGE to examine.
transf1 A transform to be applied to the position and direction used for the evaluation.
face The face used in the cross-curvature evaluation.
transf2 A transform to be applied to the face argument.

include <geometry.hxx>

SPAvector coedge_end_curv ( COEDGE const *  coedge,
SPAtransf const &  transf = *(SPAtransf *) NULL_REF,
logical  nominal = TRUE 
)

Returns either the start or end curvature of the EDGE underlying a COEDGE, depending upon the coedge's sense.



Role: Returns the edge's end curvature if the coedge's sense is FORWARD; otherwise, returns the edge's start curvature. When nominal is set to FALSE and the coedge is a TCOEDGE, the curvature is taken from the TCOEDGE's 3D curve instead of from the EDGE curve.

Parameters:
coedge COEDGE to examine.
transf Transform to apply to the edge curvature.
nominal Use a TCOEDGE's 3D curve, if set to FALSE.

include <geometry.hxx>

SPAunit_vector coedge_end_dir ( COEDGE const *  coedge,
SPAtransf const &  transf = *(SPAtransf *) NULL_REF,
logical  nominal = TRUE 
)

Returns the direction at either the start or end of the EDGE underlying a COEDGE, depending upon the coedge's sense.



Role: Returns the edge's end direction if the coedge's sense is FORWARD; otherwise, returns the negative of the edge's start direction. When nominal is set to FALSE and the coedge is a TCOEDGE, the direction is taken from the TCOEDGE's 3D curve instead of from the EDGE curve.

Parameters:
coedge COEDGE to examine.
transf Transform to apply to the edge direction.
nominal Use a TCOEDGE's 3D curve, if set to FALSE.

include <geometry.hxx>

SPAunit_vector coedge_end_norm ( COEDGE const *  coedge,
SPAtransf const &  transf1 = *(SPAtransf *) NULL_REF,
FACE const *  face = NULL,
SPAtransf const &  transf2 = *(SPAtransf *) NULL_REF 
)

Returns the direction of the normal of a FACE at either the start or end of the EDGE underlying a COEDGE, depending upon the coedge's sense.



Role: Uses the edge's end position if the coedge sense is FORWARD; otherwise, uses the edge's start position. If face is given, it is assumed that the COEDGE lies on it, and this face is used for evaluation of the normal; otherwise, the FACE owning the coedge's LOOP is used. If transf2 is given, it represents the transformation needed to translate the optional input face into the same coordinate system as that of the the untransformed COEDGE geometry. It should only be non-NULL if the optional face is given, and is used primarily by Boolean operations when testing a graph COEDGE against BODY faces.

Parameters:
coedge COEDGE to examine.
transf1 Transform to apply to the face normal.
face The face whose normal is desired.
transf2 A transform to be applied to the face argument.

include <geometry.hxx>

SPAunit_vector coedge_end_outdir ( COEDGE const *  coedge,
SPAtransf const &  transf1 = *(SPAtransf *) NULL_REF,
FACE const *  face = NULL,
SPAtransf const &  transf2 = *(SPAtransf *) NULL_REF 
)

Returns the direction outwards from a surface at either the start or end of the EDGE underlying a COEDGE, depending upon the coedge's sense.



Role: Uses the edge's end position if the coedge sense is FORWARD; otherwise, uses the edge's start position. If face is given, it is assumed that the COEDGE lies on it, and this face is used for evaluation of the normal; otherwise, the FACE owning the coedge's LOOP is used. If transf2 is given, it represents the transformation needed to translate the optional input face into the same coordinate system as that of the the untransformed COEDGE geometry. It should only be non-NULL if the optional face is given, and is used primarily by Boolean operations when testing a graph COEDGE against BODY faces.

The direction returned by this routine is usually the normal to the surface, but if the point is a singularity of the surface (like the apex of a cone or one apex of a degenerate torus), it just returns some direction guaranteed to point outwards from the surface (and not tangential, except in the case of a vortex).

Parameters:
coedge COEDGE to examine.
transf1 Transform to apply to the outward direction.
face The face whose surface's outward direction is desired.
transf2 A transform to be applied to the face argument.

include <geometry.hxx>

double coedge_end_param ( COEDGE const *  coedge  ) 

Returns either the start or end parameter of the EDGE underlying a COEDGE, depending upon the coedge's sense.



Role: Returns the edge's end parameter if the coedge's sense is FORWARD; otherwise, returns the edge's start parameter.

Parameters:
coedge COEDGE to examine.

include <geometry.hxx>

SPAposition coedge_end_pos ( COEDGE const *  coedge,
SPAtransf const &  transf = *(SPAtransf *) NULL_REF 
)

Returns either the start or end position of the EDGE underlying a COEDGE, depending upon the coedge's sense.



Role: Returns the edge's end position if the coedge's sense is FORWARD; otherwise, returns the edge's start position.

Parameters:
coedge COEDGE to examine.
transf Transform to apply to the edge position.

include <geometry.hxx>

double coedge_mid_cross ( COEDGE const *  coedge,
SPAtransf const &  transf1 = *(SPAtransf *) NULL_REF,
FACE const *  face = NULL,
SPAtransf const &  transf2 = *(SPAtransf *) NULL_REF 
)

Returns the cross-curvature at the middle position of the EDGE underlying a COEDGE.



Role: The middle position is defined to be the position corresponding to the middle parameter of the edge's range. If face is given, it is assumed that the COEDGE lies on it, and this face is used for evaluation of the normal; otherwise, the FACE owning the coedge's LOOP is used. If transf2 is given, it represents the transformation needed to translate the optional input face into the same coordinate system as that of the the untransformed COEDGE geometry. It should only be non-NULL if the optional face is given, and is used primarily by Boolean operations when testing a graph COEDGE against BODY faces.

Cross-curvature refers to the curvature of the curve that is the intersection of the surface with a plane through the test point and normal to the coedge or edge direction, or to a given direction. By convention, where the intersection has a discontinuity of curvature, it is the value to the left of the test point, looking along the given direction with the surface normal upwards, which is returned. For edges, this convention can be reversed. In all cases, the curvature is positive if the surface is convex (that is, curves away from the outward normal) and negative if it is concave.

Parameters:
coedge COEDGE to examine.
transf1 A transform to be applied to the position and direction used for the evaluation.
face The face used in the cross-curvature evaluation.
transf2 A transform to be applied to the face argument.

include <geometry.hxx>

SPAvector coedge_mid_curv ( COEDGE const *  coedge,
SPAtransf const &  transf = *(SPAtransf *) NULL_REF,
logical  nominal = TRUE 
)

Returns the curvature at the middle position of the EDGE underlying a COEDGE.



Role: The middle position is defined to be the position corresponding to the middle parameter of the edge's range. When nominal is set to FALSE and the coedge is a TCOEDGE, the curvature is taken from the TCOEDGE's 3D curve instead of from the EDGE curve.

Parameters:
coedge COEDGE to examine.
transf Transform to apply to the edge curvature.
nominal Use a TCOEDGE's 3D curve, if set to FALSE.

include <geometry.hxx>

SPAunit_vector coedge_mid_dir ( COEDGE const *  coedge,
SPAtransf const &  transf = *(SPAtransf *) NULL_REF,
logical  nominal = TRUE 
)

Returns the direction at the middle position of the EDGE underlying a COEDGE, or its negation.



Role: Returns the direction at the edge's middle position if the coedge's sense is FORWARD; otherwise, returns the negative of that direction. The middle position is defined to be the position corresponding to the middle parameter of the edge's range. When nominal is set to FALSE and the coedge is a TCOEDGE, the direction is taken from the TCOEDGE's 3D curve instead of from the EDGE curve.

Parameters:
coedge COEDGE to examine.
transf Transform to apply to the edge direction.
nominal Use a TCOEDGE's 3D curve, if set to FALSE.

include <geometry.hxx>

SPAunit_vector coedge_mid_norm ( COEDGE const *  coedge,
SPAtransf const &  transf1 = *(SPAtransf *) NULL_REF,
FACE const *  face = NULL,
SPAtransf const &  transf2 = *(SPAtransf *) NULL_REF 
)

Returns the direction of the normal of a FACE at the middle position of the EDGE underlyling a COEDGE.



Role: The middle position is defined to be the position corresponding to the middle parameter of the edge's range. If face is given, it is assumed that the COEDGE lies on it, and this face is used for evaluation of the normal; otherwise, the FACE owning the coedge's LOOP is used. If transf2 is given, it represents the transformation needed to translate the optional input face into the same coordinate system as that of the the untransformed COEDGE geometry. It should only be non-NULL if the optional face is given, and is used primarily by Boolean operations when testing a graph COEDGE against BODY faces.

Parameters:
coedge COEDGE to examine.
transf1 Transform to apply to the face normal.
face The face whose normal is desired.
transf2 A transform to be applied to the face argument.

include <geometry.hxx>

SPAunit_vector coedge_mid_outdir ( COEDGE const *  coedge,
SPAtransf const &  transf1 = *(SPAtransf *) NULL_REF,
FACE const *  face = NULL,
SPAtransf const &  transf2 = *(SPAtransf *) NULL_REF 
)

Returns the direction outwards from a surface at the middle position of the EDGE underlying a COEDGE.



Role: The middle position is defined to be the position corresponding to the middle parameter of the edge's range. If face is given, it is assumed that the COEDGE lies on it, and this face is used for evaluation of the normal; otherwise, the FACE owning the coedge's LOOP is used. If transf2 is given, it represents the transformation needed to translate the optional input face into the same coordinate system as that of the the untransformed COEDGE geometry. It should only be non-NULL if the optional face is given, and is used primarily by Boolean operations when testing a graph COEDGE against BODY faces.

The direction returned by this routine is usually the normal to the surface, but if the point is a singularity of the surface (like the apex of a cone or one apex of a degenerate torus), it just returns some direction guaranteed to point outwards from the surface (and not tangential, except in the case of a vortex).

Parameters:
coedge COEDGE to examine.
transf1 Transform to apply to the outward direction.
face The face whose surface's outward direction is desired.
transf2 A transform to be applied to the face argument. COEDGE geometry.

include <geometry.hxx>

SPAposition coedge_mid_pos ( COEDGE const *  coedge,
SPAtransf const &  transf = *(SPAtransf *) NULL_REF 
)

Returns the middle position of the of the EDGE underlying a COEDGE.



Role: The middle position is defined to be the position corresponding to the middle parameter of the edge's range.

Parameters:
coedge COEDGE to examine.
transf Transform to apply to the edge position.

include <geometry.hxx>

double coedge_min_radius_curv ( COEDGE const *  coedge  ) 

Returns the minimum radius of curvature of the EDGE underlying a COEDGE.

Parameters:
coedge COEDGE to examine.

include <geometry.hxx>

double coedge_param_cross ( COEDGE const *  coedge,
double  param,
SPAtransf const &  transf1 = *(SPAtransf *) NULL_REF,
FACE const *  face = NULL,
SPAtransf const &  transf2 = *(SPAtransf *) NULL_REF 
)

Returns the cross-curvature at a position on the EDGE underlying a COEDGE, given a parameter value.



Role: The parameter param is taken with respect to the coedge range. If face is given, it is assumed that the COEDGE lies on it, and this face is used for evaluation of the normal; otherwise, the FACE owning the coedge's LOOP is used. If transf2 is given, it represents the transformation needed to translate the optional input face into the same coordinate system as that of the the untransformed COEDGE geometry. It should only be non-NULL if the optional face is given, and is used primarily by Boolean operations when testing a graph COEDGE against BODY faces.

Cross-curvature refers to the curvature of the curve that is the intersection of the surface with a plane through the test point and normal to the coedge or edge direction, or to a given direction. By convention, where the intersection has a discontinuity of curvature, it is the value to the left of the test point, looking along the given direction with the surface normal upwards, which is returned. For edges, this convention can be reversed. In all cases, the curvature is positive if the surface is convex (that is, curves away from the outward normal) and negative if it is concave.

Parameters:
coedge COEDGE to examine.
param Parameter at which to evaluate.
transf1 A transform to be applied to the position and direction used for the evaluation.
face The face used in the cross-curvature evaluation.
transf2 A transform to be applied to the face argument.

include <geometry.hxx>

SPAvector coedge_param_curv ( COEDGE const *  coedge,
double  param,
SPAtransf const &  transf = *(SPAtransf *) NULL_REF,
logical  nominal = TRUE 
)

Returns the curvature on the EDGE underlying a COEDGE, given a parameter value.



Role: The parameter param is taken with respect to the coedge range. When nominal is set to FALSE and the coedge is a TCOEDGE, the curvature is taken from the TCOEDGE's 3D curve instead of from the EDGE curve.

Parameters:
coedge COEDGE to examine.
param Parameter to evaluate.
transf Transform to apply to the edge curvature.
nominal Use a TCOEDGE's 3D curve, if set to FALSE.

include <geometry.hxx>

SPAunit_vector coedge_param_dir ( COEDGE const *  coedge,
double  param,
SPAtransf const &  transf = *(SPAtransf *) NULL_REF,
logical  nominal = TRUE 
)

Returns the direction on the EDGE underlying a COEDGE, given a parameter value.



Role: Returns the edge direction if the coedge's sense is FORWARD; otherwise, returns the negative of this direction. The parameter param is taken with respect to the coedge range. When nominal is set to FALSE and the coedge is a TCOEDGE, the direction is taken from the TCOEDGE's 3D curve instead of from the EDGE curve.

Parameters:
coedge COEDGE to examine.
param Parameter at which to evaluate.
transf Transform to apply to the edge direction.
nominal Use a TCOEDGE's 3D curve, if set to FALSE.

include <geometry.hxx>

SPAunit_vector coedge_param_norm ( COEDGE const *  coedge,
double  param,
SPAtransf const &  transf1 = *(SPAtransf *) NULL_REF,
FACE const *  face = NULL,
SPAtransf const &  transf2 = *(SPAtransf *) NULL_REF 
)

Returns the direction of the normal of a FACE at a position on the EDGE underlying a COEDGE, given a parameter value.



Role: The parameter param is taken with respect to the coedge range. If face is given, it is assumed that the COEDGE lies on it, and this face is used for evaluation of the normal; otherwise, the FACE owning the coedge's LOOP is used. If transf2 is given, it represents the transformation needed to translate the optional input face into the same coordinate system as that of the the untransformed COEDGE geometry. It should only be non-NULL if the optional face is given, and is used primarily by Boolean operations when testing a graph COEDGE against BODY faces.

Parameters:
coedge COEDGE to examine.
param Parameter at which to evaluate.
transf1 Transform to apply to the face normal.
face The face whose normal is desired.
transf2 A transform to be applied to the face argument.

include <geometry.hxx>

SPAunit_vector coedge_param_outdir ( COEDGE const *  coedge,
double  param,
SPAtransf const &  transf1 = *(SPAtransf *) NULL_REF,
FACE const *  face = NULL,
SPAtransf const &  transf2 = *(SPAtransf *) NULL_REF 
)

Returns the direction outwards from a surface at a position on the EDGE underlying a COEDGE, given a parameter value.



Role: The parameter param is taken with respect to the coedge range. If face is given, it is assumed that the COEDGE lies on it, and this face is used for evaluation of the normal; otherwise, the FACE owning the coedge's LOOP is used. If transf2 is given, it represents the transformation needed to translate the optional input face into the same coordinate system as that of the the untransformed COEDGE geometry. It should only be non-NULL if the optional face is given, and is used primarily by Boolean operations when testing a graph COEDGE against BODY faces.

The direction returned by this routine is usually the normal to the surface, but if the point is a singularity of the surface (like the apex of a cone or one apex of a degenerate torus), it just returns some direction guaranteed to point outwards from the surface (and not tangential, except in the case of a vortex).

Parameters:
coedge COEDGE to examine.
param Parameter at which to evaluate.
transf1 Transform to apply to the outward direction.
face The face whose surface's outward direction is desired.
transf2 A transform to be applied to the face argument.

include <geometry.hxx>

SPAposition coedge_param_pos ( COEDGE const *  coedge,
double  param,
SPAtransf const &  transf = *(SPAtransf *) NULL_REF,
logical  nominal = FALSE 
)

Returns the position on the EDGE underlying a COEDGE, given a parameter value.



Role: The parameter param is taken with respect to the coedge range. When nominal is set to FALSE and the coedge is a TCOEDGE, the position is taken from the TCOEDGE's 3D curve instead of from the EDGE curve.

Parameters:
coedge COEDGE to examine
Parameter at which to evaluate.
transf Transform to apply to the edge position.
nominal Use a TCOEDGE's 3D curve, if set to FALSE.

include <geometry.hxx>

double coedge_start_cross ( COEDGE const *  coedge,
SPAtransf const &  transf1 = *(SPAtransf *) NULL_REF,
FACE const *  face = NULL,
SPAtransf const &  transf2 = *(SPAtransf *) NULL_REF 
)

Returns the cross-curvature at either the start or end of the EDGE underlying a COEDGE, depending upon the coedge's sense.



Role: Uses the edge's start position if the coedge sense is FORWARD; otherwise, uses the edge's end position. If face is given, it is assumed that the COEDGE lies on it, and this face is used for evaluation of the normal; otherwise, the FACE owning the coedge's LOOP is used. If transf2 is given, it represents the transformation needed to translate the optional input face into the same coordinate system as that of the the untransformed COEDGE geometry. It should only be non-NULL if the optional face is given, and is used primarily by Boolean operations when testing a graph COEDGE against BODY faces.

Cross-curvature refers to the curvature of the curve that is the intersection of the surface with a plane through the test point and normal to the coedge or edge direction, or to a given direction. By convention, where the intersection has a discontinuity of curvature, it is the value to the left of the test point, looking along the given direction with the surface normal upwards, which is returned. For edges, this convention can be reversed. In all cases, the curvature is positive if the surface is convex (that is, curves away from the outward normal) and negative if it is concave.

Parameters:
coedge COEDGE to examine.
transf1 A transform to be applied to the position and direction used for the evaluation.
face The face used in the cross-curvature evaluation.
transf2 A transform to be applied to the face argument.

include <geometry.hxx>

SPAvector coedge_start_curv ( COEDGE const *  coedge,
SPAtransf const &  transf = *(SPAtransf *) NULL_REF,
logical  nominal = TRUE 
)

Returns either the start or end curvature of the EDGE underlying a COEDGE, depending upon the coedge's sense.



Role: Returns the edge's start curvature if the coedge's sense is FORWARD; otherwise, returns the edge's end curvature. When nominal is set to FALSE and the coedge is a TCOEDGE, the curvature is taken from the TCOEDGE's 3D curve instead of from the EDGE curve.

Parameters:
coedge COEDGE to examine.
transf Transform to apply to the edge curvature.
nominal Use a TCOEDGE's 3D curve, if set to FALSE.

include <geometry.hxx>

SPAunit_vector coedge_start_dir ( COEDGE const *  coedge,
SPAtransf const &  transf = *(SPAtransf *) NULL_REF,
logical  nominal = TRUE 
)

Returns the direction at either the start or end of the EDGE underlying a COEDGE, depending upon the coedge's sense.



Role: Returns the edge's start direction if the coedge's sense is FORWARD; otherwise, returns the negative of the edge's end direction. When nominal is set to FALSE and the coedge is a TCOEDGE, the direction is taken from the TCOEDGE's 3D curve instead of from the EDGE curve.

Parameters:
coedge COEDGE to examine.
transf Transform to apply to the edge direction.
nominal Use a TCOEDGE's 3D curve, if set to FALSE.

include <geometry.hxx>

SPAunit_vector coedge_start_norm ( COEDGE const *  coedge,
SPAtransf const &  transf1 = *(SPAtransf *) NULL_REF,
FACE const *  face = NULL,
SPAtransf const &  transf2 = *(SPAtransf *) NULL_REF 
)

Returns the direction of the normal of a FACE at either the start or end of the EDGE underlying a COEDGE, depending upon the coedge's sense.



Role: Uses the edge's start position if the coedge sense is FORWARD; otherwise, uses the edge's end position. If face is given, it is assumed that the COEDGE lies on it, and this face is used for evaluation of the normal; otherwise, the FACE owning the coedge's LOOP is used. If transf2 is given, it represents the transformation needed to translate the optional input face into the same coordinate system as that of the the untransformed COEDGE geometry. It should only be non-NULL if the optional face is given, and is used primarily by Boolean operations when testing a graph COEDGE against BODY faces.

Parameters:
coedge COEDGE to examine.
transf1 Transform to apply to the face normal.
face The face whose normal is desired.
transf2 A transform to be applied to the face argument.

include <geometry.hxx>

SPAunit_vector coedge_start_outdir ( COEDGE const *  coedge,
SPAtransf const &  transf1 = *(SPAtransf *) NULL_REF,
FACE const *  face = NULL,
SPAtransf const &  transf2 = *(SPAtransf *) NULL_REF 
)

Returns the direction outwards from a surface at either the start or end of the EDGE underlying a COEDGE, depending upon the coedge's sense.



Role: Uses the edge's start position if the coedge sense is FORWARD; otherwise, uses the edge's end position. If face is given, it is assumed that the COEDGE lies on it, and this face is used for evaluation of the normal; otherwise, the FACE owning the coedge's LOOP is used. If transf2 is given, it represents the transformation needed to translate the optional input face into the same coordinate system as that of the the untransformed COEDGE geometry. It should only be non-NULL if the optional face is given, and is used primarily by Boolean operations when testing a graph COEDGE against BODY faces.

The direction returned by this routine is usually the normal to the surface, but if the point is a singularity of the surface (like the apex of a cone or one apex of a degenerate torus), it just returns some direction guaranteed to point outwards from the surface (and not tangential, except in the case of a vortex).

Parameters:
coedge COEDGE to examine.
transf1 Transform to apply to the outward direction.
face The face whose surface's outward direction is desired.
transf2 A transform to be applied to the face argument.

include <geometry.hxx>

double coedge_start_param ( COEDGE const *  coedge  ) 

Returns either the start or end parameter of the EDGE underlying a COEDGE, depending upon the coedge's sense.



Role: Returns the edge's start parameter if the coedge's sense is FORWARD; otherwise, returns the edge's end parameter.

Parameters:
coedge COEDGE to examine.

include <geometry.hxx>

SPAposition coedge_start_pos ( COEDGE const *  coedge,
SPAtransf const &  transf = *(SPAtransf *) NULL_REF 
)

Returns either the start or end position of the EDGE underlying a COEDGE, depending upon the coedge's sense.



Role: Returns the edge's start position if the coedge's sense is FORWARD; otherwise, returns the edge's end position.

Parameters:
coedge COEDGE to examine.
transf Transform to apply to the edge position.

include <geometry.hxx>

SPApar_pos coedge_uv_param ( COEDGE const *  coedge,
double  param,
SPAtransf const &  transf = *(SPAtransf *) NULL_REF 
)

Returns the surface u and v parameters for a given parameter on the EDGE underlying a COEDGE.



Role: The parameter param is taken with respect to the coedge range.

Parameters:
coedge COEDGE to examine.
param Parameter at which to evaluate.
transf A transform to be applied to the position used for the evaluation.

include <geometry.hxx>

double edge_end_cross ( EDGE const *  edge,
SPAtransf const &  transf1,
FACE const *  face,
SPAtransf const &  transf2 = *(SPAtransf *) NULL_REF,
logical  rhs_curv = FALSE,
pcurve const &  pcur = *(pcurve *) NULL_REF 
)

Returns the cross-curvature at the end of an EDGE.



Role: An input face must be supplied, since an edge may be associated with multiple faces. If transf2 is given, it represents the transformation needed to translate the input face into the same coordinate system as that of the edge. If the face's surface is parametric, and there exists a parametric curve (pcurve) for the input edge with respect to the surface, then the parametric curve should be passed as the argument pcur to speed up finding the normal.

Cross-curvature refers to the curvature of the curve that is the intersection of the surface with a plane through the test point and normal to the coedge or edge direction, or to a given direction. By convention, where the intersection has a discontinuity of curvature, it is the value to the left of the test point, looking along the given direction with the surface normal upwards, which is returned. For edges, this convention can be reversed. In all cases, the curvature is positive if the surface is convex (that is, curves away from the outward normal) and negative if it is concave.

Parameters:
edge EDGE to examine.
transf1 A transform to be applied to the position and direction used for the evaluation.
face The face used in the cross-curvature evaluation.
transf2 A transform to be applied to the face argument.
rhs_curv For cases of discontinuity, use the value to the right of the test point if TRUE.
pcur Parametric curve associated with edge and face.

include <geometry.hxx>

SPAvector edge_end_curv ( EDGE const *  edge,
SPAtransf const &  transf = *(SPAtransf *) NULL_REF 
)

Returns the curve curvature at the end parameter of an EDGE.

Parameters:
edge EDGE to examine.
transf Transform to apply to the edge curvature.

include <geometry.hxx>

SPAunit_vector edge_end_dir ( EDGE const *  edge,
SPAtransf const &  transf = *(SPAtransf *) NULL_REF 
)

Returns the direction at the end of an EDGE.

Parameters:
edge EDGE to examine.
transf Transform to apply to the edge direction.

include <geometry.hxx>

SPAunit_vector edge_end_norm ( EDGE const *  edge,
SPAtransf const &  transf1,
FACE const *  face,
SPAtransf const &  transf2 = *(SPAtransf *) NULL_REF,
pcurve const &  pcur = *(pcurve *) NULL_REF 
)

Returns the direction of the normal of a FACE at the end of an EDGE.



Role: An input face must be supplied, since an edge may be associated with multiple faces. If transf2 is given, it represents the transformation needed to translate the input face into the same coordinate system as that of the edge. If the face's surface is parametric, and there exists a parametric curve (pcurve) for the input edge with respect to the surface, then the parametric curve should be passed as the argument pcur to speed up finding the normal.

Parameters:
edge EDGE to examine.
transf1 Transform to apply to the face normal.
face FACE to be evaluated.
transf2 A transform to be applied to the face argument.
pcur Parametric curve associated with edge and face.

include <geometry.hxx>

SPAunit_vector edge_end_outdir ( EDGE const *  edge,
SPAtransf const &  transf1,
FACE const *  face,
SPAtransf const &  transf2 = *(SPAtransf *) NULL_REF,
pcurve const &  pcur = *(pcurve *) NULL_REF 
)

Returns the direction outwards from a surface at the end of an EDGE.



Role: An input face must be supplied, since an edge may be associated with multiple faces. If transf2 is given, it represents the transformation needed to translate the input face into the same coordinate system as that of the edge. If the face's surface is parametric, and there exists a parametric curve (pcurve) for the input edge with respect to the surface, then the parametric curve should be passed as the argument pcur to speed up finding the normal.

The direction returned by this routine is usually the normal to the surface, but if the point is a singularity of the surface (like the apex of a cone or one apex of a degenerate torus), it just returns some direction guaranteed to point outwards from the surface (and not tangential, except in the case of a vortex).

Parameters:
edge EDGE to examine.
transf1 Transform to apply to the outward direction.
face FACE to be evaluated.
transf2 A transform to be applied to the face argument.
pcur Parametric curve associated with edge and face.

include <geometry.hxx>

SPAposition edge_end_pos ( EDGE const *  edge,
SPAtransf const &  transf = *(SPAtransf *) NULL_REF 
)

Returns the position at the end of an EDGE.

Parameters:
edge EDGE to examine.
transf Transform to apply to the edge position.

include <geometry.hxx>

double edge_mid_cross ( EDGE const *  edge,
SPAtransf const &  transf1,
FACE const *  face,
SPAtransf const &  transf2 = *(SPAtransf *) NULL_REF,
logical  rhs_curv = FALSE,
pcurve const &  pcur = *(pcurve *) NULL_REF 
)

Returns the cross-curvature at the middle position of an EDGE.



Role: The middle position is defined to be the position corresponding to the middle parameter of the edge's range. An input face must be supplied, since an edge may be associated with multiple faces. If transf2 is given, it represents the transformation needed to translate the input face into the same coordinate system as that of the edge. If the face's surface is parametric, and there exists a parametric curve (pcurve) for the input edge with respect to the surface, then the parametric curve should be passed as the argument pcur to speed up finding the normal.

Cross-curvature refers to the curvature of the curve that is the intersection of the surface with a plane through the test point and normal to the coedge or edge direction, or to a given direction. By convention, where the intersection has a discontinuity of curvature, it is the value to the left of the test point, looking along the given direction with the surface normal upwards, which is returned. For edges, this convention can be reversed. In all cases, the curvature is positive if the surface is convex (that is, curves away from the outward normal) and negative if it is concave.

Parameters:
edge EDGE to examine.
transf1 A transform to be applied to the position and direction used for the evaluation.
face The face used in the cross-curvature evaluation.
transf2 A transform to be applied to the face argument.
rhs_curv For cases of discontinuity, use the value to the right of the test point if TRUE.
pcur Parametric curve associated with edge and face.

include <geometry.hxx>

SPAvector edge_mid_curv ( EDGE const *  edge,
SPAtransf const &  transf = *(SPAtransf *) NULL_REF 
)

Returns the curve curvature at the middle range parameter of an EDGE.



Role: The middle position is defined to be the position corresponding to the middle parameter of the edge's range.

Parameters:
edge EDGE to examine.
transf Transform to apply to the edge curvature.

include <geometry.hxx>

SPAunit_vector edge_mid_dir ( EDGE const *  edge,
SPAtransf const &  transf = *(SPAtransf *) NULL_REF 
)

Returns an EDGE's direction corresponding to the middle position of the EDGE's parameter range.



Role: The middle position is defined to be the position corresponding to the middle parameter of the edge's range.

Parameters:
edge EDGE to examine.
transf Transform to apply to the edge direction.

include <geometry.hxx>

SPAunit_vector edge_mid_norm ( EDGE const *  edge,
SPAtransf const &  transf1,
FACE const *  face,
SPAtransf const &  transf2 = *(SPAtransf *) NULL_REF,
pcurve const &  pcur = *(pcurve *) NULL_REF 
)

Returns the direction of the normal of a FACE at the middle position of an EDGE.



Role: The middle position is defined to be the position corresponding to the middle parameter of the edge's range. An input face must be supplied, since an edge may be associated with multiple faces. If transf2 is given, it represents the transformation needed to translate the input face into the same coordinate system as that of the edge. If the face's surface is parametric, and there exists a parametric curve (pcurve) for the input edge with respect to the surface, then the parametric curve should be passed as the argument pcur to speed up finding the normal.

Parameters:
edge EDGE to examine.
transf1 Transform to apply to the face normal.
face FACE to be evaluated.
transf2 A transform to be applied to the face argument.
pcur Parametric curve associated with edge and face.

include <geometry.hxx>

SPAunit_vector edge_mid_outdir ( EDGE const *  edge,
SPAtransf const &  transf1,
FACE const *  face,
SPAtransf const &  transf2 = *(SPAtransf *) NULL_REF,
pcurve const &  pcur = *(pcurve *) NULL_REF 
)

Returns the direction outwards from a surface at the middle position of an EDGE.



Role: The middle position is defined to be the position corresponding to the middle parameter of the edge's range. An input face must be supplied, since an edge may be associated with multiple faces. If transf2 is given, it represents the transformation needed to translate the input face into the same coordinate system as that of the edge. If the face's surface is parametric, and there exists a parametric curve (pcurve) for the input edge with respect to the surface, then the parametric curve should be passed as the argument pcur to speed up finding the normal.

The direction returned by this routine is usually the normal to the surface, but if the point is a singularity of the surface (like the apex of a cone or one apex of a degenerate torus), it just returns some direction guaranteed to point outwards from the surface (and not tangential, except in the case of a vortex).

Parameters:
edge EDGE to examine.
transf1 Transform to apply to the outward direction.
face FACE to be evaluated.
transf2 A transform to be applied to the face argument.
pcur Parametric curve associated with edge and face.

include <geometry.hxx>

SPAposition edge_mid_pos ( EDGE const *  edge,
SPAtransf const &  transf = *(SPAtransf *) NULL_REF 
)

Returns the middle position of an EDGE.



Role: The middle position is defined to be the position corresponding to the middle parameter of the edge's range.

Parameters:
edge EDGE to examine.
transf Transform to apply to the edge position.

include <geometry.hxx>

double edge_min_radius_curv ( EDGE const *  edge  ) 

Returns the minimum radius of curvature of an EDGE.

Parameters:
edge EDGE to examine.

include <geometry.hxx>

double edge_param_cross ( EDGE const *  edge,
double  param,
SPAtransf const &  transf1,
FACE const *  face,
SPAtransf const &  transf2 = *(SPAtransf *) NULL_REF,
logical  rhs_curv = FALSE,
pcurve const &  pcur = *(pcurve *) NULL_REF 
)

Returns the cross-curvature at at a position on an EDGE, given a parameter value.



Role: An input face must be supplied, since an edge may be associated with multiple faces. If transf2 is given, it represents the transformation needed to translate the input face into the same coordinate system as that of the edge. If the face's surface is parametric, and there exists a parametric curve (pcurve) for the input edge with respect to the surface, then the parametric curve should be passed as the argument pcur to speed up finding the normal.

Cross-curvature refers to the curvature of the curve that is the intersection of the surface with a plane through the test point and normal to the coedge or edge direction, or to a given direction. By convention, where the intersection has a discontinuity of curvature, it is the value to the left of the test point, looking along the given direction with the surface normal upwards, which is returned. For edges, this convention can be reversed. In all cases, the curvature is positive if the surface is convex (that is, curves away from the outward normal) and negative if it is concave.

Parameters:
edge EDGE to examine.
param Parameter at which to evaluate.
transf1 A transform to be applied to the position and direction used for the evaluation.
face The face used in the cross-curvature evaluation.
transf2 A transform to be applied to the face argument.
rhs_curv For cases of discontinuity, use the value to the right of the test point if TRUE.
pcur Parametric curve associated with edge and face.

include <geometry.hxx>

SPAvector edge_param_curv ( EDGE const *  edge,
double  param,
SPAtransf const &  transf = *(SPAtransf *) NULL_REF 
)

Returns the curve curvature at the give parameter of an EDGE.

Parameters:
edge EDGE to examine.
param Parameter at which to evaluate.
transf Transform to apply to the edge curvature.

include <geometry.hxx>

SPAunit_vector edge_param_dir ( EDGE const *  edge,
double  param,
SPAtransf const &  transf = *(SPAtransf *) NULL_REF 
)

Returns the direction on an EDGE corresponding to a specified parameter value.

Parameters:
edge EDGE to examine.
param Parameter at which to evaluate.
transf Transform to apply to the edge direction.

include <geometry.hxx>

SPAunit_vector edge_param_norm ( EDGE const *  edge,
double  param,
SPAtransf const &  transf1,
FACE const *  face,
SPAtransf const &  transf2 = *(SPAtransf *) NULL_REF,
pcurve const &  pcur = *(pcurve *) NULL_REF 
)

Returns the direction of the normal of a FACE at a position on an EDGE, given a parameter value.



Role: An input face must be supplied, since an edge may be associated with multiple faces. If transf2 is given, it represents the transformation needed to translate the input face into the same coordinate system as that of the edge. If the face's surface is parametric, and there exists a parametric curve (pcurve) for the input edge with respect to the surface, then the parametric curve should be passed as the argument pcur to speed up finding the normal.

Parameters:
edge EDGE to examine.
param Parameter at which to evaluate.
transf1 Transform to apply to the face normal.
face FACE to be evaluated.
transf2 A transform to be applied to the face argument.
pcur Parametric curve associated with edge and face.

include <geometry.hxx>

SPAunit_vector edge_param_outdir ( EDGE const *  edge,
double  param,
SPAtransf const &  transf1,
FACE const *  face,
SPAtransf const &  transf2 = *(SPAtransf *) NULL_REF,
pcurve const &  pcur = *(pcurve *) NULL_REF 
)

Returns the direction outwards from a surface at a position on an EDGE, given a parameter value.



Role: An input face must be supplied, since an edge may be associated with multiple faces. If transf2 is given, it represents the transformation needed to translate the input face into the same coordinate system as that of the edge. If the face's surface is parametric, and there exists a parametric curve (pcurve) for the input edge with respect to the surface, then the parametric curve should be passed as the argument pcur to speed up finding the normal.

The direction returned by this routine is usually the normal to the surface, but if the point is a singularity of the surface (like the apex of a cone or one apex of a degenerate torus), it just returns some direction guaranteed to point outwards from the surface (and not tangential, except in the case of a vortex).

Parameters:
edge EDGE to examine.
param Parameter at which to evaluate.
transf1 Transform to apply to the outward direction.
face FACE to be evaluated.
transf2 A transform to be applied to the face argument.
pcur Parametric curve associated with edge and face.

include <geometry.hxx>

SPAposition edge_param_pos ( EDGE const *  edge,
double  param,
SPAtransf const &  transf = *(SPAtransf *) NULL_REF 
)

Returns the position on an EDGE corresponding to a specified parameter value.

Parameters:
edge EDGE to examine.
param Parameter at which to evaluate.
transf Transform to apply to the edge position.

include <geometry.hxx>

double edge_start_cross ( EDGE const *  edge,
SPAtransf const &  transf1,
FACE const *  face,
SPAtransf const &  transf2 = *(SPAtransf *) NULL_REF,
logical  rhs_curv = FALSE,
pcurve const &  pcur = *(pcurve *) NULL_REF 
)

Returns the cross-curvature at the start of an EDGE.



Role: An input face must be supplied, since an edge may be associated with multiple faces. If transf2 is given, it represents the transformation needed to translate the input face into the same coordinate system as that of the edge. If the face's surface is parametric, and there exists a parametric curve (pcurve) for the input edge with respect to the surface, then the parametric curve should be passed as the argument pcur to speed up finding the normal.

Cross-curvature refers to the curvature of the curve that is the intersection of the surface with a plane through the test point and normal to the coedge or edge direction, or to a given direction. By convention, where the intersection has a discontinuity of curvature, it is the value to the left of the test point, looking along the given direction with the surface normal upwards, which is returned. For edges, this convention can be reversed. In all cases, the curvature is positive if the surface is convex (that is, curves away from the outward normal) and negative if it is concave.

Parameters:
edge EDGE to examine.
transf1 A transform to be applied to the position and direction used for the evaluation.
face The face used in the cross-curvature evaluation.
transf2 A transform to be applied to the face argument.
rhs_curv For cases of discontinuity, use the value to the right of the test point if TRUE.
pcur Parametric curve associated with edge and face.

include <geometry.hxx>

SPAvector edge_start_curv ( EDGE const *  edge,
SPAtransf const &  transf = *(SPAtransf *) NULL_REF 
)

Returns the curvature corresponding to the start parameter of an EDGE.

Parameters:
edge EDGE to examine.
transf Transform to apply to the edge curvature.

include <geometry.hxx>

SPAunit_vector edge_start_dir ( EDGE const *  edge,
SPAtransf const &  transf = *(SPAtransf *) NULL_REF 
)

Returns the direction at the start of an EDGE.

Parameters:
edge EDGE to examine.
transf Transform to apply to the edge direction.

include <geometry.hxx>

SPAunit_vector edge_start_norm ( EDGE const *  edge,
SPAtransf const &  transf1,
FACE const *  face,
SPAtransf const &  transf2 = *(SPAtransf *) NULL_REF,
pcurve const &  pcur = *(pcurve *) NULL_REF 
)

Returns the direction of the normal of a FACE at the start of an EDGE.



Role: An input face must be supplied, since an edge may be associated with multiple faces. If transf2 is given, it represents the transformation needed to translate the input face into the same coordinate system as that of the edge. If the face's surface is parametric, and there exists a parametric curve (pcurve) for the input edge with respect to the surface, then the parametric curve should be passed as the argument pcur to speed up finding the normal.

Parameters:
edge EDGE to examine.
transf1 Transform to apply to the face normal.
face FACE to be evaluated.
transf2 A transform to be applied to the face argument.
pcur Parametric curve associated with edge and face.

include <geometry.hxx>

SPAunit_vector edge_start_outdir ( EDGE const *  edge,
SPAtransf const &  transf1,
FACE const *  face,
SPAtransf const &  transf2 = *(SPAtransf *) NULL_REF,
pcurve const &  pcur = *(pcurve *) NULL_REF 
)

Returns the direction outwards from a surface at the start of an EDGE.



Role: An input face must be supplied, since an edge may be associated with multiple faces. If transf2 is given, it represents the transformation needed to translate the input face into the same coordinate system as that of the edge. If the face's surface is parametric, and there exists a parametric curve (pcurve) for the input edge with respect to the surface, then the parametric curve should be passed as the argument pcur to speed up finding the normal.

The direction returned by this routine is usually the normal to the surface, but if the point is a singularity of the surface (like the apex of a cone or one apex of a degenerate torus), it just returns some direction guaranteed to point outwards from the surface (and not tangential, except in the case of a vortex).

Parameters:
edge EDGE to examine.
transf1 Transform to apply to the outward direction.
face FACE to be evaluated.
transf2 A transform to be applied to the face argument.
pcur Parametric curve associated with edge and face.

include <geometry.hxx>

SPAposition edge_start_pos ( EDGE const *  edge,
SPAtransf const &  transf = *(SPAtransf *) NULL_REF 
)

Returns the position at the start of an EDGE.

Parameters:
edge EDGE to examine.
transf Transform to apply to the edge position.

include <geometry.hxx>

SPAunit_vector sg_get_face_normal ( FACE face,
const SPAposition p 
)

Calculate the normal to a face at a given SPAposition.

logical sg_get_face_par_box ( FACE this_face,
SPApar_box face_range 
)

This function determines a parameter space SPApar_box encompassing the given face.

It returns TRUE if the calculation was successful. Please note that in general this is not a minimal SPApar_box.

include <faceutil.hxx>