Home

surf_surf_int Class Reference
[Intersector Functionality]

Represents the intersection of two face surfaces and returns zero or more curves. More...

#include <sfsfint.hxx>

Inheritance diagram for surf_surf_int:

Inheritance graph
[legend]
Collaboration diagram for surf_surf_int:

Collaboration graph
[legend]

List of all members.

Public Member Functions

void debug (FILE *fp=debug_file_ptr) const
 Writes debug information about surf_surf_int to the printer or to the specified file.
 surf_surf_int (SPAposition const &pos, surf_surf_int *nextint=NULL)
 C++ initialize constructor requests memory for this object and populates it with the data supplied as arguments.
 surf_surf_int (curve *cur, surf_surf_int *inter=NULL, surf_surf_term *term1=NULL, surf_surf_term *term2=NULL)
 C++ initialize constructor requests memory for this object and populates it with the data supplied as arguments.
 ~surf_surf_int ()
 C++ destructor, deleting a surf_surf_int.

Public Attributes

surf_surf_rel aux_left_rel [2]
 For each of the surfaces, it specifies the relationship surf_surf_rel on the left side of the intersection curve to the auxiliary surface.
surfaceaux_surf
 Normally NULL, this points to a surface containing the intersection curve.
curvecur
 Intersecting curve from the face-face coincidence, and it may be NULL.
double end_param
 The parameter value of end_point, which is meaningless if the end_point is NULL.
surf_surf_term * end_term
 The terminator point at the end of the curve.
surf_int_type int_type
 The classification of the intersection type surf_int_type .
surf_int_type left_int_type [2]
 Intersection type surf_int_type with respect to other face of the portions of each face to the left of the intersection curve.
surf_surf_rel left_surf_rel [2]
 The relationships surf_surf_rel with respect to the other face of the portions of each face to the left of the intersection curve.
surf_surf_intnext
 Next surface-surface intersection.
int nsplit
 The number of values in the array split_param.
pcurvepcur1
 The first pcurve, it provides the parametric-space intersection curve with respect to the intersection surfaces, if they are parametric.
pcurvepcur2
 The second pcurve, it provides the parametric-space intersection curve with respect to the intersection surfaces, if they are parametric.
surf_int_type right_int_type [2]
 Intersection type surf_int_type with respect to other face of the portions of each face to the left of the intersection curve.
surf_surf_rel right_surf_rel [2]
 The relationships surf_surf_rel with respect to the other face of the portions of each face to the left of the intersection curve.
double * split_param
 The terminator point at the start of the curve.
double start_param
 The parameter value of start_point, which is meaningless if the start_point is NULL.
surf_surf_term * start_term
 The terminator point at the start of the curve.


Detailed Description

Represents the intersection of two face surfaces and returns zero or more curves.



Role: This class holds the details of the intersection of two FACE surfaces and returns zero or more curves. Every EDGE of each FACE is assumed to have been intersected with the other surface, so the intersection points may be used to assist (for example, if the surfaces are parametric).

See also:
intcurve, curve, pcurve, surface

Constructor & Destructor Documentation

surf_surf_int::surf_surf_int ( curve cur,
surf_surf_int inter = NULL,
surf_surf_term *  term1 = NULL,
surf_surf_term *  term2 = NULL 
)

C++ initialize constructor requests memory for this object and populates it with the data supplied as arguments.



Role: The default type is normal, and the relationships are suitable for the conventional curve direction being the cross products of the surface normals in the given order.

Parameters:
cur curve
inter surf-surf intersection
term1 surf-surf termination
term2 surf-surf termination

surf_surf_int::surf_surf_int ( SPAposition const &  pos,
surf_surf_int nextint = NULL 
)

C++ initialize constructor requests memory for this object and populates it with the data supplied as arguments.


Role: Constructor for an intersection curve representing an isolated point. The default type is normal and the relationships are set to unknown.

Parameters:
pos position
nextint nest surf-surf intersection

surf_surf_int::~surf_surf_int (  ) 

C++ destructor, deleting a surf_surf_int.


Member Function Documentation

void surf_surf_int::debug ( FILE *  fp = debug_file_ptr  )  const

Writes debug information about surf_surf_int to the printer or to the specified file.

Parameters:
fp file name


Member Data Documentation

For each of the surfaces, it specifies the relationship surf_surf_rel on the left side of the intersection curve to the auxiliary surface.



Role: Because this is always a clean "inside" or "outside," the right relationship is always the converse, so it does not need to be recorded.

Normally NULL, this points to a surface containing the intersection curve.



Role: It is roughly perpendicular to the subject surfaces if they are tangential or near tangential, which allows for clean intersections with the edges of the faces.

Intersecting curve from the face-face coincidence, and it may be NULL.



Role: In this case, all face-body relationships are either surf_symmetric or surf_antisymmetric, and this is the only CURVE_LIST record in the list.

The parameter value of end_point, which is meaningless if the end_point is NULL.

surf_surf_term* surf_surf_int::end_term

The terminator point at the end of the curve.



Role: It is NULL if the curve is not bounded at the end.

The classification of the intersection type surf_int_type .

Intersection type surf_int_type with respect to other face of the portions of each face to the left of the intersection curve.



Role: Only used for mesh surface intersections (otherwise the single int_type above is sufficient). Set to int_unknown if not used.

The relationships surf_surf_rel with respect to the other face of the portions of each face to the left of the intersection curve.

Next surface-surface intersection.

The number of values in the array split_param.



Role: This is 0 if split_param is NULL.

The first pcurve, it provides the parametric-space intersection curve with respect to the intersection surfaces, if they are parametric.



Role: It may be NULL even if cur is not NULL.

The second pcurve, it provides the parametric-space intersection curve with respect to the intersection surfaces, if they are parametric.



Role: It may be NULL even if cur is not NULL.

Intersection type surf_int_type with respect to other face of the portions of each face to the left of the intersection curve.



Role: Only used for mesh surface intersections (otherwise the single int_type above is sufficient). Set to int_unknown if not used.

The relationships surf_surf_rel with respect to the other face of the portions of each face to the left of the intersection curve.

The terminator point at the start of the curve.



Role: It is NULL if the curve is not bounded at the start. An array of parameter values flagging bounded regions of the curve where it lies outside the region of interest. Each value is a typical parameter value within the portion outside the SPAbox. If no SPAbox was specified, or the intersection curve lies wholly within the SPAbox, or it is unbounded but only enters the SPAbox in one SPAinterval, then this pointer is NULL. Otherwise it must point to an array on the heap.

The parameter value of start_point, which is meaningless if the start_point is NULL.

surf_surf_term* surf_surf_int::start_term

The terminator point at the start of the curve.



Role: It is NULL if the curve is not bounded at the start.