Classes Ua thru Zz. Chapter 39. UNDEFC

Size: px
Start display at page:

Download "Classes Ua thru Zz. Chapter 39. UNDEFC"

Transcription

1 Chapter 39. Classes Ua thru Zz Topic: Ignore UNDEFC Class: Purpose: Model Geometry, SAT Save and Restore Defines a curve that is undefined except for its end points as an object in the model. Derivation: UNDEFC : CURVE : ENTITY : ACIS_OBJECT : SAT Identifier: Filename: Description: Limitations: undefc kern/kernel/kerndata/geom/undefc.hxx This class defines an undefined curve that records the start and end points, directions, and curvatures. The start point has a parameter value of 0 and the end point has a parameter value of 1. No other points are defined. None References: KERN undefc Data: Constructor: None public: UNDEFC::UNDEFC ( C++ allocation constructor requests memory for this object but does not populate it. The allocation constructor is used primarily by restore. Applications should call this constructor only with the overloaded new operator, because this reserves the memory on the heap, a requirement to support roll back and history management.

2 public: UNDEFC::UNDEFC ( SPAposition const&, SPAunit_vector const&, SPAvector const&, SPAposition const&, SPAunit_vector const&, SPAvector const& // start position // start direction // start curvature // end position // end direction // end curvature C++ initialize constructor requests memory for this object and populates it with the data supplied as arguments. Applications should call this constructor only with the overloaded new operator, because this reserves the memory on the heap, a requirement to support roll back and history management. public: UNDEFC::UNDEFC ( undefc const& // undefc C++ copy constructor requests memory for this object and populates it with the data from the object supplied as an argument. Applications should call this constructor only with the overloaded new operator, because this reserves the memory on the heap, a requirement to support roll back and history management. Destructor: public: virtual void UNDEFC::lose ( Posts a delete bulletin to the bulletin board indicating the instance is no longer used in the active model. The lose methods for attached attributes are also called. protected: virtual UNDEFC::~UNDEFC ( This C++ destructor should never be called directly. Instead, applications should use the overloaded lose method inherited from the ENTITY class, because this supports history management. (For example, x=new UNDEFC(...) then later x >lose.)

3 protected: virtual logical UNDEFC::bulletin_no_change_vf ( ENTITY const* other, // other entity logical identical_comparator// comparator Virtual function for comparing subclass data called by bulletin_no_change. For identical_comparator to be TRUE requires an exact match when comparing doubles, and returns the result of memcmp as a default (for non overridden subclasses). FALSE indicates tolerant compares and returns FALSE as a default. public: virtual void UNDEFC::debug_ent ( FILE* // file pointer Prints the type and address of this object, roll back pointer, attributes, and any unknown subtype information to the specified file. Refer to the ENTITY class for more details. public: SPAvector const& UNDEFC::end_curv ( Returns the curvature at the end of the curve. public: SPAunit_vector const& UNDEFC::end_dir () const; Returns the direction at the end of the curve. public: SPAposition const& UNDEFC::end_point () const; Returns the point at the end of the curve. public: curve const& UNDEFC::equation ( Returns the curve equation for reading only. public: curve& UNDEFC::equation_for_update (

4 Returns the curve equation, checking first for backup. public: virtual int UNDEFC::identity ( int // level = 0 If level is unspecified or 0, returns the type identifier UNDEFC_TYPE. If level is specified, returns UNDEFC_TYPE for that level of derivation from ENTITY. The level of this class is defined as UNDEFC_LEVEL. public: virtual logical UNDEFC::is_deepcopyable ( Returns TRUE if this can be deep copied. public: void UNDEFC::operator*= ( SPAtransf const& // transformation Transforms the stored undefc in place. public: void UNDEFC::restore_common ( The RESTORE_DEF macro expands to the restore_common method, which is used in reading information from a SAT file. This method is never called directly. It is called by a higher hierarchical function if an item in the SAT file is determined to be of this class type. An instance of this class will already have been created through the allocation constructor. This method then populates the class instance with the appropriate data from the SAT file. undefc::restore_data Low-level geometry. public: void UNDEFC::set_end_curv ( SPAvector const& // end direction crvtr. Sets the curvature at the end of the curve. public: void UNDEFC::set_end_dir ( SPAunit_vector const& // end direction

5 Sets the direction at the end of the curve. public: void UNDEFC::set_end_point ( SPAposition const& // end point Sets the point at the end of the curve. public: void UNDEFC::set_start_curv ( SPAvector const& // start direction crvtr. Sets the curvature at the start of the curve. public: void UNDEFC::set_start_dir ( SPAunit_vector const& // start direction Sets the direction at the start of the curve. public: void UNDEFC::set_start_point ( SPAposition const& // start point Sets the point at the start of the curve. public: SPAvector const& UNDEFC::start_curv ( Returns the curvature at the start of the curve. public: SPAunit_vector const& UNDEFC::start_dir ( Returns the direction at the start of the curve. public: SPAposition const& UNDEFC::start_point () const; Returns the point at the start of the curve.

6 public: curve* UNDEFC::trans_curve ( SPAtransf const& // transformation = * (SPAtransf* ) NULL_REF, logical // reverse curve? = FALSE Returns a new curve, which is the undefc of the UNDEFC, transformed if the given transformation is not NULL. This curve is reversed in sense if logical is TRUE. public: virtual const char* UNDEFC::type_name ( Returns the string undefc. Internal Use: Related Fncs: full_size, save, save_common is_undefc unknown_text_pointer Class: SAT Save and Restore Purpose: Implements the member functions to point to an object containing textual data to be read from a save file. Derivation: unknown_text_pointer : ACIS_OBJECT : SAT Identifier: Filename: Description: Limitations: None kern/kernel/kerndata/data/entity.hxx This class implements the member functions for a pointer to an object containing textual data to be read from a save file, which represents an unknown entity type to ACIS. None References: KERN unknown_entity_text by KERN ENTITY, unknown_entity_text Data: None

7 Constructor: public: unknown_text_pointer::unknown_text_pointer ( C++ constructor, creating an unknown_entity_pointer using the specified parameters. Destructor: public: unknown_text_pointer::~unknown_text_pointer ( C++ destructor, deleting a unknown_entity_pointer. Methods: public: logical unknown_text_pointer::operator!= ( unknown_entity_text* p // pointer Returns FALSE if the pointer points to the defining unknown entity text; otherwise, it returns TRUE. public: unknown_entity_text* unknown_text_pointer::operator > ( Returns the pointer to the defining unknown entity text. public: unknown_text_pointer const& unknown_text_pointer::operator= ( unknown_entity_text* // unknown entity text Implementation of the assignment operator. public: unknown_text_pointer const& unknown_text_pointer::operator= ( unknown_text_pointer const& // given unknown // text_pointer Implementation of the assignment operator. public: logical unknown_text_pointer::operator== ( unknown_entity_text* p // pointer

8 Returns TRUE if the pointer points to unknown entity text; otherwise, it returns FALSE. public: operator unknown_text_pointer:: unknown_entity_text* ( Casts into an unknown_entity_text by returning the pointer to the defining unknown_entity_text. Internal Use: Related Fncs: full_size get_history_size var_cross_section Class: Blending, SAT Save and Restore Purpose: Evaluates the cross section of a blend surface. Derivation: var_cross_section : ACIS_OBJECT : SAT Identifier: Filename: Description: None kern/kernel/sg_husk/vrbln/blnd_sec.hxx The cross section of a blend surface corresponds to the u-parameter of the surface. When evaluating the surface, a slice is taken at the given v-parameter, and then that slice is evaluated at the u-parameter. During the initial construction of the blend surface geometry, the cross section is irrelevant. It first comes into play when the blend surface is intersected with other faces. Only circular cross sections are available in standard blending. The Advanced Blending Component allows other other shapes var_cross_section objects do not shift, split, append, or transform. Parameterization runs from 0 to 1, and that covers the whole section. Limitations: None References: KERN var_radius by KERN blend_spl_sur Data: protected cross_section_forms form_data; Form of the cross section.

9 protected double left_thumb_data; Left thumbweight. protected double right_thumb_data; Right thumbweight. protected var_radius *rnd_height; Height (bulge) of a rounded-chamfer cross section. Constructor: public: var_cross_section::var_cross_section ( cross_section_forms const // cross section form new_form // form = CIRCULAR C++ initialize constructor requests memory for this object and populates it with the data supplied as arguments. public: var_cross_section::var_cross_section ( cross_section_forms form, // cross section form double arg1, // new left // thumbweight double arg2 // new right // thumbweight = 1.0 C++ initialize constructor requests memory for this object and populates it with the data supplied as arguments. C++ constructor, creating a var_cross_section using the specified parameters. public: var_cross_section::var_cross_section ( var_cross_section const& // var_cross_section old_section // old section C++ copy constructor requests memory for this object and populates it with the data from the object supplied as an argument. Destructor: public: var_cross_section::~var_cross_section (

10 C++ destructor, deleting a var_cross_section. Methods: public: void var_cross_section::calibrate_v_params ( double t0, // start parameter double t1 // end parameter Calibrate the v-parameters of a var_cross_section object to the given parameter range. This only applies to cross-sections that vary with the v-parameter of the blend. public: var_radius* var_cross_section::chamfer_round_height ( Returns the round height function of a rounded chamfer cross section, which is stored as a var_radius object. It just returns the pointer, without copying. public: bl_continuity var_cross_section::continuity ( Returns a measure of continuity at the ends. public: void var_cross_section::debug ( char* leader, // title line FILE* fp // file pointer = debug_file_ptr Writes information about the var_cross_section to the debug file or to the specified file. public: cross_section_forms var_cross_section::form ( Returns the form_data about the var_cross_section. public: logical var_cross_section::is_circular ( Determines if the var_cross_section is circular.

11 public: double var_cross_section::left_thumb ( Returns the left thumbweight of the var_cross_section. public: logical var_cross_section::operator!= ( var_cross_section const& other // var_cross_sec Determines whether two variable cross sections are not equal. public: virtual void var_cross_section::operator*= ( SPAtransf const& // transform Performs the transform operator. public: logical var_cross_section::operator== ( var_cross_section const& other // var_cross_sec Implements an assignment operator, which makes a copy of a var_cross_section. public: void var_cross_section::restore_data ( Restore the data for a var_cross_section from a save file. read_enum Cross section form if ( form_data == CIRCULAR ) else if ( form_data == THUMBWEIGHTS ) read_real left thumb data read_real right thumb data else if ( form_data == RND_CHAMFER ) read_logical Either no_radius or radius if (rad_is_there) var_radius * restore_radius round height specification public: void var_cross_section::reverse ( Reverses the left-to-right properties of an asymmetric blend.

12 public: double var_cross_section::right_thumb ( Returns the right thumbweight of the var_cross_section. public: void var_cross_section::save ( Saves the form data and thumb data. public: void var_cross_section::uncalibrate_v_params ( Un-calibrate v-parameters, for a variable section. Internal Use: Related Fncs: full_size restore_cross_section var_radius Class: Blending, SAT Save and Restore Purpose: Defines the variable radius. Derivation: var_radius : ACIS_OBJECT : SAT Identifier: Filename: Description: Limitations: var_radius kern/kernel/sg_husk/vrbln/var_rad.hxx 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. None References: by KERN blend_spl_sur, var_cross_section Data: Constructor: None public: var_radius::var_radius (

13 C++ allocation constructor requests memory for this object but does not populate it. Destructor: Methods: 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. public: virtual var_radius::~var_radius ( C++ destructor, deleting a var_radius. 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 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

14 Writes debug information about the variable radius to either standard output or to the specified file. public: virtual double var_radius::end_deriv1 ( Returns the first derivative at the end parameter. public: virtual double var_radius::end_radius ( 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 Evaluates a variable radius at a given parameter value. public: virtual logical var_radius::explicit_var_radius ( 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 ( 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

15 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 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 ( 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 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 Implements an assignment operator, which makes a copy of a var_radius. public: SPAinterval var_radius::param_range ( void // pointer to data

16 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 read_real read_real The two ends calibrated variable. Either uncalibrated or calibrated. The radius starting parameter. The radius ending parameter public: virtual void var_radius::save ( Saves the version number and calls save_data. public: void var_radius::save_data ( 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

17 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 ( Returns the first derivative at the start parameter. public: virtual double var_radius::start_radius ( 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;

18 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 var_rad_fixed_width Class: Blending, SAT Save and Restore Purpose: Defines a constant cross section radius for a variable radius function. Derivation: var_rad_fixed_width : var_radius : ACIS_OBJECT : SAT Identifier: Filename: Description: Limitations: References: Data: Constructor: fixed_width kern/kernel/sg_husk/vrbln/var_rad.hxx This radius is an implicit function of the parameter v. It cannot be evaluated explicitly as r(v) without partially evaluating the blend surface itself. None None None public: var_rad_fixed_width::var_rad_fixed_width ( C++ allocation constructor requests memory for this object but does not populate it. public: var_rad_fixed_width::var_rad_fixed_width ( double width // given width

19 C++ initialize constructor requests memory for this object and populates it with the data supplied as arguments. public: var_rad_fixed_width::var_rad_fixed_width ( var_rad_fixed_width const& old // given width 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_rad_fixed_width::~var_rad_fixed_width ( C++ destructor, deleting a var_fixed_width. Methods: public: virtual var_radius* var_rad_fixed_width::copy ( void // pointer to data Copies a var_rad_fixed_width. public: virtual void var_rad_fixed_width::debug ( const char* leader, // leader string FILE* fp // file pointer = debug_file_ptr Outputs a leader line and details about the var_rad_fixed_width to the debug file or to the specified file. public: virtual double var_rad_fixed_width::end_deriv1( Returns the end of the first derivative. public: virtual double var_rad_fixed_width::end_radius( Returns the end of the radius.

20 public: virtual int var_rad_fixed_width::form ( Returns the form FIXED_WIDTH. public: virtual logical var_rad_fixed_width:: implicit_var_radius ( Returns TRUE for a var_rad_fixed_width. public: virtual logical var_rad_fixed_width:: is_constant ( double* // tolerance Determines whether the input is constant. public: virtual logical var_rad_fixed_width::is_zero ( double eps // zero tolerance Returns TRUE if a radius function is zero everywhere, to within a given tolerance; otherwise, it returns FALSE. public: virtual bs2_curve var_rad_fixed_width::make_bs2 ( Returns a bs2_curve representation of this radius function. public: virtual logical var_rad_fixed_width::operator!= ( var_radius const& other // variable radius Tests the two var_rad_fixed_widths to see if they are not equal. public: virtual void var_rad_fixed_width::operator*= ( SPAtransf const& // transformation

21 Transforms the var_rad_fixed_width. Only scaling is significant here. public: virtual logical var_rad_fixed_width::operator== ( var_radius const& other // variable radius Implements an assignment operator, which tests to see if a.var_rad_fixed_width is equal to a var_radius public: virtual void var_rad_fixed_width::restore_data ( Restore the data for a var_rad_fixed_width from a save file. var_radius::restore_data read_real Save the underlying data radius width public: virtual void var_rad_fixed_width::save ( Saves the form or id, calls a save_data, then saves width data. public: void var_rad_fixed_width::set_width ( double width // width value Sets the width of the radius. public: virtual double var_rad_fixed_width::start_deriv1( Returns the start of the first derivative. public: virtual double var_rad_fixed_width::start_radius( Returns the start of the radius. public: virtual char const* var_rad_fixed_width::type_name (

22 Returns the string fixed_width. public: double var_rad_fixed_width::width ( Gets the width of a var_rad_fixed_width. public: virtual logical var_rad_fixed_width::zero_end_deriv1 ( logical, // at start point if true double // tolerance = SPAresabs Returns TRUE if the first derivative at the start or end point of the var_rad_fixed_width is zero (i.e., less than SPAresabs). public: virtual logical var_rad_fixed_width::zero_end_radius ( logical, // at start point if true double tol // tolerance = SPAresabs Returns TRUE if the radius at the start or end point of the var_rad_fixed_width is zero (i.e., less than SPAresabs). Related Fncs: bs2_radius_is_zero var_rad_functional Class: Blending, SAT Save and Restore Purpose: Defines a functional form of a variable radius function. Derivation: var_rad_functional : var_radius : ACIS_OBJECT : SAT Identifier: Filename: Description: functional kern/kernel/sg_husk/vrbln/var_rad.hxx This class defines a variable radius function that is specified by a given function, which is represented by a bs2_curve.

23 Limitations: References: Data: Constructor: None None None public: var_rad_functional::var_rad_functional ( bs2_curve radius_fcn // bs2 curve for radius = NULL C++ constructor, creating a var_rad_functional using the specified parameters. When a bs2_curve passes into a var_rad_functional constructor, the constructors do not make a copy of the curve. The bs2_curve becomes the exclusive property of the var_rad_functional object, and it is deleted by the var_rad_functional destructors. If the caller wants to keep a bs2 radius function after calling the constructor, the caller must make a copy; e.g. using: rad = var_rad_functional(functional, bs2_curve_copy(fcn))) public: var_rad_functional::var_rad_functional ( var_rad_functional const& old // old C++ constructor, creating a var_rad_functional by copying one. Destructor: public: virtual var_rad_functional::~var_rad_functional ( C++ destructor, deleting a var_rad_functional. Methods: public: virtual void var_rad_functional::append ( var_radius& // variable radius Appends the given var_radius.

24 public: virtual void var_rad_functional::calibrate_radius ( double t0, // first calibration double t1 // second calibration The radius function extends the entire length of a subsequence of blends, i.e., a smooth sequence of variable radius blends with no constant blends. Every blend in the subsequence gets the same radius function, and extend_def and extend_rad are no longer called at all. The given start and end parameters are the extreme values at the ends of the subsequence. We don t reparam the radius function, however, because we don t want to shift all of the interior knot values. We just want to adjust the start and end values. public: virtual var_radius* var_rad_functional::copy ( void // pointer to data Copies a var_rad_functional. public: virtual void var_rad_functional::debug ( const char* leader, // leader string FILE* fp // pointer = debug_file_ptr Outputs a title line and information about var_rad_functional to the debug file or to the specified file. public: virtual double var_rad_functional::end_deriv1 ( Returns the first derivative at the end parameter. public: virtual double var_rad_functional::end_radius ( Returns the radius at the end parameter.

25 public: virtual void var_rad_functional::eval ( double v_param, // point double* val // variable radius = NULL, double* der1 // first derivative = NULL, double* der2 // second derivative = NULL, double* der3 // third derivative = NULL Evaluate a variable radius at a given parameter value. public: virtual int var_rad_functional::form ( Returns the form FUNCTIONAL. public: virtual logical var_rad_functional::implicit_var_radius ( Returns FALSE for a var_rad functional. public: virtual logical var_rad_functional:: is_constant ( double* const_rad_value // tolerance Determines whether the input is constant. public: virtual logical var_rad_functional::is_zero ( double eps // zero tolerance Returns TRUE if a radius function is zero everywhere, to within a given tolerance; otherwise, it returns FALSE. public: virtual bs2_curve var_rad_functional::make_bs2 (

26 Returns a bs2_curve representation of this radius function. public: virtual void var_rad_functional::negate ( Reverses a functional variable radius, front to back. public: virtual logical var_rad_functional::operator!= ( var_radius const& other // variable radius Determines whether a var_rad_functional and a var_radius are not equal. public: virtual void var_rad_functional::operator*= ( SPAtransf const& // transformation Transforms the var_rad_functional by the given transformation. public: virtual logical var_rad_functional::operator== ( var_radius const& other // variable radius Implements an assignment operator, which tests to see if a.var_rad_functional is equal to a var_radius public: bs2_curve var_rad_functional::rad_function ( Returns the bs2_curve defining the radius function. public: virtual void var_rad_functional::reparam ( double start, // start parameter double end // end parameter Reparameterizes a var_rad_functional. public: virtual void var_rad_functional::restore_data (

27 Restore the data for a var_rad_functional from a save file. var_radius::restore_data Generic radius information bs2_curve_restore Underlying B spline curve public: virtual void var_rad_functional::save () const; Saves the form or id, calls save_data, then saves the underlying curve. public: virtual void var_rad_functional::shift ( double // shift delta Reparameterizes the var_rad_functional by the given parameter shift. public: virtual void var_rad_functional::split ( double param, // point of split var_radius* pieces[2] // array of 2 var_radii Splits a var_rad_functional into two pieces at the given point. public: virtual double var_rad_functional::start_deriv1 ( Returns the first derivative at the start parameter. public: virtual double var_rad_functional::start_radius ( Returns the radius at the start parameter. public: virtual char const* var_rad_functional::type_name ( Returns the string functional. public: virtual logical var_rad_functional::zero_end_deriv1 ( logical at_start, // at start point if true double tol // tolerance = SPAresabs

28 Returns TRUE if the first derivative at the start or end point of the var_rad_functional is zero (i.e., less than SPAresabs). public: virtual logical var_rad_functional::zero_end_radius ( logical at_start, // at start point if true double tol // tolerance = SPAresabs Returns TRUE if the radius at the start or end point of the var_rad_functional is zero (i.e., less than SPAresabs). Related Fncs: bs2_radius_is_zero var_rad_rot_ellipse Class: Blending, SAT Save and Restore Purpose: Defines a rotational radius ellipse for a variable radius function. Derivation: var_rad_rot_ellipse : var_radius : ACIS_OBJECT : SAT Identifier: Filename: Description: Limitations: References: Data: Constructor: elliptical kern/kernel/sg_husk/vrbln/var_rad.hxx Defines a rotational radius ellipse for a variable radius function. None None None 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

29 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 Copy the var_rad_rot_ellipse. public: virtual void var_rad_rot_ellipse::debug ( const char* leader, // leader FILE* fp // file = debug_file_ptr

30 Prints out a class-specific identifying line to standard output or to the specified file. public: virtual double var_rad_rot_ellipse::end_deriv1 ( Return the end derivative. public: double var_rad_rot_ellipse::end_maj ( Return the end major. public: double var_rad_rot_ellipse::end_min ( Return the end minor. public: virtual double var_rad_rot_ellipse::end_radius ( Return the end radius. public: double var_rad_rot_ellipse::end_rot ( 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 Finds the position of the 1st, 2nd, and 3rd derivatives.

31 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 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 Returns the position of all the evaluators. public: virtual int var_rad_rot_ellipse::form ( Return a var_rad_rot_ellipse form. public: virtual logical var_rad_rot_ellipse:: implicit_var_radius ( Determines if implicit. public: virtual logical var_rad_rot_ellipse:: is_constant ( double* const_rad_value // tolerance

32 Determines whether the input is constant. public: virtual logical var_rad_rot_ellipse::is_zero ( double eps // zero tolerance Returns TRUE the two var_rad_rot_ellipse are zero; otherwise, it returns FALSE. public: virtual bs2_curve var_rad_rot_ellipse::make_bs2 ( 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 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 Implements an assignment operator, which tests to see if a.var_rad_rot_ellipse is equal to a var_radius

33 public: logical var_rad_rot_ellipse:: ref_is_left ( 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 read_real read_real read_real read_real read_real read_logical Start major radius End major radius Start minor radius End minor radius Start rotation angle End rotation angle 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

34 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 ( Return the start derivative. public: double var_rad_rot_ellipse:: start_maj (

35 Return the start major. public: double var_rad_rot_ellipse:: start_min ( Return the start minor. public: virtual double var_rad_rot_ellipse::start_radius ( Return the start radius. public: double var_rad_rot_ellipse:: start_rot ( 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 ( Returns the string elliptical. public: virtual logical var_rad_rot_ellipse::zero_end_deriv1 ( logical, // at start point if true double tol // tolerance = SPAresabs 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).

36 public: virtual logical var_rad_rot_ellipse::zero_end_radius ( logical at_start, // at start point if true double tol // tolerance = SPAresabs 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 var_rad_two_ends Class: Blending, SAT Save and Restore Purpose: Defines a two-ends form of a variable radius function. Derivation: var_rad_two_ends : var_radius : ACIS_OBJECT : SAT Identifier: Filename: Description: Limitations: References: Data: Constructor: two_ends kern/kernel/sg_husk/vrbln/var_rad.hxx This class defines a variable radius function that varies linearly between two end values. None None None public: var_rad_two_ends::var_rad_two_ends ( C++ allocation constructor requests memory for this object but does not populate it. public: var_rad_two_ends::var_rad_two_ends ( double start_rad, // start radius double end_rad // end radius

37 C++ initialize constructor requests memory for this object and populates it with the data supplied as arguments. public: var_rad_two_ends::var_rad_two_ends ( var_rad_two_ends 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_rad_two_ends::~var_rad_two_ends ( C++ destructor, deleting a var_rad_two_ends. Methods: public: virtual void var_rad_two_ends::append ( var_radius& // variable radius Appends the given var_radius. public: virtual var_radius* var_rad_two_ends::copy ( void // pointer to data Copies a var_rad_two_ends. public: virtual void var_rad_two_ends::debug ( const char* leader, // leader string FILE* fp // file pointer = debug_file_ptr Outputs a title line and information about var_rad_two_ends to the debug file or to the specified file. public: virtual double var_rad_two_ends::end_deriv1 ( Returns the first derivative at the end parameter.

38 public: double var_rad_two_ends::end_rad ( Returns the end radius datum. public: virtual double var_rad_two_ends::end_radius ( Returns the radius at the end parameter. public: virtual void var_rad_two_ends::eval ( double v_param, // point double* val // variable radius = NULL, double* der1 // first derivative = NULL, double* der2 // second derivative = NULL, double* der3 // third derivative = NULL Evaluate a variable radius at a given parameter value. public: virtual int var_rad_two_ends::form ( Returns the form TWO_ENDS. public: virtual logical var_rad_two_ends::implicit_var_radius ( Returns FALSE for a var_rad_two_ends. public: virtual logical var_rad_two_ends:: is_constant ( double* const_rad_value // tolerance Determines whether the input is constant. public: virtual logical var_rad_two_ends::is_zero ( double eps // zero tolerance

39 Returns TRUE if a radius function is zero everywhere, to within a given tolerance; otherwise, it returns FALSE. public: virtual bs2_curve var_rad_two_ends::make_bs2 ( Returns a bs2_curve representation of this radius function. public: virtual void var_rad_two_ends::negate ( Reverses this variable radius, front to back. public: virtual logical var_rad_two_ends::operator!= ( var_radius const& other // variable radius Determines whether a var_rad_two_ends and a var_radius are not equal. public: virtual void var_rad_two_ends::operator*= ( SPAtransf const& // transformation Transforms the var_rad_two_ends by the given transformation. public: virtual logical var_rad_two_ends::operator== ( var_radius const& other // variable radius Implements an assignment operator, which tests to see if a.var_rad_two_ends is equal to a var_radius public: virtual void var_rad_two_ends::restore_data ( Restore the data for a var_rad_two_ends from a save file. var_radius::restore_data read_real read_real Generic information start radius data end radius data

40 public: virtual void var_rad_two_ends::save ( Calls var_radius save_data method, then saves the start and end radius data. public: void var_rad_two_ends::set_end_rad ( double new_rad // new radius Sets a new value for the end radius. public: void var_rad_two_ends::set_start_rad ( double new_rad // new radius Sets a new value for the start radius. public: virtual void var_rad_two_ends::split ( double param, // point of split var_radius* pieces[2] // array of 2 var_radii Splits a var_rad_two_ends into two pieces at the given point. public: virtual double var_rad_two_ends::start_deriv1 ( Returns the first derivative at the start parameter. public: double var_rad_two_ends::start_rad ( Returns the start radius datum. public: virtual double var_rad_two_ends::start_radius ( Returns the radius at the start parameter. public: virtual void var_rad_two_ends::trim_to_range ( SPAinterval // interval

41 Trims the radius to the given interval. public: virtual char const* var_rad_two_ends::type_name ( Returns the string two_ends. public: virtual logical var_rad_two_ends::zero_end_deriv1 ( logical, // at start point if true double tol // tolerance = SPAresabs Returns TRUE if the first derivative at the start or end point of the var_rad_two_ends is zero (i.e., less than SPAresabs). public: virtual logical var_rad_two_ends::zero_end_radius ( logical at_start, // at start point if true double tol // tolerance = SPAresabs Returns TRUE if the radius at the start or end point of the var_rad_two_ends is zero (i.e., less than SPAresabs). Related Fncs: bs2_radius_is_zero VBL_SURF Class: Blending, SAT Save and Restore Purpose: Defines the vertex blend surface class. Derivation: VBL_SURF : spl_sur : subtrans_object : subtype_object : ACIS_OBJECT : SAT Identifier: Filename: Description: vertexblendsur kern/kernel/kerngeom/d3_vbl/vbl.hxx This class defines the vertex blend surface class. It is defined entirely by the n boundaries that make it up.

42 Limitations: None References: KERN BDY_GEOM Data: Constructor: protected VBL_SURF* _self; Holds a nonconstant pointer to this object. It is so that we can make SVECs on the blend surface by first making a spline on the blend surface, for which we need the nonconstant pointer. public: VBL_SURF::VBL_SURF ( C++ allocation constructor requests memory for this object but does not populate it. public: VBL_SURF::VBL_SURF ( const VBL_SURF& // vertex blend surface C++ copy constructor requests memory for this object and populates it with the data from the object supplied as an argument. Destructor: Methods: public: VBL_SURF::VBL_SURF ( int n // # boundary curves C++ initialize constructor requests memory for this object and populates it with the data supplied as arguments. public: VBL_SURF::~VBL_SURF ( C++ destructor, deleting a VBL_SURF. public: virtual int VBL_SURF::accurate_derivs ( const SPApar_box& // bounding box = * (SPApar_box*) NULL_REF Returns the number of curve derivatives over the given interval (which defaults to the whole range). public: virtual void VBL_SURF::append_u ( spl_sur& // spline surface

43 Appends the given surface to the end of this surface in the u-parameter direction. This function is intended to be called after split_u has been called, so that the surfaces are guaranteed to be compatible. public: virtual void VBL_SURF::append_v ( spl_sur& // spline surface Appends the given surface to the end of this surface in the v-parameter direction. This function is intended to be called after split_v has been called, so that the surfaces are guaranteed to be compatible. public: logical VBL_SURF::bdy_relax ( const SPAposition&, // position double&, // double int& // integer Returns the relaxed body. public: BDY_GEOM& VBL_SURF::boundary ( int i // ith boundary Returns the ith boundary in a VBL_SURF. public: virtual curve* VBL_SURF::boundary_curve ( int i, // ith boundary double& start_par, // start parameter double& end_par, // end parameter SPApar_pos& start_uv // start uv parameter = * (SPApar_pos*) NULL_REF, SPApar_pos& end_uv // end uv parameter = * (SPApar_pos*) NULL_REF Returns the ith boundary as a three-space curve on the heap, its range on the blend surface (which may not be the actual range of the curve), and its uv range on the blend surface.

44 public: virtual logical VBL_SURF::boundary_degenerate ( int i // ith boundary Returns whether the ith boundary is degenerate. public: check_status_list* VBL_SURF::check ( Performs a quick check of the surface, returning FALSE if we think it is illegal. This may be called as soon as all the boundaries are set. At the moment all we do is a rough check that the normal does not flip obviously anywhere round the boundary. This is sufficient to catch cases of unreasonable boundary data being given. public: virtual check_status_list* VBL_SURF::check ( const check_fix& input // flags for = * (const check_fix*) // allowed NULL_REF, // fixes check_fix& result // fixes applied = * (check_fix*) NULL_REF, const check_status_list* // checks to be = (const check_status_list*)// made,default NULL_REF // is none Check for any data errors in the surface, and correct the errors if possible. The various arguments provide control over which checks are made, which fixes can be applied and which fixes were actually applied. The function returns a list of errors that remain in the surface on exit. The default for the set of flags which say which fixes are allowable is none (nothing is fixed). If the list of checks to be made is null, then every possible check will be made. Otherwise, the function will only check for things in the list. The return value for the function will then be a subset of this list. public: subtrans_object* VBL_SURF::copy ( Constructs a duplicate of this object in free storage. public: double VBL_SURF::cos_angle (

45 Returns the cosine angle, which is pi divided by the number of boundaries. public: virtual void VBL_SURF::debug ( char const*, // leader string logical, // brief output OK? FILE* // file pointer Writes debug information to the specified output file. public: virtual spl_sur* VBL_SURF::deep_copy ( pointer_map* pm // list of items within = NULL // the entity that are // already deep copied 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. In a deep copy, all the information about the copied item is self-contained in a new memory block. By comparison, a shallow copy stores only the first instance of the item in memory, and increments the reference count for each copy. The pointer_map keeps a list of all pointers in the original object that have already been deep copied. For example, a deep_copy of a complex model results in self contained data, but identical sub-parts within the model are allowed to share a single set of data. public: virtual void VBL_SURF::eval ( SPApar_pos const&, // parameter value SPAposition&, // point on surface SPAvector* // first derivatives = NULL, SPAvector* // second derivatives = NULL Evaluates the vertex blend surface up to two derivatives.

46 public: virtual int VBL_SURF::evaluate ( const SPApar_pos&, // parameter SPAposition&, // pt on surface SPAvector** deriv // array of ptrs // to arrays of // vectors = NULL, int nd // # derivatives = 0, evaluate_surface_quadrant // eval. location = evaluate_surface_unknown Calculates derivatives, of any order up to the number requested, and stores them in vectors provided by the user. This method returns the number it was able to calculate; this equals to the number requested in all but the most exceptional circumstances. A certain number are evaluated directly and accurately; higher derivatives are automatically calculated by finite differencing; the accuracy of these decreases with the order of the derivative, as the cost increases. Any of the pointers may be NULL, in which case, the corresponding derivatives are not returned. Otherwise they must point to arrays long enough for all the derivatives of that order; i.e., 2 for the first derivatives, 3 for the second, etc. public: virtual SPAunit_vector VBL_SURF::eval_outdir ( SPApar_pos const& // position Find an outward direction from the surface at a point with given parameter values. public: int VBL_SURF::get_continuity ( Returns the continuity at the surface boundaries. public: int VBL_SURF::grid ( Returns the grid size used for the approximating surface, if there is one. public: static int VBL_SURF::id (

47 Returns the ID for the VBL_SURF list. public: bs3_surface VBL_SURF::make_approximating_patch ( int i, // number of int_fit int ns, // number of s tol int nt, // number of t tol double& int_fit // tolerances for int = * (double* ) NULL_REF, double& fit_s // tolerances for s = * (double* ) NULL_REF, double& fit_t // tolerances for t = * (double* ) NULL_REF, int approx_s_fit // flag for = 0, // approximating s int approx_t_fit // flag for = 0 // approximating t The bs3_surface inside the patch and on the boundaries is calculated. If the logical argument approx_s_fit is set to TRUE and any of the errors along the s parameter boundary are found to be greater than the requested tolerance, the errors are calculated approximately. Similarly for the logical approx_t_fit. If either of the logical arguments are set to TRUE, the references int_fit, fit_s, and fit_t should be used to pass the requested fit tolerances into the function. public: bs3_surface* VBL_SURF::make_output_surs ( int& n_sfs, // number of surfaces double& interior_fit, // interior tolerance double& boundary_fit, // boundary tolerance logical approx_error // approximate errors? = FALSE Function to make up several four sided approximating bs3_surface s to cover the vbl surface. The arguments supplied are an integer, which will be used to return the number of surfaces made, and the requested fit tolerances, for the interior and the boundary of the patches. These references will return the fit tolerances actually obtained. The function returns an array of _n bs3_surface s.

48 public: bs3_surface VBL_SURF::make_sur ( double, // fit tolerance int& // grid size = * (int*) NULL_REF, int // test code? = 0, double // check fit tolerance? = 1 Makes the approximating bs3_surface to the specified fit tolerance. This method returns NULL if a bs3_surface cannot be constructed. Call this method after setting all the boundaries. Pass the first int only to find out the resulting grid size used; if the value is larger than 1, the value is used as the initial attempt at grid size. The next int is for testing code only and may be removed at any time. The final double is the input member function; it passes the correct fit tolerance so if the desired grid size is also passed, there is no need to check the achieved fit. The default of 1 means that the fit tolerance must be checked. public: int VBL_SURF::n ( Returns the number of boundaries in a VBL_SURF. public: virtual VBL_OFFSURF* VBL_SURF::offset ( double offset_dist // offset distance Make an offset vertex blend on the heap. May also be called on an already offset vertex blend. These two are the only VBL_SURF functions in vbl_off.cxx. public: logical VBL_SURF::on_surface ( const SPApar_pos& // uv parameter Returns TRUE if the uv-parameter is on the surface; otherwise, it returns FALSE. public: virtual void VBL_SURF::operator*= ( const SPAtransf& // transformation

Classes Ca thru Cz. Chapter 29. check_status_list

Classes Ca thru Cz. Chapter 29. check_status_list Chapter 29. Classes Ca thru Cz Topic: Ignore check_status_list Class: Debugging Purpose: Implements the list of return codes for status checking. Derivation: check_status_list : ACIS_OBJECT : SAT Identifier:

More information

Classes ATTRIB_HH Aa thru Dz

Classes ATTRIB_HH Aa thru Dz Chapter 4. Classes ATTRIB_HH Aa thru Dz Topic: Ignore The class interface is a set of C++ classes, including their public and protected data and methods (member functions), that an application can use

More information

Classes Aa thru Az. Chapter 27. AcisJournal

Classes Aa thru Az. Chapter 27. AcisJournal Chapter 27. Classes Aa thru Az Topic: Ignore The class interface is a set of C++ classes, including their public and protected data and methods (member functions), that an application can use directly

More information

Functions bs3_curve Aa thru Lz

Functions bs3_curve Aa thru Lz Chapter 18. Functions bs3_curve Aa thru Lz Topic: Ignore bs3_curve_accurate_derivs Action: Gets the number of derivatives that bs3_curve_evaluate can calculate. Prototype: int bs3_curve_accurate_derivs

More information

Curves and Surfaces. Chapter 7. Curves. ACIS supports these general types of curves:

Curves and Surfaces. Chapter 7. Curves. ACIS supports these general types of curves: Chapter 7. Curves and Surfaces This chapter discusses the types of curves and surfaces supported in ACIS and the classes used to implement them. Curves ACIS supports these general types of curves: Analytic

More information

Classes Fa thru Kz. Chapter 32. FACE

Classes Fa thru Kz. Chapter 32. FACE Chapter 32. Classes Fa thru Kz Topic: Ignore FACE Class: Purpose: Model Topology, SAT Save and Restore Represents a bounded portion of a SURFACE. Derivation: FACE : ENTITY : ACIS_OBJECT : SAT Identifier:

More information

Scheme: boolean #f, #t #t. Test Harness: integer 0, 1 1. C++: logical FALSE, TRUE TRUE

Scheme: boolean #f, #t #t. Test Harness: integer 0, 1 1. C++: logical FALSE, TRUE TRUE Chapter 40. Options Topic: Ignore Options may be set to modify the behavior of ACIS. An option s value may be a flag (indicating an on/off state), a number (integer or real number), or a string. Options

More information

Classes Aa thru ATTRIB_Dr

Classes Aa thru ATTRIB_Dr Chapter 8. Classes Aa thru ATTRIB_Dr Topic: Ignore The class interface is a set of C++ classes, including their public and protected data and methods (member functions), that an application can use directly

More information

Function: Chapter 4. api_accurate_bs3_approximation

Function: Chapter 4. api_accurate_bs3_approximation Chapter 4. Functions Topic: Ignore The function interface is a set of Application Procedural Interface (API) and Direct Interface (DI) functions that an application can invoke to interact with ACIS. API

More information

Scheme Extensions Aa thru Mz

Scheme Extensions Aa thru Mz Chapter 2. Scheme Extensions Aa thru Mz Topic: Ignore Scheme is a public domain programming language, based on the LISP language, that uses an interpreter to run commands. ACIS provides extensions (written

More information

The ACIS_OBJECT class provides a base class level interface to memory management by overriding the standard new and delete operators.

The ACIS_OBJECT class provides a base class level interface to memory management by overriding the standard new and delete operators. Chapter 3. Classes Topic: Ignore The class interface is a set of C++ classes, including their public and protected data and methods (member functions), that an application can use directly to interact

More information

CMSC 132: Object-Oriented Programming II

CMSC 132: Object-Oriented Programming II CMSC 132: Object-Oriented Programming II Java Support for OOP Department of Computer Science University of Maryland, College Park Object Oriented Programming (OOP) OO Principles Abstraction Encapsulation

More information

Functions Aa thru Az. Chapter 16. angle_between

Functions Aa thru Az. Chapter 16. angle_between Chapter 16. Functions Aa thru Az Topic: Ignore The function interface is a set of Application Procedural Interface (API) and Direct Interface (DI) functions that an application can invoke to interact with

More information

Prototype: outcome api_add_guide_curve_si ( AcisSLInterface* obj, // skinning interface // object

Prototype: outcome api_add_guide_curve_si ( AcisSLInterface* obj, // skinning interface // object Chapter 5. Functions Topic: Ignore The function interface is a set of Application Procedural Interface (API) and Direct Interface (DI) functions that an application can invoke to interact with ACIS. API

More information

curve_irregularities*& cirr,// pointer to list of // irregularities // returned

curve_irregularities*& cirr,// pointer to list of // irregularities // returned Chapter 3. Functions Topic: Ignore The function interface is a set of Application Procedural Interface (API) and Direct Interface (DI) functions that an application can invoke to interact with ACIS. API

More information

Vector and Free Store (Pointers and Memory Allocation)

Vector and Free Store (Pointers and Memory Allocation) DM560 Introduction to Programming in C++ Vector and Free Store (Pointers and Memory Allocation) Marco Chiarandini Department of Mathematics & Computer Science University of Southern Denmark [Based on slides

More information

3.Constructors and Destructors. Develop cpp program to implement constructor and destructor.

3.Constructors and Destructors. Develop cpp program to implement constructor and destructor. 3.Constructors and Destructors Develop cpp program to implement constructor and destructor. Constructors A constructor is a special member function whose task is to initialize the objects of its class.

More information

Code Generation & Parameter Passing

Code Generation & Parameter Passing Code Generation & Parameter Passing Lecture Outline 1. Allocating temporaries in the activation record Let s optimize our code generator a bit 2. A deeper look into calling sequences Caller/Callee responsibilities

More information

INITIALISING POINTER VARIABLES; DYNAMIC VARIABLES; OPERATIONS ON POINTERS

INITIALISING POINTER VARIABLES; DYNAMIC VARIABLES; OPERATIONS ON POINTERS INITIALISING POINTER VARIABLES; DYNAMIC VARIABLES; OPERATIONS ON POINTERS Pages 792 to 800 Anna Rakitianskaia, University of Pretoria INITIALISING POINTER VARIABLES Pointer variables are declared by putting

More information

Object Oriented Programming: In this course we began an introduction to programming from an object-oriented approach.

Object Oriented Programming: In this course we began an introduction to programming from an object-oriented approach. CMSC 131: Chapter 28 Final Review: What you learned this semester The Big Picture Object Oriented Programming: In this course we began an introduction to programming from an object-oriented approach. Java

More information

OBJECT ORIENTED PROGRAMMING USING C++ CSCI Object Oriented Analysis and Design By Manali Torpe

OBJECT ORIENTED PROGRAMMING USING C++ CSCI Object Oriented Analysis and Design By Manali Torpe OBJECT ORIENTED PROGRAMMING USING C++ CSCI 5448- Object Oriented Analysis and Design By Manali Torpe Fundamentals of OOP Class Object Encapsulation Abstraction Inheritance Polymorphism Reusability C++

More information

BLND provides standard blending functionality, which is described in this manual, and includes:

BLND provides standard blending functionality, which is described in this manual, and includes: Chapter 1. Blending Component Component: *Blending The Blending Component (BLND), in the blnd directory, implements standard blending operations. The sharp edges and vertices in models must often be replaced

More information

Boolean Component. Chapter 1. Boolean Operations

Boolean Component. Chapter 1. Boolean Operations Chapter 1. Boolean Component Component: The Boolean Component (BOOL), in the bool directory, performs Boolean operations on the model topology of bodies, first finding the intersections between bodies,

More information

Introduction to C++ with content from

Introduction to C++ with content from Introduction to C++ with content from www.cplusplus.com 2 Introduction C++ widely-used general-purpose programming language procedural and object-oriented support strong support created by Bjarne Stroustrup

More information

Absolute C++ Walter Savitch

Absolute C++ Walter Savitch Absolute C++ sixth edition Walter Savitch Global edition This page intentionally left blank Absolute C++, Global Edition Cover Title Page Copyright Page Preface Acknowledgments Brief Contents Contents

More information

COMP322 - Introduction to C++ Lecture 02 - Basics of C++

COMP322 - Introduction to C++ Lecture 02 - Basics of C++ COMP322 - Introduction to C++ Lecture 02 - Basics of C++ School of Computer Science 16 January 2012 C++ basics - Arithmetic operators Where possible, C++ will automatically convert among the basic types.

More information

G Programming Languages - Fall 2012

G Programming Languages - Fall 2012 G22.2110-003 Programming Languages - Fall 2012 Lecture 4 Thomas Wies New York University Review Last week Control Structures Selection Loops Adding Invariants Outline Subprograms Calling Sequences Parameter

More information

Pointer Basics. Lecture 13 COP 3014 Spring March 28, 2018

Pointer Basics. Lecture 13 COP 3014 Spring March 28, 2018 Pointer Basics Lecture 13 COP 3014 Spring 2018 March 28, 2018 What is a Pointer? A pointer is a variable that stores a memory address. Pointers are used to store the addresses of other variables or memory

More information

Chapter 17 vector and Free Store

Chapter 17 vector and Free Store Chapter 17 vector and Free Store Bjarne Stroustrup www.stroustrup.com/programming Overview Vector revisited How are they implemented? Pointers and free store Allocation (new) Access Arrays and subscripting:

More information

Functions in C C Programming and Software Tools. N.C. State Department of Computer Science

Functions in C C Programming and Software Tools. N.C. State Department of Computer Science Functions in C C Programming and Software Tools N.C. State Department of Computer Science Functions in C Functions are also called subroutines or procedures One part of a program calls (or invokes the

More information

Scheme Extensions. Chapter 2. curve:intersect

Scheme Extensions. Chapter 2. curve:intersect Chapter 2. Scheme Extensions Topic: Ignore Scheme is a public domain programming language, based on the LISP language, that uses an interpreter to run commands. ACIS provides extensions (written in C++)

More information

Scheme Extension: Chapter 2. bool:chop

Scheme Extension: Chapter 2. bool:chop Chapter 2. Scheme Extensions Topic: Ignore Scheme is a public domain programming language, based on the LISP language, that uses an interpreter to run commands. ACIS provides extensions (written in C++)

More information

This chapter briefly describes the formats of various files created or used by ACIS.

This chapter briefly describes the formats of various files created or used by ACIS. Chapter 10. File Formats Ignore This chapter briefly describes the formats of various files created or used by ACIS. SAT Save File *SAT Save and Restore ACIS saves, or stores, model geometry information

More information

Chapter 17 vector and Free Store

Chapter 17 vector and Free Store Chapter 17 vector and Free Store Hartmut Kaiser hkaiser@cct.lsu.edu http://www.cct.lsu.edu/~hkaiser/fall_2010/csc1253.html Slides adapted from: Bjarne Stroustrup, Programming Principles and Practice using

More information

G Programming Languages - Fall 2012

G Programming Languages - Fall 2012 G22.2110-003 Programming Languages - Fall 2012 Lecture 12 Thomas Wies New York University Review Last lecture Modules Outline Classes Encapsulation and Inheritance Initialization and Finalization Dynamic

More information

Surfacing using Creo Parametric 3.0

Surfacing using Creo Parametric 3.0 Surfacing using Creo Parametric 3.0 Overview Course Code Course Length TRN-4506-T 3 Days In this course, you will learn how to use various techniques to create complex surfaces with tangent and curvature

More information

Suppose we find the following function in a file: int Abc::xyz(int z) { return 2 * z + 1; }

Suppose we find the following function in a file: int Abc::xyz(int z) { return 2 * z + 1; } Multiple choice questions, 2 point each: 1. What output is produced by the following program? #include int f (int a, int &b) a = b + 1; b = 2 * b; return a + b; int main( ) int x=1, y=2, z=3;

More information

Healing Component. Chapter 1.

Healing Component. Chapter 1. Chapter 1. Component Component: * The Component (HEAL), in the heal directory, fixes solid models usually imported from other modeling systems into ACIS in which tolerance problems affect how ACIS interprets

More information

Introduction to C++ Introduction. Structure of a C++ Program. Structure of a C++ Program. C++ widely-used general-purpose programming language

Introduction to C++ Introduction. Structure of a C++ Program. Structure of a C++ Program. C++ widely-used general-purpose programming language Introduction C++ widely-used general-purpose programming language procedural and object-oriented support strong support created by Bjarne Stroustrup starting in 1979 based on C Introduction to C++ also

More information

CMSC 132: Object-Oriented Programming II

CMSC 132: Object-Oriented Programming II CMSC 132: Object-Oriented Programming II Java Support for OOP Department of Computer Science University of Maryland, College Park Object Oriented Programming (OOP) OO Principles Abstraction Encapsulation

More information

Project curves, points, or sketches onto faces and planes.

Project curves, points, or sketches onto faces and planes. Project Curve Path: Curve tab > Derived Curve group > Project Curve Objectives Project curves, points, or sketches onto faces and planes. Prerequisites File tab > Start > Modeling Projecting Curves to

More information

CSE 504. Expression evaluation. Expression Evaluation, Runtime Environments. One possible semantics: Problem:

CSE 504. Expression evaluation. Expression Evaluation, Runtime Environments. One possible semantics: Problem: Expression evaluation CSE 504 Order of evaluation For the abstract syntax tree + + 5 Expression Evaluation, Runtime Environments + + x 3 2 4 the equivalent expression is (x + 3) + (2 + 4) + 5 1 2 (. Contd

More information

Cpt S 122 Data Structures. Course Review Midterm Exam # 2

Cpt S 122 Data Structures. Course Review Midterm Exam # 2 Cpt S 122 Data Structures Course Review Midterm Exam # 2 Nirmalya Roy School of Electrical Engineering and Computer Science Washington State University Midterm Exam 2 When: Monday (11/05) 12:10 pm -1pm

More information

Object-Oriented Principles and Practice / C++

Object-Oriented Principles and Practice / C++ Object-Oriented Principles and Practice / C++ Alice E. Fischer September 26, 2016 OOPP / C++ Lecture 4... 1/33 Global vs. Class Static Parameters Move Semantics OOPP / C++ Lecture 4... 2/33 Global Functions

More information

Pointers and Memory 1

Pointers and Memory 1 Pointers and Memory 1 Pointer values Pointer values are memory addresses Think of them as a kind of integer values The first byte of memory is 0, the next 1, and so on A pointer p can hold the address

More information

A Short Summary of Javali

A Short Summary of Javali A Short Summary of Javali October 15, 2015 1 Introduction Javali is a simple language based on ideas found in languages like C++ or Java. Its purpose is to serve as the source language for a simple compiler

More information

Chapter 17 vector and Free Store. Bjarne Stroustrup

Chapter 17 vector and Free Store. Bjarne Stroustrup Chapter 17 vector and Free Store Bjarne Stroustrup www.stroustrup.com/programming Overview Vector revisited How are they implemented? Pointers and free store Allocation (new) Access Arrays and subscripting:

More information

AP COMPUTER SCIENCE JAVA CONCEPTS IV: RESERVED WORDS

AP COMPUTER SCIENCE JAVA CONCEPTS IV: RESERVED WORDS AP COMPUTER SCIENCE JAVA CONCEPTS IV: RESERVED WORDS PAUL L. BAILEY Abstract. This documents amalgamates various descriptions found on the internet, mostly from Oracle or Wikipedia. Very little of this

More information

CATIA V5 Parametric Surface Modeling

CATIA V5 Parametric Surface Modeling CATIA V5 Parametric Surface Modeling Version 5 Release 16 A- 1 Toolbars in A B A. Wireframe: Create 3D curves / lines/ points/ plane B. Surfaces: Create surfaces C. Operations: Join surfaces, Split & Trim

More information

General Syntax. Operators. Variables. Arithmetic. Comparison. Assignment. Boolean. Types. Syntax int i; float j = 1.35; int k = (int) j;

General Syntax. Operators. Variables. Arithmetic. Comparison. Assignment. Boolean. Types. Syntax int i; float j = 1.35; int k = (int) j; General Syntax Statements are the basic building block of any C program. They can assign a value to a variable, or make a comparison, or make a function call. They must be terminated by a semicolon. Every

More information

ACIS Deformable Modeling

ACIS Deformable Modeling Chapter 2. ACIS Deformable Modeling The basic use of deformable modeling is to construct a curve or surface, apply constraints and loads, and then update the shape s control point set to satisfy the constraints,

More information

Common Misunderstandings from Exam 1 Material

Common Misunderstandings from Exam 1 Material Common Misunderstandings from Exam 1 Material Kyle Dewey Stack and Heap Allocation with Pointers char c = c ; char* p1 = malloc(sizeof(char)); char** p2 = &p1; Where is c allocated? Where is p1 itself

More information

POLYMORPHISM 2 PART. Shared Interface. Discussions. Abstract Base Classes. Abstract Base Classes and Pure Virtual Methods EXAMPLE

POLYMORPHISM 2 PART. Shared Interface. Discussions. Abstract Base Classes. Abstract Base Classes and Pure Virtual Methods EXAMPLE Abstract Base Classes POLYMORPHISM 2 PART Abstract Classes Static and Dynamic Casting Common Programming Errors class B { // base class virtual void m( ) =0; // pure virtual function class D1 : public

More information

POLYMORPHISM 2 PART Abstract Classes Static and Dynamic Casting Common Programming Errors

POLYMORPHISM 2 PART Abstract Classes Static and Dynamic Casting Common Programming Errors POLYMORPHISM 2 PART Abstract Classes Static and Dynamic Casting Common Programming Errors CSC 330 OO Software Design 1 Abstract Base Classes class B { // base class virtual void m( ) =0; // pure virtual

More information

Programming in C++ Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur

Programming in C++ Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Programming in C++ Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Lecture - 43 Dynamic Binding (Polymorphism): Part III Welcome to Module

More information

Functions in C C Programming and Software Tools

Functions in C C Programming and Software Tools Functions in C C Programming and Software Tools N.C. State Department of Computer Science Functions in C Functions are also called subroutines or procedures One part of a program calls (or invokes the

More information

Function Call Stack and Activation Records

Function Call Stack and Activation Records 71 Function Call Stack and Activation Records To understand how C performs function calls, we first need to consider a data structure (i.e., collection of related data items) known as a stack. Students

More information

DC2 File Format. 1. Header line 2. Entity line 3. Point line 4. String line

DC2 File Format. 1. Header line 2. Entity line 3. Point line 4. String line DC2 File Format The DesignCAD DC2 drawing file is an ASCII file, with the data present in character format. Each "record" in the file is actually a line in a text file. There are four types of records,

More information

StickFont Editor v1.01 User Manual. Copyright 2012 NCPlot Software LLC

StickFont Editor v1.01 User Manual. Copyright 2012 NCPlot Software LLC StickFont Editor v1.01 User Manual Copyright 2012 NCPlot Software LLC StickFont Editor Manual Table of Contents Welcome... 1 Registering StickFont Editor... 3 Getting Started... 5 Getting Started...

More information

Feature-based CAM software for mills, multi-tasking lathes and wire EDM. Getting Started

Feature-based CAM software for mills, multi-tasking lathes and wire EDM.  Getting Started Feature-based CAM software for mills, multi-tasking lathes and wire EDM www.featurecam.com Getting Started FeatureCAM 2015 R3 Getting Started FeatureCAM Copyright 1995-2015 Delcam Ltd. All rights reserved.

More information

Topic 7: Algebraic Data Types

Topic 7: Algebraic Data Types Topic 7: Algebraic Data Types 1 Recommended Exercises and Readings From Haskell: The craft of functional programming (3 rd Ed.) Exercises: 5.5, 5.7, 5.8, 5.10, 5.11, 5.12, 5.14 14.4, 14.5, 14.6 14.9, 14.11,

More information

Chapter 13: Copy Control. Overview. Overview. Overview

Chapter 13: Copy Control. Overview. Overview. Overview Chapter 13: Copy Control Overview The Copy Constructor The Assignment Operator The Destructor A Message-Handling Example Managing Pointer Members Each type, whether a built-in or class type, defines the

More information

Tokens, Expressions and Control Structures

Tokens, Expressions and Control Structures 3 Tokens, Expressions and Control Structures Tokens Keywords Identifiers Data types User-defined types Derived types Symbolic constants Declaration of variables Initialization Reference variables Type

More information

the gamedesigninitiative at cornell university Lecture 7 C++ Overview

the gamedesigninitiative at cornell university Lecture 7 C++ Overview Lecture 7 Lecture 7 So You Think You Know C++ Most of you are experienced Java programmers Both in 2110 and several upper-level courses If you saw C++, was likely in a systems course Java was based on

More information

CS201- Introduction to Programming Current Quizzes

CS201- Introduction to Programming Current Quizzes CS201- Introduction to Programming Current Quizzes Q.1 char name [] = Hello World ; In the above statement, a memory of characters will be allocated 13 11 12 (Ans) Q.2 A function is a block of statements

More information

Instantiation of Template class

Instantiation of Template class Class Templates Templates are like advanced macros. They are useful for building new classes that depend on already existing user defined classes or built-in types. Example: stack of int or stack of double

More information

Create Complex Surfaces

Create Complex Surfaces Create Complex Surfaces In this lesson, you will be introduced to the functionalities available in the Generative Surface Design workbench. Lesson content: Case Study: Surface Design Design Intent Stages

More information

04-19 Discussion Notes

04-19 Discussion Notes 04-19 Discussion Notes PIC 10B Spring 2018 1 Constructors and Destructors 1.1 Copy Constructor The copy constructor should copy data. However, it s not this simple, and we need to make a distinction here

More information

CS24 Week 3 Lecture 1

CS24 Week 3 Lecture 1 CS24 Week 3 Lecture 1 Kyle Dewey Overview Some minor C++ points ADT Review Object-oriented Programming C++ Classes Constructors Destructors More minor Points (if time) Key Minor Points const Motivation

More information

COMP 250: Java Programming I. Carlos G. Oliver, Jérôme Waldispühl January 17-18, 2018 Slides adapted from M. Blanchette

COMP 250: Java Programming I. Carlos G. Oliver, Jérôme Waldispühl January 17-18, 2018 Slides adapted from M. Blanchette COMP 250: Java Programming I Carlos G. Oliver, Jérôme Waldispühl January 17-18, 2018 Slides adapted from M. Blanchette Variables and types [Downey Ch 2] Variable: temporary storage location in memory.

More information

Object-oriented Programming. Object-oriented Programming

Object-oriented Programming. Object-oriented Programming 2014-06-13 Object-oriented Programming Object-oriented Programming 2014-06-13 Object-oriented Programming 1 Object-oriented Languages object-based: language that supports objects class-based: language

More information

7/21/2009. Chapters Learning Objectives. Fillet Tool

7/21/2009. Chapters Learning Objectives. Fillet Tool Chapters 12-13 JULY 21, 2009 Learning Objectives Chapter 12 Chapter 13 Use the FILLET tool to draw fillets, rounds, and other rounded corners. Place chamfers and angled corners with the CHAMFER tool. Separate

More information

Abstract. Vector. Overview. Building from the ground up. Building from the ground up 1/8/10. Chapter 17 vector and Free Store

Abstract. Vector. Overview. Building from the ground up. Building from the ground up 1/8/10. Chapter 17 vector and Free Store Chapter 17 vector and Free Store Bjarne Stroustrup www.stroustrup.com/programming Abstract Vector is not just the most useful standard container, it is also provides examples of some of the most important/powerful/

More information

Code Documentation.

Code Documentation. Code Documentation Important! It s for you It s for others The Function Description Describes what the function does for the user What resources are needed It should not need to state how this is done,

More information

G52CPP C++ Programming Lecture 13

G52CPP C++ Programming Lecture 13 G52CPP C++ Programming Lecture 13 Dr Jason Atkin http://www.cs.nott.ac.uk/~jaa/cpp/ g52cpp.html 1 Last lecture Function pointers Arrays of function pointers Virtual and non-virtual functions vtable and

More information

FORM 1 (Please put your name and section number (001/10am or 002/2pm) on the scantron!!!!) CS 161 Exam II: True (A)/False(B) (2 pts each):

FORM 1 (Please put your name and section number (001/10am or 002/2pm) on the scantron!!!!) CS 161 Exam II: True (A)/False(B) (2 pts each): FORM 1 (Please put your name and section number (001/10am or 002/2pm) on the scantron!!!!) CS 161 Exam II: True (A)/False(B) (2 pts each): 1. If a function has default arguments, they can be located anywhere

More information

Autodesk Inventor 6 Essentials Instructor Guide Chapter Four: Creating Placed Features Chapter Outline This chapter provides instruction on the follow

Autodesk Inventor 6 Essentials Instructor Guide Chapter Four: Creating Placed Features Chapter Outline This chapter provides instruction on the follow Chapter Four: Creating Placed Features Chapter Outline This chapter provides instruction on the following topics and provides exercises for students to practice their skills. Day Two Topic: How to create

More information

Name :. Roll No. :... Invigilator s Signature : INTRODUCTION TO PROGRAMMING. Time Allotted : 3 Hours Full Marks : 70

Name :. Roll No. :... Invigilator s Signature : INTRODUCTION TO PROGRAMMING. Time Allotted : 3 Hours Full Marks : 70 Name :. Roll No. :..... Invigilator s Signature :.. 2011 INTRODUCTION TO PROGRAMMING Time Allotted : 3 Hours Full Marks : 70 The figures in the margin indicate full marks. Candidates are required to give

More information

3D Design with 123D Design

3D Design with 123D Design 3D Design with 123D Design Introduction: 3D Design involves thinking and creating in 3 dimensions. x, y and z axis Working with 123D Design 123D Design is a 3D design software package from Autodesk. A

More information

CPS 506 Comparative Programming Languages. Programming Language

CPS 506 Comparative Programming Languages. Programming Language CPS 506 Comparative Programming Languages Object-Oriented Oriented Programming Language Paradigm Introduction Topics Object-Oriented Programming Design Issues for Object-Oriented Oriented Languages Support

More information

Inheritance, Polymorphism and the Object Memory Model

Inheritance, Polymorphism and the Object Memory Model Inheritance, Polymorphism and the Object Memory Model 1 how objects are stored in memory at runtime? compiler - operations such as access to a member of an object are compiled runtime - implementation

More information

Swept Blend Creates a quilt using swept blend geometry.

Swept Blend Creates a quilt using swept blend geometry. Swept Blend Creates a quilt using swept blend geometry. 1 A surface can be defined by a set of cross-sections located at various points along a controlling Spine Curve. In Pro/SURFACE, this is known as

More information

Note 12/1/ Review of Inheritance Practice: Please write down 10 most important facts you know about inheritance...

Note 12/1/ Review of Inheritance Practice: Please write down 10 most important facts you know about inheritance... CISC 2000 Computer Science II Fall, 2014 Note 12/1/2014 1 Review of Inheritance Practice: Please write down 10 most important facts you know about inheritance... (a) What s the purpose of inheritance?

More information

Dynamic Binding C++ Douglas C. Schmidt

Dynamic Binding C++ Douglas C. Schmidt Dynamic Binding C++ Douglas C. Schmidt Professor Department of EECS d.schmidt@vanderbilt.edu Vanderbilt University www.dre.vanderbilt.edu/schmidt/ (615) 343-8197 Motivation When designing a system it is

More information

Interview Questions of C++

Interview Questions of C++ Interview Questions of C++ Q-1 What is the full form of OOPS? Ans: Object Oriented Programming System. Q-2 What is a class? Ans: Class is a blue print which reflects the entities attributes and actions.

More information

CS107 Handout 08 Spring 2007 April 9, 2007 The Ins and Outs of C Arrays

CS107 Handout 08 Spring 2007 April 9, 2007 The Ins and Outs of C Arrays CS107 Handout 08 Spring 2007 April 9, 2007 The Ins and Outs of C Arrays C Arrays This handout was written by Nick Parlante and Julie Zelenski. As you recall, a C array is formed by laying out all the elements

More information

QUIZ. What is wrong with this code that uses default arguments?

QUIZ. What is wrong with this code that uses default arguments? QUIZ What is wrong with this code that uses default arguments? Solution The value of the default argument should be placed in either declaration or definition, not both! QUIZ What is wrong with this code

More information

Please refer to the turn-in procedure document on the website for instructions on the turn-in procedure.

Please refer to the turn-in procedure document on the website for instructions on the turn-in procedure. 1 CSE 131 Winter 2013 Compiler Project #2 -- Code Generation Due Date: Friday, March 15 th 2013 @ 11:59pm Disclaimer This handout is not perfect; corrections may be made. Updates and major clarifications

More information

Lesson 1: Creating T- Spline Forms. In Samples section of your Data Panel, browse to: Fusion 101 Training > 03 Sculpt > 03_Sculpting_Introduction.

Lesson 1: Creating T- Spline Forms. In Samples section of your Data Panel, browse to: Fusion 101 Training > 03 Sculpt > 03_Sculpting_Introduction. 3.1: Sculpting Sculpting in Fusion 360 allows for the intuitive freeform creation of organic solid bodies and surfaces by leveraging the T- Splines technology. In the Sculpt Workspace, you can rapidly

More information

More C++ : Vectors, Classes, Inheritance, Templates

More C++ : Vectors, Classes, Inheritance, Templates Vectors More C++ : Vectors,, Inheritance, Templates vectors in C++ basically arrays with enhancements indexed similarly contiguous memory some changes defined differently can be resized without explicit

More information

user manual vol. 2: modeling

user manual vol. 2: modeling user manual vol. 2: modeling An Company solidthinking Release 8.0 User Manual Modeling - Volume 2 1993-2009 solidthinking Inc. Part N. 80-25041-10301 Copyright 1993-2009 solidthinking, Inc. All rights

More information

05-01 Discussion Notes

05-01 Discussion Notes 05-01 Discussion Notes PIC 10B Spring 2018 1 Exceptions 1.1 Introduction Exceptions are used to signify that a function is being used incorrectly. Once an exception is thrown, it is up to the programmer

More information

double d0, d1, d2, d3; double * dp = new double[4]; double da[4];

double d0, d1, d2, d3; double * dp = new double[4]; double da[4]; All multiple choice questions are equally weighted. You can generally assume that code shown in the questions is intended to be syntactically correct, unless something in the question or one of the answers

More information

Path Objects. Introduction. Methods. Data Types. Create, Delete, Validate Methods. Configuration and Information Methods. Relational Methods

Path Objects. Introduction. Methods. Data Types. Create, Delete, Validate Methods. Configuration and Information Methods. Relational Methods Path Objects Path Objects Introduction A Path object manages coordinated multi-axis motion profiles. It is used when the motion profiles in an N-Dimensional space are required to follow a specific coordinated

More information

C++ (classes) Hwansoo Han

C++ (classes) Hwansoo Han C++ (classes) Hwansoo Han Inheritance Relation among classes shape, rectangle, triangle, circle, shape rectangle triangle circle 2 Base Class: shape Members of a class Methods : rotate(), move(), Shape(),

More information

C++ without Classes. CMSC433, Fall 2001 Programming Language Technology and Paradigms. More C++ without Classes. Project 1. new/delete.

C++ without Classes. CMSC433, Fall 2001 Programming Language Technology and Paradigms. More C++ without Classes. Project 1. new/delete. CMSC433, Fall 2001 Programming Language Technology and Paradigms Adam Porter Sept. 4, 2001 C++ without Classes Don t need to say struct New libraries function overloading confusing link messages default

More information

More C++ : Vectors, Classes, Inheritance, Templates. with content from cplusplus.com, codeguru.com

More C++ : Vectors, Classes, Inheritance, Templates. with content from cplusplus.com, codeguru.com More C++ : Vectors, Classes, Inheritance, Templates with content from cplusplus.com, codeguru.com 2 Vectors vectors in C++ basically arrays with enhancements indexed similarly contiguous memory some changes

More information

Short Notes of CS201

Short Notes of CS201 #includes: Short Notes of CS201 The #include directive instructs the preprocessor to read and include a file into a source code file. The file name is typically enclosed with < and > if the file is a system

More information

Chapter 5: Procedural abstraction. Function procedures. Function procedures. Proper procedures and function procedures

Chapter 5: Procedural abstraction. Function procedures. Function procedures. Proper procedures and function procedures Chapter 5: Procedural abstraction Proper procedures and function procedures Abstraction in programming enables distinction: What a program unit does How a program unit works This enables separation of

More information

The Decaf Language. 1 Lexical considerations

The Decaf Language. 1 Lexical considerations The Decaf Language In this course, we will write a compiler for a simple object-oriented programming language called Decaf. Decaf is a strongly-typed, object-oriented language with support for inheritance

More information