|
Sometimes it is beneficial to make a curve or surface smaller without losing the underlying definition. Intersection algorithms can be more efficient and faster if they limit their search to a subset of the underlying geometry.
|
|
|
Curve and surface subsetting provides a solution. Class methods are provided to construct a subsetted curve or surface, change its subset, or revert to the original underlying curve or surface definition.
|
|
|
Subsetting Option
|
|
|
The option
subsetting allows specification of the level of subsetting when trimming. This enables the use of the same underlying
spl_sur for different faces. This provides a minor performance enhancement and a reduction in the size of SAT files.
|
|
|
Isoparameter Curves
|
|
|
If a surface is subsetted, it does not span the entire range of the underlying, defining surface. Isoparameter curves on such a subset surface should not span the entire defining surface either. The methods to generate isoparameter curves on
sum_spl_surs take this reduced range into consideration.
|
|
|
Face Merging
|
|
|
When subsetted surfaces are merged, the new subset range (of the surface underlying the newly created, merged face) is the union of the two previous subset ranges. When determining if an edge lies on a seam of a subsetted, closed surface, the determination is made as if the surface were not subsetted.
|
|
|
Parameter Values on Subset Intcurves
|
|
|
If an intcurve is closed, there are two valid parameter values for a position on the seam of the curve. If the curve is subsetted such that one of the ends is not in the subset range, then there is only one valid parameter value. The method
intcurve::param returns the corrected parameter value when the intcurve has been subsetted in this manner.
|