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
|