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

Purpose: Defines a rotational radius ellipse for a variable radius function.

Derivation: var_rad_rot_ellipse : var_radius : ACIS_OBJECT : -

SAT Identifier: "elliptical"

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

Description: Defines a rotational radius ellipse for a variable radius function.

Constructor: public: var_rad_rot_ellipse::var_rad_rot_ellipse (


double start_maj, // start major


double end_maj, // end major


double start_min, // start minor


double end_min, // end minor


double start_rot, // start rotation


double end_rot, // end rotation


logical left_face_is_ref // left face


);


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






public: var_rad_rot_ellipse::var_rad_rot_ellipse (


var_rad_rot_ellipse const& old // old


);


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






public: var_rad_rot_ellipse::var_rad_rot_ellipse (


void // void


);


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




Destructor: public: virtual


var_rad_rot_ellipse::~var_rad_rot_ellipse ();


C++ destructor, deleting a var_rad_rot_ellipse.



Methods: public: virtual void var_rad_rot_ellipse::append (


var_radius& // variance radius


);


Append the var_rad_rot_ellipse.






public: virtual var_radius*


var_rad_rot_ellipse::copy (


void // parameter


) const;


Copy the var_rad_rot_ellipse.






public: virtual void var_rad_rot_ellipse::debug (


const char* leader, // leader


FILE* fp // file



= debug_file_ptr


) const;


Prints out a class-specific identifying line to standard output or to the specified file.






public: virtual double


var_rad_rot_ellipse::end_deriv1 () const;


Return the end derivative.






public: double var_rad_rot_ellipse::end_maj () const;


Return the end major.






public: double var_rad_rot_ellipse::end_min () const;


Return the end minor.






public: virtual double


var_rad_rot_ellipse::end_radius () const;


Return the end radius.






public: double var_rad_rot_ellipse::end_rot () const;


Return the end rotation.






public: virtual void var_rad_rot_ellipse::eval (


double v_param, // v-parameter


double* val // value



= NULL,


double* der1 // 1st derivatives



= NULL,


double* der2 // 2nd derivatives



= NULL,


double* der3 // 3rd derivatives



= NULL


) const;


Finds the position of the 1st, 2nd, and 3rd derivatives.






public: virtual void var_rad_rot_ellipse::eval (


double v_param, // v-parameter


logical is_left, // is left


double* val // value



= NULL,


double* der1 // 1st derivatives



= NULL,


double* der2 // 2nd derivatives



= NULL,


double* der3 // 3rd derivatives



= NULL


) const;


Finds the position of the 1st, 2nd, and 3rd derivatives.






public: void var_rad_rot_ellipse::eval_all (


double param, // parameter


int n_derivs, // n derivatives


double left_rad[4], // left radius


double right_rad[4], // right radius


double left_tbw[4], // left thumbweight


double right_tbw[4] // right thumbweight


) const;


Returns the position of all the evaluators.






public: virtual int


var_rad_rot_ellipse::form () const;


Return a var_rad_rot_ellipse form.






public: virtual logical var_rad_rot_ellipse::


implicit_var_radius () const;


Determines if implicit.








public: virtual logical


var_rad_rot_ellipse:: is_constant (


double* const_rad_value // tolerance


) const;


Determines whether the input is constant.






public: virtual logical


var_rad_rot_ellipse::is_zero (


double eps // zero tolerance


) const;


Returns TRUE the two var_rad_rot_ellipse are zero; otherwise, it returns FALSE.






public: virtual bs2_curve


var_rad_rot_ellipse::make_bs2 () const;


Returns a bs2_curve representation of this radius function.






public: virtual void var_rad_rot_ellipse::negate ();


Reverses this variable radius, front to back.






public: virtual logical


var_rad_rot_ellipse::operator!= (


var_radius const& other // other var_radius


) const;


Determines whether a var_rad_rot_ellipse is equal.






public: virtual void


var_rad_rot_ellipse::operator*= (


SPAtransf const& // transformation


);


Transforms the variable radius by the specified transform.






public: virtual logical


var_rad_rot_ellipse::operator== (


var_radius const& other // other var_radius


) const;


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






public: logical var_rad_rot_ellipse::


ref_is_left () const;


Returns TRUE if the given reference is from the left; otherwise, it returns FALSE.






public: virtual void


var_rad_rot_ellipse::restore_data ();


Restore the data for a var_rad_rot_ellipse from a save file.


read_real Start major radius

read_real End major radius

read_real Start minor radius

read_real End minor radius

read_real Start rotation angle

read_real End rotation angle

read_logical


Face for reference. Either "right" or "left"






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


Saves the form or id, calls save_data, saves the major radius, minor radius, rotation, and face left or right.






public: void var_rad_rot_ellipse::set_end_maj (


double new_maj1 // new major


);


Set end major.






public: void var_rad_rot_ellipse::set_end_min (


double new_min1 // new minor


);


Set end minor.






public: void var_rad_rot_ellipse::set_end_rot (


double new_rot1 // new rotation


);


Set end rotation.






public: void var_rad_rot_ellipse::set_ref_face (


logical new_left // new left


);


Sets the referenced face.






public: void var_rad_rot_ellipse::set_start_maj (


double new_maj0 // new major


);


Set the start major.






public: void var_rad_rot_ellipse::set_start_min (


double new_min0 // new minor


);


Set the start minor.






public: void var_rad_rot_ellipse::set_start_rot (


double new_rot0 // new rotation


);


Set the start rotation.






public: virtual void var_rad_rot_ellipse::split (


double param, // parameter


var_radius* pieces[2] // pieces


);


Return the split.






public: virtual double


var_rad_rot_ellipse::start_deriv1 () const;


Return the start derivative.






public: double var_rad_rot_ellipse::


start_maj () const;


Return the start major.






public: double var_rad_rot_ellipse::


start_min () const;


Return the start minor.






public: virtual double


var_rad_rot_ellipse::start_radius () const;


Return the start radius.






public: double var_rad_rot_ellipse::


start_rot () const;


Return the start rotation.






public: virtual void


var_rad_rot_ellipse::trim_to_range (


SPAinterval // interval


);


Trim to range.






public: virtual char const*


var_rad_rot_ellipse::type_name () const;


Returns the string "elliptical".






public: virtual logical


var_rad_rot_ellipse::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_rot_ellipse is zero (i.e., less than SPAresabs).






public: virtual logical


var_rad_rot_ellipse::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_rot_ellipse is zero (i.e., less than SPAresabs).




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