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
|