Purpose:
|
Evaluates the cross section of a blend surface.
|
|
Derivation:
|
var_cross_section : ACIS_OBJECT : -
|
|
Filename:
|
kern/kernel/sg_husk/vrbln/blnd_sec.hxx
|
|
Description:
|
The cross section of a blend surface corresponds to the
u-parameter of the surface. When evaluating the surface, a slice is taken at the given
v-parameter, and then that slice is evaluated at the
u-parameter.
|
|
|
During the initial construction of the blend surface geometry, the cross section is irrelevant. It first comes into play when the blend surface is intersected with other faces.
|
|
|
Only circular cross sections are available in standard blending. The
Advanced Blending Component allows other other shapes
|
|
|
var_cross_section objects do not shift, split, append, or transform. Parameterization runs from 0 to 1, and that covers the whole section.
|
|
References:
|
KERN
|
var_radius
|
|
by KERN
|
blend_spl_sur
|
|
Data:
|
protected cross_section_forms form_data;
|
|
Form of the cross section.
|
|
|
protected double left_thumb_data;
|
|
Left thumbweight.
|
|
|
protected double right_thumb_data;
|
|
Right thumbweight.
|
|
|
protected var_radius *rnd_height;
|
|
Height (bulge) of a rounded-chamfer cross section.
|
|
Constructor:
|
public: var_cross_section::var_cross_section
(
|
|
|
cross_section_forms const
|
// cross section form
|
|
|
|
new_form
|
|
// form
|
|
|
|
= CIRCULAR
|
|
|
);
|
|
|
C++ initialize constructor requests memory for this object and populates it with the data supplied as arguments.
|
|
|
|
|
|
|
public: var_cross_section::var_cross_section
(
|
|
|
cross_section_forms form,
|
// cross section form
|
|
|
double arg1,
|
|
// new left
|
|
|
|
|
|
// thumbweight
|
|
|
double arg2
|
|
// new right
|
|
|
|
|
|
// thumbweight
|
|
|
|
= -1.0
|
|
|
);
|
|
|
C++ initialize constructor requests memory for this object and populates it with the data supplied as arguments.
|
|
|
C++ constructor, creating a
var_cross_section using the specified parameters.
|
|
|
|
|
|
|
public: var_cross_section::var_cross_section
(
|
|
|
var_cross_section const&
|
|
// var_cross_section
|
|
|
|
old_section
|
|
// old section
|
|
|
);
|
|
|
C++ copy constructor requests memory for this object and populates it with the data from the object supplied as an argument.
|
|
|
|
|
Destructor:
|
public: var_cross_section::~var_cross_section
();
|
|
|
C++ destructor, deleting a
var_cross_section.
|
|
|
|
Methods:
|
public: void var_cross_section::calibrate_v_params
(
|
|
|
double t0,
|
// start parameter
|
|
|
double t1
|
// end parameter
|
|
|
);
|
|
|
Calibrate the
v-parameters of a
var_cross_section object to the given parameter range. This only applies to cross-sections that vary with the
v-parameter of the blend.
|
|
|
|
|
|
|
public: var_radius*
|
|
|
var_cross_section::chamfer_round_height () const;
|
|
|
Returns the round height function of a rounded chamfer cross section, which is stored as a
var_radius object. It just returns the pointer, without copying.
|
|
|
|
|
|
|
public: bl_continuity
|
|
|
var_cross_section::continuity () const;
|
|
|
Returns a measure of continuity at the ends.
|
|
|
|
|
|
|
public: void var_cross_section::debug
(
|
|
|
char* leader,
|
// title line
|
|
|
FILE* fp
|
// file pointer
|
|
|
|
= debug_file_ptr
|
|
|
) const;
|
|
|
Writes information about the
var_cross_section to the debug file or to the specified file.
|
|
|
|
|
|
|
public: cross_section_forms
|
|
|
var_cross_section::form () const;
|
|
|
Returns the
form_data about the
var_cross_section.
|
|
|
|
|
|
|
public: logical var_cross_section::is_circular
(
|
|
|
) const;
|
|
|
Determines if the
var_cross_section is circular.
|
|
|
|
|
|
|
public: double
|
|
|
var_cross_section::left_thumb () const;
|
|
|
Returns the left thumbweight of the
var_cross_section.
|
|
|
|
|
|
|
public: logical var_cross_section::operator!=
(
|
|
|
var_cross_section const& other
|
// var_cross_sec
|
|
|
) const;
|
|
|
Determines whether two variable cross sections are not equal.
|
|
|
|
|
|
|
public: virtual void var_cross_section::operator*=
(
|
|
|
SPAtransf const&
|
// transform
|
|
|
);
|
|
|
Performs the transform operator.
|
|
|
|
|
|
|
public: logical var_cross_section::operator==
(
|
|
|
var_cross_section const& other
|
// var_cross_sec
|
|
|
) const;
|
|
|
Implements an assignment operator, which makes a copy of a
var_cross_section.
|
|
|
|
|
|
|
public: void var_cross_section::restore_data
();
|
|
|
Restore the data for a
var_cross_section from a save file.
|
|
|
read_enum
|
Cross section form
|
|
if ( form_data == CIRCULAR )
|
|
else if ( form_data == THUMBWEIGHTS )
|
|
read_real
|
left thumb data
|
|
read_real
|
right thumb data
|
|
else if ( form_data == RND_CHAMFER )
|
|
read_logical
|
Either "no_radius" or "radius"
|
|
if (rad_is_there)
|
|
|
|
|
var_radius * restore_radius
|
round height specification
|
|
|
|
|
|
|
public: void var_cross_section::reverse
();
|
|
|
Reverses the left-to-right properties of an asymmetric blend.
|
|
|
|
|
|
|
public: double
|
|
|
var_cross_section::right_thumb () const;
|
|
|
Returns the right thumbweight of the
var_cross_section.
|
|
|
|
|
|
|
public: void var_cross_section::save
() const;
|
|
|
Saves the form data and thumb data.
|
|
|
|
|
|
|
public: void
|
|
|
var_cross_section::uncalibrate_v_params ();
|
|
|
Un-calibrate
v-parameters, for a variable section.
|
|
Internal Use:
|
full_size
|
|
|
|
|
Related Fncs:
|
restore_cross_section
|