var_cross_section
List of: Classes
Subjects: Blending, SAT Save and Restore
Contents: Kernel

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
PDF/KERN/39CLU.PDF
HTM/DATA/KERN/KERN/39CLU/0003.HTM