Home

base_curve_law_data Class Reference
[Laws]

Abstract base class for accessing a curve_law_data with or without the ACIS kernel. More...

#include <law_data.hxx>

Inheritance diagram for base_curve_law_data:

Inheritance graph
[legend]
Collaboration diagram for base_curve_law_data:

Collaboration graph
[legend]

List of all members.

Public Member Functions

void add ()
 Increments the use count of this law_data.
 base_curve_law_data (double in_start=0, double in_end=0)
 Constructs a base_curve_law_data.
virtual double curvature (double para)=0
 Returns the curvature of the path at the given parameter.
double data_end ()
 Returns the ending parameter of the path.
double data_start ()
 Returns the starting parameter of the path.
virtual int date ()
 Returns the version of ACIS in which this law_data class first appeared.
virtual law_datadeep_copy (base_pointer_map *pm=NULL) const =0
 Creates a copy of an item that does not share any data with the original.
virtual SPAvector eval (double para, int deriv, int side=0)=0
 This method evaluates the nth derivative of the given law at the specified parameter value.
virtual lawlaw_form ()=0
 Returns a pointer to the law class used as part of the base_curve_law_data.
virtual double length (double start, double end)=0
 Returns the distance between the two parameters.
virtual double length_param (double base, double length)=0
 Returns the parameter value at the end point.
virtual double point_perp (SPAposition in_point, double in_t)=0
 Finds the point on the curve nearest to the given point, given a guess as to its value.
virtual double point_perp (SPAposition in_point)=0
 Finds the point on the curve nearest to the given point.
int ref_count ()
 Returns the use count of this law_data.
void remove ()
 Decrements the use count of this law_data, and deletes the law_data when the count drops to zero.
virtual law_datarestore ()
 Returns NULL.
virtual void save ()=0
 Saves the law_data with its encapsulated data.
virtual law_dataset_domain (SPAinterval *new_domain)
 Sets the domain of this law_data to the given interval.
virtual int singularities (double **where, int **type, double start, double end)
 Specifies where in this law_data there might be discontinuities.
virtual char * string (law_symbol_type type=DEFAULT, int &count=*(int *) NULL_REF, law_data_node *&ldn=*(law_data_node **) NULL_REF)
 Returns a string that represents this law_data.
virtual const char * symbol (law_symbol_type type=DEFAULT)=0
 Returns the string that represents this law_data's symbol.

Protected Attributes

double end
 The ending parameter value of the path.
double start
 The starting parameter value of the path.


Detailed Description

Abstract base class for accessing a curve_law_data with or without the ACIS kernel.

Member Function Documentation

void law_data::add (  )  [inherited]

Increments the use count of this law_data.



Role: This method is called in all law_data constructors for the law_data being constructed, and on all of its sublaws.

virtual double path_law_data::curvature ( double  para  )  [pure virtual, inherited]

Returns the curvature of the path at the given parameter.



Parameters:
para parameter for test.

Implemented in wire_law_data, curve_law_data, and pcurve_law_data.

double path_law_data::data_end (  )  [inline, inherited]

Returns the ending parameter of the path.

double path_law_data::data_start (  )  [inline, inherited]

Returns the starting parameter of the path.

virtual int law_data::date (  )  [virtual, inherited]

Returns the version of ACIS in which this law_data class first appeared.



Role: If a law_data is part of a model that is to be saved at a previous ACIS release level, this is used to indicate whether the law can be saved or not.

Reimplemented in law_law_data.

virtual law_data* law_data::deep_copy ( base_pointer_map pm = NULL  )  const [pure virtual, inherited]

Creates a copy of an item that does not share any data with the original.



Role: 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.

Parameters:
pm list of items within the entity that are already deep copied.

Implemented in wire_law_data, curve_law_data, pcurve_law_data, surface_law_data, law_law_data, and base_transform_law_data.

virtual SPAvector path_law_data::eval ( double  para,
int  deriv,
int  side = 0 
) [pure virtual, inherited]

This method evaluates the nth derivative of the given law at the specified parameter value.



Role: For convenience, all law classes inherit this method. It calls the main evaluate member function and does some checking using take_dim and return_dim.

Parameters:
para parameter position.
deriv number of derivatives.
side left (-1) or right (1) - default = 0.

Implemented in wire_law_data, curve_law_data, and pcurve_law_data.

virtual law* base_curve_law_data::law_form (  )  [pure virtual]

Returns a pointer to the law class used as part of the base_curve_law_data.

Implemented in curve_law_data.

virtual double base_curve_law_data::length ( double  start,
double  end 
) [pure virtual]

Returns the distance between the two parameters.



Parameters:
start start param.
end end param.

Implemented in curve_law_data.

virtual double base_curve_law_data::length_param ( double  base,
double  length 
) [pure virtual]

Returns the parameter value at the end point.



Parameters:
base starting parameter.
length distance to end.

Implemented in curve_law_data.

virtual double base_curve_law_data::point_perp ( SPAposition  in_point,
double  in_t 
) [pure virtual]

Finds the point on the curve nearest to the given point, given a guess as to its value.



Parameters:
in_point point.
in_t parameter.

Implemented in curve_law_data.

virtual double base_curve_law_data::point_perp ( SPAposition  in_point  )  [pure virtual]

Finds the point on the curve nearest to the given point.



Parameters:
in_point point.

Implemented in curve_law_data.

int law_data::ref_count (  )  [inline, inherited]

Returns the use count of this law_data.

void law_data::remove (  )  [inherited]

Decrements the use count of this law_data, and deletes the law_data when the count drops to zero.



Role: This method is called by all law_data destructors for a law_data, and on all its sublaws. Users of a law_data should call remove instead of delete to delete it.

virtual law_data* law_data::restore (  )  [virtual, inherited]

Returns NULL.

virtual void law_data::save (  )  [pure virtual, inherited]

Saves the law_data with its encapsulated data.

Implemented in wire_law_data, curve_law_data, pcurve_law_data, surface_law_data, transform_law_data, and law_law_data.

virtual law_data* law_data::set_domain ( SPAinterval new_domain  )  [virtual, inherited]

Sets the domain of this law_data to the given interval.



Parameters:
new_domain the new domain.

Reimplemented in curve_law_data, surface_law_data, and law_law_data.

virtual int path_law_data::singularities ( double **  where,
int **  type,
double  start,
double  end 
) [virtual, inherited]

Specifies where in this law_data there might be discontinuities.



Role: The array where notes where the discontinuity occurs. The type indicates 0 if there is a discontinuity, 1 if the discontinuity in the 1st derivative, and any integer n if the discontinuity is in the nth derivative. The value -1 means that the type is not defined.

Parameters:
where where discontinuities exist.
type discontinuity types.
start start parameter.
end end parameter.

Reimplemented in wire_law_data, curve_law_data, and pcurve_law_data.

virtual char* law_data::string ( law_symbol_type  type = DEFAULT,
int &  count = *(int *) NULL_REF,
law_data_node *&  ldn = *(law_data_node **) NULL_REF 
) [virtual, inherited]

Returns a string that represents this law_data.



Role: The law function is composed of its symbol, associated parentheses, and the strings associated with its sublaws. It is provided as a user-friendly interface to laws. A derived class must override this function to be able to save a law_data.

Parameters:
type type of symbol - standard ACIS type.
count count.
ldn law data node.

Reimplemented in law_law_data.

virtual const char* law_data::symbol ( law_symbol_type  type = DEFAULT  )  [pure virtual, inherited]

Returns the string that represents this law_data's symbol.



Role: This is a pure virtual method, forcing derived classes to define their own versions of this method. Hence, this method is called from the derived class and not from this abstract class.

Parameters:
type type of symbol - standard ACIS type.

Implemented in wire_law_data, curve_law_data, pcurve_law_data, surface_law_data, transform_law_data, and law_law_data.


Member Data Documentation

double path_law_data::end [protected, inherited]

The ending parameter value of the path.

double path_law_data::start [protected, inherited]

The starting parameter value of the path.