off_int_cur
List of: Classes
Subjects: Construction Geometry, SAT Save and Restore
Contents: Kernel

Purpose: Represents a spline curve obtained by the intersection of two surfaces that are offsets of the given surfaces.

Derivation: off_int_cur : int_cur : subtrans_object : subtype_object : ACIS_OBJECT : -

SAT Identifier: "offintcur"

Filename: kern/kernel/kerngeom/intcur/off_int.hxx

Description: This class represents a spline curve obtained by the intersection of two surfaces that are offsets of the given surfaces. off_int_cur is derived from the base class int_cur.

References: BASE SPAinterval

Constructor: public: off_int_cur::off_int_cur (


bs3_curve,

// interpolating






// curve


double,

// fit tolerance


surface const&,

// 1st surface






// to offset


surface const&,

// 2nd surface






// to offset


double,

// 1st surface






// offset dist


double,

// 2nd surface






// offset dist


bs2_curve

// 1st surface



= NULL,

// spline






// per. proj.


bs2_curve

// 2nd surface



= NULL,

// spline






// per. proj.


const SPAinterval&

// safe range



= * (SPAinterval*) NULL_REF, // for curve


const SPAinterval&

// 1st surface



= * (SPAinterval*) NULL_REF, // curve interval


const SPAinterval&

// 2nd surface



= * (SPAinterval*) NULL_REF // curve interval


);


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






public: off_int_cur::off_int_cur (


const off_int_cur& // int_curve


);


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




Destructor: protected: off_int_cur::~off_int_cur ();


C++ destructor.



Methods: protected: virtual int off_int_cur::accurate_derivs (


SPAinterval const&
// portion of curve



= * (SPAinterval*)NULL_REF// to evaluate


) const;


Returns the number of derivatives which evaluate() can find "accurately" (and fairly directly), rather than by finite differencing, over the given portion of the curve. If there is no limit to the number of accurate derivatives, returns the value ALL_CURVE_DERIVATIVES, which is large enough for any reasonable use.






public: virtual void


off_int_cur::calculate_disc_info();


Calculates the discontinuity information for the off_int_cur.






public: virtual int_cur* off_int_cur::deep_copy (


pointer_map* pm // list of items within



= NULL // the entity that are




// already deep copied


) const;


Creates a copy of an item that does not share any data with the original. Allocates new storage for all member data and any pointers. Returns a pointer to the copied item.






public: virtual int off_int_cur::evaluate_surfs (


double,

// parameter


SPAposition&,

// point on curve






// at given






// parameter


SPAvector*,

// derivatives of






// off_int_cur


int& nd_cu,

// no. of curve






// derivatives






// required/calc.


int& nd_sf,

// no. of surface






// derivatives






// required/calc.


evaluate_curve_side

// the evaluation



= evaluate_curve_unknown, // location






// above, below






// or don't care


SPAposition&

// point on



= * (SPAposition*) NULL_REF, // support






// surface 1


SPAvector*

// derivatives of



= NULL,

// 1st support






// surface


SPAposition&

// point on



= * (SPAposition*) NULL_REF, // support






// surface 2


SPAvector*

// derivatives of



= NULL,

// 2nd support






// surface


SPApar_pos&

// Parameters on



= * (SPApar_pos*) NULL_REF, // surface 1


SPApar_vec*

// derivatives of



= NULL,

// parameters on






// surface 1


SPApar_pos&

// Parameters on



= * (SPApar_pos*) NULL_REF, // surface 2


SPApar_vec*

// derivatives of



= NULL,

// parameters on






// surface 2


SPApar_pos const&

// optional guess



= * (SPApar_pos* )NULL_REF, // value for 1st






// par_pos


SPApar_pos const&

// optional guess



= * (SPApar_pos* )NULL_REF // value for 2nd






// par_pos


) const;


An evaluator that takes surface arguments in addition to the usual arguments. As well as returning curve position and derivatives, it returns the derivatives of the surface wrt t (these will often but not always be equal to the curve derivatives) and also the derivatives of the surface parameters with respect to t. The array of vectors to return the curve derivatives must be of length at least nd_cu, and the various arrays of vectors to return the surface data can either be null, indicating that this particular derivative is not required, or be of length at least nd_sf.


Unlike the other evaluators, this function OVERWRITES the integer arguments specifying the numbers of derivatives required, with the number actually obtained. The function itself returns information about the surface data that was calculated:


0 => no surface data (e.g. exact_int_cur)

1 => data for first surface only

2 => data for second surface only

3 => data for both surfaces






public: static int off_int_cur::id ();


Returns the ID for the off_int_cur list.






private: void off_int_cur::restore_data ();


Saves the information for the off_int_cur to a save file.


int_cur::restore_common_data Restore generic data for underlying curve.

read_real Offset from first surface

read_real


Offset from second surface






public: void off_int_cur::save_data () const;


Saves the information for the off_int_cur to a save file.






public: virtual int off_int_cur::type () const;


Returns the type of off_int_cur.






public: virtual char const*


off_int_cur::type_name () const;


Returns the string "offintcur".

Internal Use: full_size, off1, off2




Related Fncs: restore_off_int_cur
PDF/KERN/33CLL.PDF
HTM/DATA/KERN/KERN/33CLL/0007.HTM