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

Purpose: Defines a two-ends form of a variable radius function.

Derivation: var_rad_two_ends : var_radius : ACIS_OBJECT : -

SAT Identifier: "two_ends"

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

Description: This class defines a variable radius function that varies linearly between two end values.

Constructor: public: var_rad_two_ends::var_rad_two_ends ();


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






public: var_rad_two_ends::var_rad_two_ends (


double start_rad, // start radius


double end_rad // end radius


);


C++ initialize constructor requests memory for this object and populates it with the data supplied as arguments.






public: var_rad_two_ends::var_rad_two_ends (


var_rad_two_ends 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_rad_two_ends::~var_rad_two_ends ();


C++ destructor, deleting a var_rad_two_ends.



Methods: public: virtual void var_rad_two_ends::append (


var_radius& // variable radius


);


Appends the given var_radius.






public: virtual var_radius* var_rad_two_ends::copy (


void // pointer to data


) const;


Copies a var_rad_two_ends.






public: virtual void var_rad_two_ends::debug (


const char* leader, // leader string


FILE* fp // file pointer



= debug_file_ptr


) const;


Outputs a title line and information about var_rad_two_ends to the debug file or to the specified file.






public: virtual double


var_rad_two_ends::end_deriv1 () const;


Returns the first derivative at the end parameter.






public: double var_rad_two_ends::end_rad () const;


Returns the end radius datum.






public: virtual double


var_rad_two_ends::end_radius () const;


Returns the radius at the end parameter.






public: virtual void var_rad_two_ends::eval (


double v_param, // point


double* val // variable radius



= NULL,


double* der1 // first derivative



= NULL,


double* der2 // second derivative



= NULL,


double* der3 // third derivative



= NULL


) const;


Evaluate a variable radius at a given parameter value.






public: virtual int var_rad_two_ends::form () const;


Returns the form TWO_ENDS.






public: virtual logical


var_rad_two_ends::implicit_var_radius () const;


Returns FALSE for a var_rad_two_ends.






public: virtual logical


var_rad_two_ends:: is_constant (


double* const_rad_value // tolerance


) const;


Determines whether the input is constant.






public: virtual logical var_rad_two_ends::is_zero (


double eps // 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_rad_two_ends::make_bs2 () const;


Returns a bs2_curve representation of this radius function.






public: virtual void var_rad_two_ends::negate ();


Reverses this variable radius, front to back.






public: virtual logical


var_rad_two_ends::operator!= (


var_radius const& other // variable radius


) const;


Determines whether a var_rad_two_ends and a var_radius are not equal.






public: virtual void var_rad_two_ends::operator*= (


SPAtransf const& // transformation


);


Transforms the var_rad_two_ends by the given transformation.






public: virtual logical


var_rad_two_ends::operator== (


var_radius const& other // variable radius


) const;


Implements an assignment operator, which tests to see if a .var_rad_two_ends is equal to a var_radius






public: virtual void


var_rad_two_ends::restore_data ();


Restore the data for a var_rad_two_ends from a save file.


var_radius::restore_data Generic information

read_real start radius data

read_real


end radius data






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


Calls var_radius save_data method, then saves the start and end radius data.






public: void var_rad_two_ends::set_end_rad (


double new_rad // new radius


);


Sets a new value for the end radius.






public: void var_rad_two_ends::set_start_rad (


double new_rad // new radius


);


Sets a new value for the start radius.






public: virtual void var_rad_two_ends::split (


double param, // point of split


var_radius* pieces[2] // array of 2 var_radii


);


Splits a var_rad_two_ends into two pieces at the given point.






public: virtual double


var_rad_two_ends::start_deriv1 () const;


Returns the first derivative at the start parameter.






public: double var_rad_two_ends::start_rad () const;


Returns the start radius datum.






public: virtual double


var_rad_two_ends::start_radius () const;


Returns the radius at the start parameter.






public: virtual void


var_rad_two_ends::trim_to_range (


SPAinterval // interval


);


Trims the radius to the given interval.






public: virtual char const*


var_rad_two_ends::type_name () const;


Returns the string "two_ends".






public: virtual logical


var_rad_two_ends::zero_end_deriv1 (


logical, // at start point if true


double tol // tolerance



= SPAresabs


) const;


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






public: virtual logical


var_rad_two_ends::zero_end_radius (


logical at_start, // at start point if true


double tol // tolerance



= SPAresabs


) const;


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




Related Fncs: bs2_radius_is_zero
PDF/KERN/39CLU.PDF
HTM/DATA/KERN/KERN/39CLU/0008.HTM