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

Purpose: Defines the variable radius.

Derivation: var_radius : ACIS_OBJECT : -

SAT Identifier: var_radius

Filename: kern/kernel/sg_husk/vrbln/var_rad.hxx

Description: This class defines a variable radius. Start and end parameters must always be set to something reasonable, even if it's not calibrated. The parameter range of an edge being blended is reasonable.

References: by KERN blend_spl_sur, var_cross_section

Constructor: public: var_radius::var_radius ();


C++ allocation constructor requests memory for this object but does not populate it.






public: var_radius::var_radius (


var_radius const& old // old


);


C++ copy constructor requests memory for this object and populates it with the data from the object supplied as an argument.




Destructor: public: virtual var_radius::~var_radius ();


C++ destructor, deleting a var_radius.



Methods: public: virtual void var_radius::append (


var_radius& // variable radius


);


Appends one variable radius to the specified variable radius.






public: logical var_radius::calibrated (


void // pointer to data


) const;


Returns TRUE if the ends are calibrated; otherwise, it returns FALSE.






public: virtual void var_radius::calibrate_radius (


double t0, // start parameter


double t1 // end parameter


);


Calibrates the variable radius between the two given parameters.






public: virtual var_radius* var_radius::copy (


void // pointer to data


) const = 0;


Copies a variable radius.






public: virtual void var_radius::debug (


const char* leader, // leader string


FILE* fp // file pointer



= debug_file_ptr


) const;


Writes debug information about the variable radius to either standard output or to the specified file.






public: virtual double var_radius::end_deriv1 (


) const;


Returns the first derivative at the end parameter.






public: virtual double


var_radius::end_radius () const;


Returns the end radius.






public: virtual void var_radius::eval (


double v_param, // parameter value


double* val // value



= NULL,


double* der1 // first derivative



= NULL,


double* der2 // second derivative



= NULL,


double* der3 // third derivative



= NULL // initializer


) const;


Evaluates a variable radius at a given parameter value.






public: virtual logical


var_radius::explicit_var_radius () const;


Returns TRUE if the radius function is an explicit function of v; i.e. whether it can be evaluated independently of the blend surface.






public: virtual int var_radius::form () const = 0;


Returns the radius form.






public: virtual logical


var_radius::implicit_var_radius () const;


Returns TRUE if the radius function is not an explicit function of v; i.e. if the blend surface must be evaluated in order to calculate the radius value at a given v-parameter






public: virtual logical var_radius::is_constant (


double* radius_value // tolerance


) const = 0;


Determines whether or not the radius is constant.






public: virtual logical var_radius::is_zero (


double // zero tolerance


) const;


Returns TRUE if a radius function is zero everywhere, to within a given tolerance; otherwise, it returns FALSE.






public: virtual bs2_curve


var_radius::make_bs2 () const;


Returns a bs2_curve representation of this radius function.






public: virtual void var_radius::negate ();


Reverses this variable radius, front to back.






public: virtual logical var_radius::operator!= (


var_radius const& other // variable radius


) const;


Determines whether two variable radii are not equal.






public: virtual void var_radius::operator*= (


SPAtransf const& // transformation


);


Transforms the variable radius by the given transformation.






public: virtual logical var_radius::operator== (


var_radius const& other // variable radius


) const;


Implements an assignment operator, which makes a copy of a var_radius.






public: SPAinterval var_radius::param_range (


void // pointer to data


) const;


Returns the parameter range.






public: virtual void var_radius::reparam (


double start, // start parameter


double end // end parameter


);


Reparameterizes the variable radius with new start and end parameter values.






public: virtual void var_radius::restore_data ();


Restore the data for a var_radius from a save file.


read_logical The two ends calibrated variable. Either "uncalibrated" or "calibrated".

read_real The radius starting parameter.

read_real


The radius ending parameter






public: virtual void var_radius::save () const;


Saves the version number and calls save_data.






public: void var_radius::save_data () const;


Save the information for the var_radius to a save file.






public: void var_radius::set_end_param (


double new_param // end parameter


);


Sets the end parameter.






public: void var_radius::set_start_param (


double new_param // start parameter


);


Sets the start parameter.






public: virtual void var_radius::shift (


double // shift delta


);


Shifts the variable radius by the given value.






public: virtual void var_radius::split (


double param, // parameter value


var_radius* pieces[2] // the two pieces


);


Splits a variable radius into two pieces.






public: virtual double


var_radius::start_deriv1 () const;


Returns the first derivative at the start parameter.






public: virtual double


var_radius::start_radius () const;


Returns the start radius.






public: virtual void var_radius::trim_to_range (


SPAinterval // interval


);


Trims the variable radius to the specified range.






public: virtual char const*


var_radius::type_name () const = 0;


Returns the string "var_radius".






public: virtual


void var_radius::uncalibrate_radius ();


Un-calibrates the radius function(s).






public: virtual logical var_radius::zero_end_deriv1 (


logical at_start, // at start point if true


double tol // tolerance



= SPAresabs


) const = 0;


Returns TRUE if the first derivative at the start or end point of the var_radius is zero (i.e., less than SPAresabs).






public: virtual logical var_radius::zero_end_radius ( logical at_start, // at start point if true


double tol // tolerance



= SPAresabs


) const = 0;


Returns TRUE if the radius at the start or end point of the var_radius is zero (i.e., less than SPAresabs).




Related Fncs: bs2_radius_is_zero, restore_radius, var_radius_connect
PDF/KERN/39CLU.PDF
HTM/DATA/KERN/KERN/39CLU/0004.HTM