bs3_surface_sil
List of: Functions
Subjects: Construction Geometry, Spline Interface
Contents: Kernel

Action: Creates the silhouettes of the surface.

Prototype: surf_surf_int* bs3_surface_sil (


bs3_surface, // given surface


logical, // TRUE if surface is




// negated


view_spec const&, // view specification


SPAbox const& // region of interest


);

Includes: #include "kernel/acis.hxx"

#include "baseutil/logical.h"

#include "baseutil/vector/box.hxx"

#include "kernel/kernint/intsfsf/sfsfint.hxx"

#include "kernel/spline/bs3_srf/bs3surf.hxx"

#include "kernel/spline/bs3_srf/sp3srtn.hxx"

#include "intersct/kernint/makesil/makesil.hxx"

Description: Creates the silhouettes of the surface when viewed from the point or direction specified by the view_spec (defined in makesil/makesil.hxx).


The view_spec class contains the following information:


to_point is a position in object space, normally in the general neighborhood of the surface.


dir is the direction in object space from to_point to the view position, i.e., opposite to the view direction.


inv_dist is the reciprocal of the distance from to_point to the view position, along dir. This is zero for a parallel projection.


The results of this function are returned using the surf_surf_int class, but only some of the members are significant:


cur is a pointer to an ACIS curve that contains the object-space description of the intersection curve. In most cases this routine will construct an intcurve, but in special cases of parametric surfaces it may return straight lines or ellipses.


pcur1 is a pointer to parameter-space curves, specifying the curve in the parameter space of the surface.


start_term, start_param; If the curve starts at a branch-point (i.e., several silhouettes join there), start_term points to a surf_surf_term representing this phenomenon, and start_param gives its parameter value on this intersection curve. If not, start_term is NULL, and start_param undefined. Note that for a given point, all curve segments starting or ending there must point to the same surf_surf_term object, not to separate objects with the same position.


end_term, end_param; As for start_term, etc. but for the end of this curve.


nsplit, split_param; If this curve has more than one disjoint portion lying within the region of interest, split points must be provided which lie outside the region of interest and divide the curve into portions, each of which has at most one segment within the region of interest. These points are defined by an ordered sequence of parameter values.


left_surf_rel[0], right_surf_rel[0]; The visibility of the surface on either side of the curve. If the surface normal on the appropriate side of the curve points away from the view point (i.e., has a positive dot product with the view direction), the relationship is outside, otherwise inside. In this context, left and right are as viewed in the direction of the curve, with the surface normal upwards.


pcur2, left_surf_rel[1], right_surf_rel[1], int_type, aux_surf, and aux_left_rel[ ] are not used.

Library: kernel

Filename: kern/kernel/spline/bs3_srf/sp3srtn.hxx

Effect: Changes model
PDF/KERN/23FN3S3.PDF
HTM/DATA/KERN/KERN/23FN3S3/0014.HTM