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

Purpose: Represents a linear sum of two curves.

Derivation: sum_spl_sur : spl_sur : subtrans_object : subtype_object : ACIS_OBJECT : -

SAT Identifier: "sumsur"

Filename: kern/kernel/kerngeom/splsur/sum_spl.hxx

Description: This class represents a surface that is a linear sum of two curves. This is derived from the class spl_sur, which is used by the spline surface class to contain the surface descriptions. The surface is defined primarily by two curves that are assumed not parallel, and the parameter ranges over which the surface is defined.


Parametric Representation


If the curves are represented as:


x = c1(t) and x = c2(t)


the surface is:


x = s(u, v) = c1(u) + c2(v) - p


where p is a constant position, normally initialized to be the value of c2 at the start of the parameter range.

References: KERN curve

BASE SPAposition

Constructor: public: sum_spl_sur::sum_spl_sur (


const sum_spl_sur& // input curve


);


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






public: sum_spl_sur::sum_spl_sur (


curve const&,

// 1st curve


curve const&,

// 2nd curve


SPAinterval const&

// 1st curve



= * (SPAinterval* ) NULL_REF,// param range






// (u-param)


SPAinterval const&

// 2nd curve



= * (SPAinterval* ) NULL_REF,// param range






// (v-param)


SPAposition const&

// datum position



= * (SPAposition* ) NULL_REF


);


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


The u-parameter range defaults to the full first curve and the v-parameter range defaults to the full second curve. If either curve is unbounded, this constructor returns an error. The datum position is subtracted from the sum of the curves to give a position for the surface and is normally initialized to be the start of cur2.



Methods: protected: virtual SPAbox sum_spl_sur::bound (


SPApar_box const&
// parameter box of



= * (SPApar_box* )NULL_REF// defining curves


);


Returns a bounding box by boxing the defining curves and combining them.






public: virtual spl_sur* sum_spl_sur::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 curve*


sum_spl_sur::get_path () const;


Returns the sweep path curve.






public: virtual sweep_path_type


sum_spl_sur::get_path_type () const;


Returns the sweep path type






public: virtual curve*


sum_spl_sur::get_profile (


double // param

) const;


Returns the sweep profile on the sum_spl_sur, which is the u-curve.






public: virtual law*


sum_spl_sur::get_rail () const;


Returns the rail law for the sum_spl_sur.






public: static int sum_spl_sur::id ();


Returns the ID for the sum_spl_sur list.






public: virtual logical sum_spl_sur::is_extendable (


sum_spl_sur const& other, // other surface


SPApar_box& new_domain
// new domain


) const;;


This method will return true if the sum_spl_sur can be extended to include the given sum_spl_sur. It also returns what the new domain of the "this" surface should be to include the other surface. This method returns false in any case that is not covered.






protected: virtual void sum_spl_sur::make_approx (


double fit, // fit tolerance


const spline& spl // pointer to output



= * (spline*) NULL_REF,// spline approx.


logical force // flag for forcing



= FALSE


) const;


Makes or remakes an approximation of the surface, within the given tolerance.






private: void sum_spl_sur::restore_data ();


Restores the information for the sum_spl_sur from a save file.


restore_curve u-curve

restore_curve v-curve

read_position Datum point

if ( restore_version_number < APPROX_SUMMARY_VERSION )

read_interval u-range

read_interval v-range

if ( restore_version_number >= DISCONTINUITY_VERSION )


discontinuity_info::restore u discontinuities


discontinuity_info::restore v discontinuities

else

spl_sur::restore_common_data restore the generic surface data






public: virtual void sum_spl_sur::save_data () const;


Save the information for the sum_spl_sur to a save file.






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


Returns the type of sum_spl_sur.






public: virtual char const*


sum_spl_sur::type_name () const;


Returns the string "sumsur".

Internal Use: full_size




Related Fncs: restore_sum_spl_sur
PDF/KERN/37CLSR.PDF
HTM/DATA/KERN/KERN/37CLSR/0008.HTM