Home

ATTRIB_DM2ACIS Class Reference
[ACIS Deformable Modeling]

Connects the deformable model functions to the ACIS modeler. More...

#include <ds2acis.hxx>

Inheritance diagram for ATTRIB_DM2ACIS:

Inheritance graph
[legend]
Collaboration diagram for ATTRIB_DM2ACIS:

Collaboration graph
[legend]

List of all members.

Public Member Functions

DS_dmodActive () const
 Returns the active member DS_dmod pointer.
int Active_tag ()
 Returns the tag for active DS_dmod.
virtual void add ()
 If this ENTITY is use counted, adds one to the count.
int Add_area_cstrn (SPApar_pos &domain_min, SPApar_pos &domain_max, int zone_flag=0, int tag_flag=1, int tag=-1)
 Returns a tag identifier for the area_cstrn added to the model.
int Add_attractor (SPAposition &ipt, int power, double gain, int tag_flag=1, int tag=-1)
 Adds an attractor to d2a_dmod.
int Add_circ_tag (int domain_dim, int flag, int behavior, SPApar_pos &ctr, SPApar_pos &pa, SPApar_pos &pb, double gain=100.0, int tag_flag=1, int tag=-1)
 Returns a tag identifier; Adds a DS_circ domain_crv tag object.
int Add_crv_cstrn (int domain_dim, pcurve *pcur, int behavior=(1<< 3), int tag_flag=1, int tag=-1)
 Adds curve constraints along the parameter-space curve and returns a tag identifier.
int Add_crv_load (pcurve *domain_pcur, bs3_curve free_pcur, SPAposition &p0, SPAposition &p1, SPAposition &p2, int syntax, double gain, int tag_flag, int tag)
 Adds a distributed curve spring along domain_pcur and returns a tag identifier.
int Add_dist_press (double gain, double *domain_min, double *domain_max, int tag_flag=1, int tag=-1)
 Adds a distributed pressure load to a region of the deformable surface and returns a tag identifier.
virtual int Add_multi_face (FACE *face1, int &tag)
 Connects quad faces into a quilt, returning the tag for the new root sibling or -1 if none.
virtual int Add_patch (int shape_flag, SPApar_pos pt1, SPApar_pos pt2, SPApar_pos pt3, int refinement, int seam_count, DS_pfunc **seam, int tag_flag)
 Creates and adds a patch to the patch hierarchy.
int Add_pt_cstrn (int domain_dim, SPApar_pos &dpt, SPAposition *ipt=NULL, int behavior=(1<< 3), int tag_flag=1, int tag=-1)
 Adds a point constraint to the deformable surface at the domain location specified by dpt and returns a tag identifier.
int Add_pt_press (SPApar_pos &dpt, double gain, int tag_flag=1, int tag=-1)
 Adds a point pressure to the deformable surface at the domain location specified by dpt and returns a tag identifier.
int Add_spring (SPApar_pos &dpt, SPAposition &ipt, int ipt_flag, double gain, int slide_state=0, int tag_flag=1, int tag=-1)
 Adds a spring load to the deformable surface connecting a point on the surface to a point in image space.
int Add_spring_set (int pt_count, double *domain_pts, double *free_pts, double gain, int tag_flag=1, int tag=-1)
 Adds a load, which is a set of spring loads all sharing a common gain.
int Add_vector_load (SPAvector &ivec, double gain, int tag_flag=1, int tag=-1)
 Adds a vector load to a d2a_dmod.
virtual logical apply_transform (const SPAtransf &t, ENTITY_LIST &list, logical negate=FALSE, logical reset_pattern=TRUE)
 Transforms this ENTITY.
ATTRIBattrib () const
 Returns this ENTITY's attribute pointer, or NULL if there is no attached attribute.
 ATTRIB_DM2ACIS (ATTRIB_DM2ACIS &d2a, ENTITY *owner)
 C++ copy constructor requests memory for this object and populates it with the data from the object supplied as an argument.
 ATTRIB_DM2ACIS (ENTITY *entity_owner=NULL)
 C++ initialize constructor requests memory for this object and populates it with the data supplied as arguments.
ATTRIB_DSGROUP * Attrib_dsgroup ()
 Gets the attrib_dsgroup for this hierarchy.
ENTITYbackup ()
 Creates a duplicate record and a change bulletin, if needed, as a backup for roll back.
ENTITYBase_owner (DS_dmod *dmod)
 Returns the owner pointer for target dmod DS_group.
int bulletin_count () const
 Returns the number of bulletins referring to this ENTITY.
virtual logical call_method (METHOD_ID const &, METHOD_ARGS const &)
 Executes the implementation function for a routine virtual method.
void Change_entity (ENTITY *from_entity, ENTITY *in_entity)
 Changes the entity pointer for a DS_dmod.
DS_dmodChild (int tag_flag=1)
 Gets the child dmod pointer, or NULL.
int Child_tag (int tag_flag=1)
 Gets the child tag id, or -1 if none.
DS_TAGS Classify_tag (int tag)
 Returns the DS_tag_type for the tag or DS_tag_none.
void Clear_editing ()
 Command for editing state functions and is related to the Editing and Set_editing methods.
void Clear_mesh_rebuild ()
 Access functions for mesh rebuild state.
void Clear_mesh_state ()
 Access functions for mesh rebuild state.
virtual void Commit_to_owner ()
 Moves data to face and ATTRIB_DSMODEL.
int Convert_loads_and_cstrns (int tag, DM_target_memory flag=DM_remember_target)
 Converts curve constraints into curve loads and converts curve loads into curve constraints.
virtual ENTITYcopy_data (ENTITY_LIST &, pointer_map *pm=NULL, logical dpcpy_skip=FALSE, SCAN_TYPE reason=SCAN_COPY) const
 Allocates a new ENTITY and calls copy_common to fill it in.
virtual void copy_owner (ENTITY *copy_ent)
 Notifies this ATTRIB that its owning ENTITY has been copied.
virtual void copy_scan (ENTITY_LIST &, SCAN_TYPE reason=SCAN_COPY, logical dpcpy_skip=FALSE) const
 Adds dependent ENTITYs of this ENTITY to the list of ENTITYs to be copied.
virtual logical copyable () const
 Indicates whether this attribute should be included when the owning entity is copied.
virtual void debug_ent (FILE *) const
 Prints the type and address of this ENTITY, roll back pointer, attributes, and any unknown subtype information.
virtual logical deletable () const
 Indicates whether this ATTRIB is independently deletable of its owner.
DS_dmodDmod ()
 Returns the root DS_dmod pointer.
void Dmod_2tmp_shape (int tag_flag=1)
 Stores ACIS shape data for tgt_dmod.
int Domain_dim (int tag_flag=1)
 Returns the target's domain dimension: 1 is for a 1d curve; 2 is for a 2d surface.
void Draw_all_icons (const DM_icon_draw_args &args)
 Draws icons for all tag object in the ATTRIB_DM2ACIS using the data encapsulated by the draw_args.
void Draw_dmod_icons (const DM_icon_draw_args &args, int tag)
 Draws all icons on the DS_dmod specified by tag using the data encapsulated by the draw_args.
void Draw_icon (const DM_icon_draw_args &args, const int *tags, int ntags)
 Draws this icon using the data encapsulated by the draw_args.
void Draw_icon (const DM_icon_draw_args &args, int tag)
 Draws icons using the data encapsulated by the draw_args.
int Draw_state (int tag_flag=1)
 Searches for dmod by tag or uses the active dmod.
virtual logical duplicatable () const
 Indicates whether this ATTRIB can be duplicated.
ATTRIBduplicate (ENTITY *new_ent) const
 Duplicate this attribute onto the given ENTITY.
int Editing ()
 Command for editing state functions and is related to the Set_editing and Clear_editing methods.
void Elevate_dmod_degree (int tag_flag=1, int cont_flag=0)
 Increases the dmod's polynomial degree by adding more degrees of freedom per element.
ENTITYentity () const
 Returns a pointer to the ENTITY that owns this ATTRIB.
void Eval_crv_src_domain (int tag, const double *s, int npt, DM_dbl_array &C)
 Evaluates an embedded source curve for the given tag.
void Eval_crv_tgt (int tag, const double *uv, int npt, DM_dbl_array &W)
 Evaluates a target curve for the given tag.
void Extrapolate_dmod (int tag_flag)
 Increases the dmod's domain size by 5% across each edge.
DS_cstrn * Find_cstrn_by_tag (int tag, int &patch_tag1, int &patch_tag2)
 Searches the entire hierarchy for the cstrn that matches the tag identifier.
void Find_cstrn_for_coedge (COEDGE *coedge, ATTRIB_CRV_CSTRN *&attrib_crv_cstrn, DS_cstrn *&crv_cstrn, void *&src_data, int &tag_id, DS_dmod *&dmod)
 Finds matching ACIS and dmod crv_cstrn pointers.
DS_load * Find_load_by_tag (int tag, int &patch_tag)
 Searches entire hierarchy for load that matches the tag identifier.
int Find_patch_by_tag (int tag)
 Returns the patch that contains the given tag or -1, and makes the returned dmod the active_dmod.
int Find_tag_by_iline (SPAposition &p0, SPAposition &p1, double max_dist, int max_dist_units, int &pt_index)
 Returns the tag number (or -1) of the point closest to the line specified by p0 and p1.
virtual void fix_pointers (ENTITY *[], SCAN_TYPE reason=SCAN_COPY)
 Converts pointers from copy indices into real pointers.
void Free_data ()
 Frees any memory in d2a_dmod, d2a_clump, d2a_tmp_surface, and d2a_dmod_clump.
virtual void from_tolerant_owner (ENTITY *non_tol_ent)
 Notifies this ATTRIB that its owning ENTITY is being replaced with a non-tolerant ENTITY.
virtual void full_size (SizeAccumulator &est, logical countSelf=TRUE) const
 Increments the SizeAccumulator by the size, in bytes, of everything owned by this ENTITY and, optionally, of the ENTITY itself.
void Get_alpha (double *alpha, int tag_flag=1)
 Returns d2a_dmod resistance to stretch.
void Get_area_cstrn_flag (int tag, int &zone_flag)
 Gets the zone_flag value for the area_cstrn.
void Get_beta (int domain_dim, double *beta, int tag_flag=1)
 Returns d2a_dmod resistance to bending.
void Get_comb_graphics (int &elem_pt_count, double &gain, int tag_flag=1)
 Returns current comb graphic's values.
int Get_commited ()
 Returns the commit state.
copy_action get_copy_owner_action (void) const
 Get the current copy_owner action for this attribute.
int Get_cstrn (int tag, DS_TAGS &type_id, DS_CSTRN_SRC &src_type, int &patch1_tag, int &patch2_tag, char *shape1, char *shape2, int &behavior, int &state, int &rights, void *&src1_data, void *&src2_data, int domain_flag, int &uv1_pts_count, SPApar_pos uv1_pts[3], int &uv2_pts_count, SPApar_pos uv2_pts[3], double &tang_gain, int &ntgrl_degree)
 Sets the active_dmod to owner of the tag object.
void Get_default_state (int &shape_flag, int tag_flag=1)
 Returns the default shape state.
void Get_degree (int degrees[2], int tag_flag=1)
 Returns the basis polynomial degree, 1d:[u_dir, not_used].
void Get_delta (double &d, int tag_flag=1)
 Returns the d2a_dmod resistance to displacement.
void Get_dmod_tags (int dmod_tag, int &ntags, DM_tag_array &tags)
 Returns a DM_tag_array containing the tags of all tag objects embedded in the specified DS_dmod.
void Get_dmods (int &ntags, DM_tag_array &tags)
 This method returns a DM_tag_array containing the tags of all DS_dmods in the DS_dmod hierarchy.
void Get_dof_state (int &dof_count, int &free_count, int &cstrn_count, int &fixed_count, int &lambda_count, int &lfixed_count, int tag_flag=1)
 Returns the degree of freedom of the given dmod state.
int Get_dofs (int &dof_count, int &image_dim, int &dof_count_u, int &dof_count_v, double *&dof_vec, double *&dof_def, double *&weights, int tag_flag)
 For information purposes only.
void Get_dynamics (double &dt, double &mass, double &damp, int tag_flag=1)
 Returns the d2a_dmod dyn_load parameter values.
int Get_elem_count (int &elem_count, int *base_count, int tag_flag=1)
 Returns the number elements for the deformable model.
void Get_end_conds (int &end_cond_u, int &singular_u, int &end_cond_v, int &singular_v, int tag_flag=1)
 Returns end states for a d2a_dmod.
ENTITYGet_entity (int tag)
 Returns the ACIS ENTITY pointer (FACE or EDGE) associated with the DS_dmod specified by tag.
void Get_epsilon (double &eps, int tag) const
 Epsilon regulates a shape fairing (energy minimization) term that is used to dampen control point oscillations in high degree splines (degree>8).
tolerant_action get_from_tolerant_owner_action (void) const
 Get the current from_tolerant_owner action for this attribute.
void Get_gamma (double &gamma, int tag_flag=1)
 Returns the d2a_dmod resistance to bending.
DM_iconGet_icon (int tag)
 Returns the specified icon.
void Get_integral_degree (int &integral_degree, int tag_flag=1)
 Returns the degree of the polynomials accurately integrated when making deformable and constraint equations.
void Get_interior_state (int &interior_state, int tag_flag)
 Returns the target model's interior state value.
int Get_knots (int &u_knot_count, int &v_knot_count, double *&u_knots, int *&u_knot_index, double *&v_knots, int *&v_knot_index, int tag_flag=1)
 Returns the degree of the polynomials accurately integrated when making deformable and constraint equations.
void Get_load_gain (int tag, double &gain)
 Returns the current gain value for the tag.
geometry_changed_action get_lop_change_owner_action (void) const
 Get the current lop_change_owner action for this attribute.
merge_action get_merge_owner_action (void) const
 Get the current merge_owner action for this attribute.
void Get_mesh_grid (int grid[2], int tag_flag=1)
 Returns the number of surface figures render points.
int Get_mesh_state ()
 Access functions for mesh rebuild state.
void Get_pt_uv (int tag, SPApar_pos &dpt)
 Returns the current uv location of the tag.
int Get_pt_xyz (int tag, int pt_index, SPAposition &p0)
 Returns the current xyz position of the tag.
ADM_regobjGet_regobj () const
 Returns d2a_regobj.
geometry_changed_action get_rep_owner_geom_action (void) const
 Get the current replace_owner_geometry action for this attribute.
replace_action get_replace_owner_action (void) const
 Get the current replace_owner action for this attribute.
geometry_changed_action get_reverse_owner_action (void) const
 Get the current reverse_owner action for this attribute.
void Get_slide_state (int tag, int &slide_state)
 Returns the spring's slide state.
split_action get_split_owner_action (void) const
 Get the current split_owner action for this attribute.
double Get_spring_length (int tag)
 Returns the length for springs and spring sets.
int * Get_tag_summary (int &tag_count, int tag_flag=1)
 Returns the each tag object's tag id and tag type.
void Get_tags (int &ntags, DM_tag_array &tags)
 Returns a DM_tag_array containing the tags of all tag objects embedded in the ATTRIB_DM2ACIS.
double Get_tan_display_gain (int tag_flag)
 Returns the target model's tan_display_gain value, which indicates a tangent's display magnitude.
int Get_tight_state (int tag)
 Gets the tight state for the constraint.
tolerant_action get_to_tolerant_owner_action (void) const
 Get the current to_tolerant_owner action for this attribute.
trans_action get_trans_owner_action (void) const
 Get the current trans_owner action for this attribute.
geometry_changed_action get_warp_owner_action (void) const
 Get the current warp_owner action for this attribute.
int Get_xyz (SPApar_pos uv, SPAposition &xyz, int tag_flag=1)
 Calculates the dmod xyz position for given uv location.
HISTORY_STREAMhistory () const
 Returns a pointer to the history stream for this ENTITY.
virtual int identity (int=0) const
 Returns a type identifier for this ENTITY.
virtual logical is_deepcopyable () const
 Returns TRUE if this ENTITY can be deep copied.
int Is_shape_from_solid ()
 Returns a 1 if from a solid or 0 if from a sheet or an edge.
int Is_type_tracking_curve (DS_TAGS ds_tags)
 Test the input DS_TAGS value.
virtual logical is_use_counted () const
 Indicates if this ENTITY is use-counted or not.
virtual int lookup (logical) const
 Looks up this ENTITY in the appropriate debug list.
virtual void lop_change_owner ()
 Notifies this ATTRIB that its owning ENTITY will be changed by a local operation, face removal, or shelling.
virtual void lose ()
 Posts a delete bulletin to the bulletin board indicating the instance is no longer used in the active model.
void Make_active (int tag)
 Makes the child DS_dmod with tag active.
virtual ATTRIB_AGCMake_copy (ENTITY *owner)
 Copies the attribute information from this class instance to the supplied entity.
int Make_tracking_curve (int tag, int tgt=1)
 Builds curve dmod.
virtual void merge_owner (ENTITY *other, logical deleted)
 Notifies the class_name that its owning ENTITY is about to be merged with given entity.
virtual ATTRIBmove (ENTITY *new_entity)
 Moves this ATTRIB to a new owning ENTITY.
virtual logical moveable () const
 Returns TRUE if this ATTRIB is moveable from one owning ENTITY to another.
logical needs_rollback () const
 Checks whether or not the record is already backed up.
ATTRIBnext () const
 Returns the next attribute in this ATTRIB's linked list.
DS_dmodNext_dmod (DS_dmod *tgt_dmod, int walk_flag, DS_cstrn *&next_cstrn, int &dmod_flag)
 Returns a sequence of dmods for recursion, or NULL.
ATTRIB_DM2ACISoperator= (const ATTRIB_DM2ACIS &d2a)
 Implements the assignment operator.
virtual ENTITYowner () const
 Identifies the owning ENTITY, if any, of this ATTRIB.
void Param_max (int tag, DM_dbl_array &s)
 Gets the tag object maximum parameterization value.
void Param_min (int tag, DM_dbl_array &s)
 Gets the tag object minimum parameterization value.
DS_dmodParent (int tag_flag=1)
 Gets the parent dmod pointer, or NULL.
int Parent_tag (int tag_flag=1)
 Gets the parent tag id, or -1 if none.
virtual logical pattern_compatible () const
 Returns TRUE if this is pattern compatible.
virtual logical pattern_copyable () const
 Returns TRUE if the ATTRIB is pattern-copyable.
ATTRIBprevious () const
 Returns the previous attribute in this ATTRIB's linked list.
void Print_dmod (int tag_flag=1)
 Outputs a dmod and related data summary.
void Query_icon (DM_icon_query_args &args, int tag)
 Passes the command encapsulated by the query_args to the icon to query the icon state.
void Refresh_data (float pt_icon_rad=-1.0)
 Forces all deformable surface data to be recreated from the data stored in the ACIS geometry and attribute structures.
virtual void remove (logical lose_if_zero=TRUE)
 Decrements the use count of this ENTITY.
virtual void replace_owner (ENTITY *other_entity, logical replace_owner)
 Notifies this ATTRIB that its owning ENTITY is being replaced.
virtual void replace_owner_geometry (ENTITY *new_geom)
 Notifies this ATTRIB that its owning ENTITY is being given new geometry, possibly changing its shape.
void restore_common ()
 Restores data for a record from disc to memory.
void restore_end (char *id_str)
 Terminates a restore record.
virtual void reverse_owner ()
 Notifies this ATTRIB that its owning entity's sense bit is about to be reversed.
virtual void Rm_patch (int tag_flag)
 Removes and deletes a patch from the hierarchy.
DS_TAGS Rm_tag_object (int tag)
 Removes a tag object identified by tag and returns the tag type of the object deleted.
virtual void roll_notify (BULLETIN_TYPE type, ENTITY *other)
 Fields notifications of rollback operations.
BULLETIN *& rollback () const
 Returns the pointer to the bulletin board entry for this ENTITY.
ENTITYRoot_owner ()
 Returns a FACE or EDGE pointer to the owner root entity of this attribute.
virtual logical savable () const
 Returns TRUE if this is savable.
virtual void save (ENTITY_LIST &) const
 Performs a save operation.
void Scale_dpt_array (int domain_dim, int pt_count, double *dpt, int tag_flag=1)
 Scales an array of dpts from 0 to 1 into the surface's parameter range.
void Scale_par_pos_from_dmod (int domain_dim, SPApar_pos &uv, int tag_flag=1)
 Scales a surface's parametric position to 0 to 1.
void Scale_par_pos_to_dmod (int domain_dim, SPApar_pos &uv, int tag_flag=1)
 Scales the parametric position from 0 to 1 into the surface's parameter range.
void Set_alpha (int domain_dim, double *alpha, int tag_flag=1)
 Sets the deformable surface's stretch resistance parameters.
void Set_area_cstrn_flag (int tag, int zone_flag)
 Changes the zone flag for the deformable surface's area_cstrn.
int Set_attractor_power (int tag, int power=2)
 Returns 1 if found load was changed, otherwise it returns 0.
void set_attrib (ATTRIB *attr)
 Changes the attribute pointer of this ENTITY to point to the given attribute.
void Set_beta (int domain_dim, double *beta, int tag_flag=1)
 Sets the deformable surface's bending resistance parameters.
void Set_comb_graphics (int elem_pt_count, double gain, int tag_flag=1)
 Sets the appearance of comb plots.
void Set_commited ()
 Sets the commit state to TRUE.
copy_action set_copy_owner_action (const copy_action action)
 Set the copy_owner action for this attribute.
int Set_cstrn_behavior (int tag, int behavior)
 Returns 0 when a change is allowed, else it returns 01.
int Set_cstrn_domain_dir (int tag, SPApar_vec &domain_dir, int which_dir)
 Returns 0 when a change is allowed, otherwise it returns -1.
int Set_cstrn_state (int tag, int state)
 Returns 0 when change is allowed, else it returns -1.
void Set_default_shape (int shape_flag, int tag_flag=1)
 Sets default shape state to flag value.
void Set_delta (double delta, int tag_flag=1)
 Sets the deformable surface's resistance to deviating from the default shape.
void Set_dmod_degree (int tag_flag, int new_degree)
 Increases the deformable model's polynomial degree, adding more degrees of freedom per element.
void Set_dmod_degree (int tag_flag, int new_degree_u, int new_degree_v)
 Increases the deformable model's polynomial degree, adding more degrees of freedom per element.
void Set_draw_state (int draw_state, int tag_flag=1)
 Sets the deformable surface's drawing state.
void Set_dynamics (double dt, double mass, double damp, int tag_flag=1)
 Sets the d2a_dmod dyn_load parameter values.
void Set_editing ()
 Sets the editing state functions and is related to the Editing and Clear_editing methods.
int Set_elem_count (int elem_u_count, int elem_v_count, int tol, int tag_flag)
 This method is not yet implemented.
void Set_end_conds (int domain_dim, int end_cond_u, int singular_u, int end_cond_v, int singular_v)
 Changes end states for a d2a_dmod.
void Set_epsilon (double eps, int tag)
 Epsilon regulates a shape fairing (energy minimization) term that is used to dampen control point oscillations in high degree splines (degree>8).
tolerant_action set_from_tolerant_owner_action (const tolerant_action action)
 Set the from_tolerant_owner action for this attribute.
void Set_gamma (double gamma, int tag_flag=1)
 Sets the deformable surface's resistance to bending from the default shape.
void Set_icon (int tag, DM_icon *icon)
 Sets the icon for a tag object.
void Set_icon_owner (const int *tags, int ntags)
 Sets the icon's owner.
void Set_icon_owner (int tag)
 Sets the icon's owner.
void Set_interior_state (int interior_state, int tag_flag)
 Sets the deformable surface's interior state value.
DS_TAGS Set_load_gain (DS_TAGS type, int tag, double gain, int inc_flag=0)
 When type = DS_tag_none, it searches for the load which matches the input tag number and updates its gain.
geometry_changed_action set_lop_change_owner_action (const geometry_changed_action action)
 Set the lop_change_owner action for this attribute.
merge_action set_merge_owner_action (const merge_action action)
 Set the merge_owner action for this attribute.
void Set_mesh_grid (int grid[2], int tag_flag=1)
 Sets the number of surface figures render points.
void Set_mesh_rebuild ()
 Access functions for mesh rebuild state.
DS_TAGS Set_pt_uv (int tag, SPApar_pos &dpt)
 Sets the domain point in a constraint or load, returning the modified mv_obj's tag type or DS_tag_none.
DS_TAGS Set_pt_xyz (int tag, int pt_index, SPAposition &p0, SPAposition &p1=*(SPAposition *) NULL_REF, int dir_flag=0, int cascade_flag=1)
 Sets the image point in a constraint or load and returns the tag type of the modified object.
geometry_changed_action set_rep_owner_geom_action (const geometry_changed_action action)
 Set the replace_owner_geometry action for this attribute.
replace_action set_replace_owner_action (const replace_action action)
 Set the replace_owner action for this attribute.
geometry_changed_action set_reverse_owner_action (const geometry_changed_action action)
 Set the reverse_owner action for this attribute.
int Set_slide_state (int tag, int slide_state)
 Sets the spring's slide state.
split_action set_split_owner_action (const split_action action)
 Set the split_owner action for this attribute.
int Set_tan_display_gain (double tan_display_gain, int tag_flag)
 Varies a tangent's display magnitude.
int Set_tight_state (int tag, int state)
 Sets the tight state for the constraint.
tolerant_action set_to_tolerant_owner_action (const tolerant_action action)
 Set the to_tolerant_owner action for this attribute.
void Set_tracking_curve_target (int tag, int tgt, bs3_curve target, int behavior)
 Changes a pfunc target for tracking curve.
trans_action set_trans_owner_action (const trans_action action)
 Set the trans_owner action for this attribute.
void Set_uncommited ()
 Sets the commit state to FALSE.
virtual void set_use_count (int use)
 Sets the reference use count of this ENTITY.
geometry_changed_action set_warp_owner_action (const geometry_changed_action action)
 Set the warp_owner action for this attribute.
void Setstate_all_icons (const DM_icon_cmd_args &args)
 Broadcasts the command encapsulated by the cmd_args to all tag objects in the ATTRIB_DM2ACIS using the data encapsulated by the draw_args.
void Setstate_dmod_icons (const DM_icon_cmd_args &args, int tag)
 Broadcasts the command encapsulated by the cmd_args to the all icons on the DS_dmod specified by the tag to change the icon's state.
void Setstate_icon (const DM_icon_cmd_args &args, const int *tags, int ntags)
 Broadcasts the command encapsulated by the cmd_args to the icon to change the icon's state.
void Setstate_icon (const DM_icon_cmd_args &args, int tag)
 Passes the command encapsulated by the cmd_args to the icon to change the icon's state.
int Shape_ray_xsect (SPAposition &pt, SPAunit_vector &vc, double max_dist, int max_dist_units, SPApar_pos &domain_pt, SPAposition &image_pt, int tag_flag=2)
 Builds and stores in d2a_clump a clump built from the faceting of a d2a_tmp_surface.
DS_dmodSibling (int tag_flag=1)
 Gets the sibling dmod pointer or NULL.
int Sibling_tag (int tag_flag=1)
 Gets the sibling tag, or -1 if none.
virtual unsigned size () const
 Returns the size, in bytes, of this ENTITY.
void Solve_dmod (int iter_count, int tag_flag=1)
 Solves for a new deformed shape using the current values for surface parameters, loads, and constraints.
void Split_dmod (int domain_dim, int split_pt_count, double *split_pts, int tag_flag=1)
 Splits dmod's domain description, making more elements per dmod.
virtual void split_owner (ENTITY *entity)
 Notifies the class_name that its owner is about to be split into two parts.
tag_id_type tag (logical assign_new=TRUE) const
 Data reading routine.
int Tag_from_tag_flag (int tag_flag=1)
 Returns a tag for input tag_flag.
curveTmp_curv (int tag_flag=1)
 Returns a pointer to the deformable surface's surface object for debugging purposes.
void Tmp_shape_eval (int domain_dim, SPApar_pos &dpt, SPAposition &ipt, SPAvector *ipt_d1, SPAvector *ipt_d2, int tag_flag=1)
 Evaluates tmp_surface at dpt.
surfaceTmp_surf (int tag_flag=1)
 Returns a pointer to the ACIS representation surface object for debugging purposes.
virtual void to_tolerant_owner (ENTITY *tol_ent)
 Notifies this ATTRIB that its owning ENTITY is being replaced with a tolerant ENTITY.
DS_TAGS Toggle_cstrn (int tag)
 When tag identifies a constraint that can be disabled.
void Toggle_seam (int tag_flag=1)
 Toggles patch's C0/C1/C2 connectivity.
virtual void trans_owner (SPAtransf const &trans)
 Notifies the ATTRIB that its owner is about to be transformed.
virtual void trans_owner_list (const SPAtransf &transf, ENTITY_LIST &e_list)
 Notifies this ATTRIB that its owner is about to be transformed.
virtual const char * type_name () const
 Returns a name for this ENTITY's type.
ATTRIBunhook ()
 Removes this ATTRIB from the chain of attributes of its owning ENTITY.
void Update_tmp_shape (int tag_flag=1)
 Updates the tmp_shape from DS_dmod data.
virtual int use_count () const
 Returns the use count of this ENTITY.
virtual void warp_owner (law *warp)
 Notifies this ATTRIB that its owning ENTITY will be modified by warping.

Static Public Member Functions

static MethodFunction add_method (METHOD_ID const &, MethodFunction)
 Registers an implementation function for a run-time virtual method.

Protected Member Functions

int Assign_next_tag ()
 Increment and return the hierarchy's tag id value.
virtual logical bulletin_no_change_vf (const ENTITY *other, logical identical_comparator) const
 Compares subclass data.
void check_destroy () const
 Checks that entity deletion is legitimate.
void copy_common (ENTITY_LIST &list, const ENTITY *from, pointer_map *pm=NULL, logical dpcpy_skip=FALSE, SCAN_TYPE reason=SCAN_COPY)
 Fills in this ENTITY with data from the copied ENTITY, converting pointers into indices in the supplied ENTITY_LIST.
void fix_common (ENTITY *[], SCAN_TYPE reason=SCAN_COPY)
 Converts pointers from copy indices into real pointers.
void fixup_copy (ENTITY *rollback) const
 Fixes any pointers in the ENTITY after copying for backup.
void Forget_data ()
 Make sure that nested data within copies of the origninal attribute will not cause double 'frees' when a copied attribute is actually deleted.
virtual logical holds_pattern () const
 Returns TRUE if this entity can have a pattern_holder.
logical is_unknown_entity (void) const
 Returns TRUE if this is an unknown entity.
void save_begin (logical terminator=FALSE) const
 Starts a save record.
void save_common (ENTITY_LIST &) const
 Handles the save operation.
void save_end (ENTITY_LIST &list) const
 Terminates a save record.
int Tag_count () const
 hierarchy's currently assigned tag id value.

Friends

outcome api_dm_get_attrib_dm2acis (ENTITY *entity, ATTRIB_DM2ACIS *&attrib_dm2acis, adm_options *admO, AcisOptions *acisO)
 Gets an ATTRIB_DM2ACIS attribute for the input entity if one exists, otherwise creates a new one.
outcome api_dm_rm_multi_face (ATTRIB_DM2ACIS *attrib_dm2acis, int tag, adm_options *adm_o, AcisOptions *ao)
 Separates a face from the deformable modeling multi-surface structure and marks it as a stand-alone deformable model.


Detailed Description

Connects the deformable model functions to the ACIS modeler.


Role: This is the glue code to connect the deformable modeler functions to the ACIS modeler. Given an ACIS ENTITY it builds a deformable model, and saves the user inputs on the ACIS model. This object will be stored as an attribute attached to the ATTRIB_DSGROUP which is attached to the ENTITY being sculpted to automatically handle deletion and garbage collection problems. Derived classes support deformable surfaces and deformable curves.

The contained dmod and its associated rendering data are temporary. They can be completely generated from the geometry and the information stored in an ATTRIB_DSMODEL attribute on an ATTRIB_DSGROUP attached to an ACIS FACE or EDGE. These objects will be generated at the start of an editing session and deleted at the end.

Modifications to the dynamic model during an editing session are accumulated only in the DS_dmod model. At the user's discretion those changes can be committed to the ATTRIB_DSMODEL. Commits can be rolled forward and back. Edits to the DS_dmod model can not be rolled back. ATTRIB_DM2ACIS is an attribute associated to the ACIS ENTITY being edited that will hold pointers to all the different models used during a single edit session. At the end of an edit session the attribute and all the data it points to may be deleted with a call to the API function api_remove_attrib_ds2acis_from_owner.

During sculpting one ATTRIB_DM2ACIS may point to hierarchy of DS_dmod deformable objects each of which may contain any number of loads and constraints. Every DS_dmod, load, and constraint is assigned a unique tag number. Tag number 2 is assigned to the root DS_dmod, and all subsequent tag objects are assigned tag values in the order in which they are created. Tag values are guaranteed to remain the same before and after a save and restore cycle. Tag values of deleted objects are not reused.

The active DS_dmod: While sculpting a patch hierarchy of DS_dmod, the ATTRIB_DM2ACIS saves an active DS_dmod pointer. The function Make_active, and any of the methods that operate on or find a constraint or load, make one of the members of the hierarchy active. All I/O methods that act on the values of a DS_Dmod or its loads and constraints act on the active member of the hierarchy by default. The tag number of the active member can be found by using the Active method. The ATTRIB_DM2ACIS active feature helps simplify the user interface by not requiring that the end-user always specify a DS_dmod object by name for every method call. Graphics are supported to distinguish the active DS_dmod for the end-user during a sculpting session.

d2a_editing: Some ADM functions cause the split, merge, and lose callbacks on ADM attributes to be called. These same functions are also launched by other ACIS functions, like the Booleans. The behavior of those callbacks may differ depending on who causes the callback to be executed. All ADM commands that edit the ATTRIB_DM2ACIS object and which may cause the callbacks to fire, will set the d2a_editing value to 1 when starting and clear the value back to 0 when completing.

See also:
ADM_regobj, AcisVersion, DS_dmod

Constructor & Destructor Documentation

ATTRIB_DM2ACIS::ATTRIB_DM2ACIS ( ENTITY entity_owner = NULL  ) 

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



Role: Applications should call this constructor only with the overloaded new operator inherited from the ENTITY class (for example, x=new ATTRIB_DM2ACIS(...)), because this reserves the memory on the heap, a requirement to support roll back and history management.

Parameters:
entity_owner owner.

ATTRIB_DM2ACIS::ATTRIB_DM2ACIS ( ATTRIB_DM2ACIS d2a,
ENTITY owner 
)

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



Role: Applications should call this constructor only with the overloaded new operator inherited from the ENTITY class (for example, x=new ATTRIB_DM2ACIS(...)), because this reserves the memory on the heap, a requirement to support roll back and history management.

Parameters:
d2a deformable model to acis.
owner owner.


Member Function Documentation

DS_dmod* ATTRIB_DM2ACIS::Active (  )  const

Returns the active member DS_dmod pointer.



Role: For information purposes only, refer to the description of the corresponding Standalone Deformable Modeling Component interface function DM_get_active_patch.

int ATTRIB_DM2ACIS::Active_tag (  ) 

Returns the tag for active DS_dmod.



Role: For information purposes only, refer to the description of the corresponding Standalone Deformable Modeling Component interface function DM_get_active_patch and DM_get_dmod_tag.

virtual void ENTITY::add (  )  [virtual, inherited]

If this ENTITY is use counted, adds one to the count.



Role: If this ENTITY is not use counted, signals an error.

Every held pointer to a use counted ENTITY should be declared by calling add. There should a corresponding call to remove when the user is done with the pointer. For normal ENTITYs, simply call lose when the ENTITY is no longer part of the active model. For use counted ENTITYs, the implementations of add and remove come from macros in usecount.hxx. Use counted ENTITYs implemented without the macros should implement these virtual methods manually.

Reimplemented in CURVE, EE_LIST, SPAGROUP, PCURVE, PHLV5_OCC, APOINT, REFINEMENT, RH_MATERIAL, RH_TEXTURE_SPACE, SURFACE, and VERTEX_TEMPLATE.

int ATTRIB_DM2ACIS::Add_area_cstrn ( SPApar_pos domain_min,
SPApar_pos domain_max,
int  zone_flag = 0,
int  tag_flag = 1,
int  tag = -1 
)

Returns a tag identifier for the area_cstrn added to the model.



Role: For information purposes only, refer to the description of the corresponding Standalone Deformable Modeling Component interface function DM_add_area_cstrn.

Parameters:
domain_min low bound if NULL load all domain.
domain_max top bound if NULL load all domain.
zone_flag 0 = area within the square moves compliment area is fixed, 1 = area with the square is fixed area compliment moves.
tag_flag specify tgt dmod, 1 = active dmod, 2 = root dmod, else = member dmod with tag==tag_flag.
tag when == -1 assign next tag number else use this tag number.

int ATTRIB_DM2ACIS::Add_attractor ( SPAposition ipt,
int  power,
double  gain,
int  tag_flag = 1,
int  tag = -1 
)

Adds an attractor to d2a_dmod.



Role: This also sets the active dmod. For information purposes only, refer to the description of the corresponding Standalone Deformable Modeling Component interface function DM_add_attractor.

Parameters:
ipt location of attractor.
power measure of load's locality.
gain magnitude of attractor.
tag_flag specify tgt dmod, 1 = active dmod, 2 = root dmod, else = member dmod with tag==tag_flag.
tag when == -1 assign next tag number else use this tag number.

int ATTRIB_DM2ACIS::Add_circ_tag ( int  domain_dim,
int  flag,
int  behavior,
SPApar_pos ctr,
SPApar_pos pa,
SPApar_pos pb,
double  gain = 100.0,
int  tag_flag = 1,
int  tag = -1 
)

Returns a tag identifier; Adds a DS_circ domain_crv tag object.



Role: When flag=0, adds a curve constraint. When flag=1, adds a curve load. The shape of the domain curve is an ellipse specified by a center point and two vectors defining the minimum and maximum axis. The equation of the domain curve is:

 D-curve(u) = ctr + pa * cos(u) + pb * sin(u)
 where 0 <= u <= 2*pi 
The circle is divided into elem_count pieces for numerical integration. The shape of each piece is integrated to ntgrl_degree accuracy. More pieces and higher integration accuracies decrease errors and increase the computation time of creating the constraint equations, but does not increase the computation time of solving for new deformations. The gain value is used for load curves to specify the stiffness of the sheet spring, which connects the load curve's image space curve to its domain space curve. The image space curve of a load curve is generated by projecting the circle through the surface shape. This projection is represented with a deformable spline curve. If tag is -1, the next tag number is assigned by the system; otherwise, the specified tag number is used. The user must ensure that all tag numbers are unique.

Parameters:
domain_dim dmod domain_dim (for error checking).
flag 0=add cstrn, 1=add load.
behavior orof DM_POS_FIXED (make pos cstrn), DM_TAN_FIXED (make tan cstrn), DM_CURV_FIXED (make curvature cstrn).
ctr circ = ctr + pa*cos + pb*sin.
pa pa of circ definition.
pb pb of circ definition.
gain stiffness betwee the 2 crv_loads.
tag_flag specify tgt dmod, 1 = active dmod, 2 = root dmod, else = member dmod with tag==tag_flag.
tag when == -1 assign next tag number else use this tag number.

int ATTRIB_DM2ACIS::Add_crv_cstrn ( int  domain_dim,
pcurve pcur,
int  behavior = (1<< 3),
int  tag_flag = 1,
int  tag = -1 
)

Adds curve constraints along the parameter-space curve and returns a tag identifier.



Role: Each segment of the parameter-space curve is integrated to ntrgl_degree accuracy to formulate the constraint equations. src_type identifies the origin of the curve constraint which limits the system in allowing it to be deleted or disabled, as shown in the following table. src_struct is an optional unused pointer saved for the application in case it needs to associate this curve constraint with some other data object. ACIS uses this parameter to associate constraint curves with topology edges within a solid model. If tag is -1, the next tag number is assigned by the system; otherwise, the specified tag number is used. The user must ensure that all tag numbers are unique.

Current ACIS crv_cstrn sources, privileges, and src_structs:

 DS_CRV_SRC       delete  stop    src_       comment
 ds_solid_coedge    NO     NO    coedge   crv from solid model bndry
                                          any number of faces may
                                          connect to crv
 ds_sheet_coedge    NO    YES    coedge   crv from sheet model
                                          bndry only face being
                                          deformed connects to crv
 ds_user_curve     YES    YES     NULL    crv from user interface
                                          and not from topology
                                          boundaries
For information purposes only, refer to the description of the corresponding Standalone Deformable Modeling Component interface function DM_add_crv_cstrn.

Parameters:
domain_dim dmod domain_dim.
pcur uv domain curve description.
behavior orof: DM_POS_FIXED (constrain dmod pos), DM_TAN_FIXED (constrain dmod tan), DM_CURV_FIXED (constrain dmod curv).
tag_flag specify tgt dmod, 1 = active dmod, 2 = root dmod, else = member dmod with tag==tag_flag.
tag when == -1 assign next tag number else use this tag number.

int ATTRIB_DM2ACIS::Add_crv_load ( pcurve domain_pcur,
bs3_curve  free_pcur,
SPAposition p0,
SPAposition p1,
SPAposition p2,
int  syntax,
double  gain,
int  tag_flag,
int  tag 
)

Adds a distributed curve spring along domain_pcur and returns a tag identifier.



Role: This load pulls each surface point identified by domain_pcur towards an associated point in the load's image space curve. The image space curve can be specified in 3 different manners, depending on the value of syntax.

 Syn  Image Space Curve Specification
 1    free_pcur
 2    a straight line from p0 to p1
 3    an ellipse given by the equation:
 Curve(u) = p0 + p1 * cos(u) + p2 *sin(u)
 where 0 <= u <= 2 pi
Make sure that p1 is not in the direction of p2, or the ellipse will collapse into a line segment, yielding strange results. gain specifies the stiffness between the image and domain curves. Larger gain values draw the surface points closer to the image space curve points. If tag is -1, the next tag number is assigned by the system; otherwise, the specified tag number is used. The user must ensure that all tag numbers are unique.

For information purposes only, refer to the description of the corresponding Standalone Deformable Modeling Component interface function DM_add_crv_load.

Parameters:
domain_pcur uv or u domain curve description.
free_pcur image space curve (if NULL project domain_crv to make image free_crv) used when syntax is 1.
p0 used when syntax is 2 or 3.
p1 used when syntax is 2 or 3.
p2 used when syntax is 3.
syntax specifies free_pcur construction, 1=use free_pcur, 2=free is a line from p0 to p1, 3=free is a round ctr=p0,pa=p1,pb=p2, round = ctr + cos(s)*pa + sin(s)*pb.
gain stiffness connecting the 2 curves.
tag_flag specify tgt dmod, 1 = active dmod, 2 = root dmod, else = member dmod with tag==tag_flag.
tag when == -1 assign next tag number else use this tag number.

int ATTRIB_DM2ACIS::Add_dist_press ( double  gain,
double *  domain_min,
double *  domain_max,
int  tag_flag = 1,
int  tag = -1 
)

Adds a distributed pressure load to a region of the deformable surface and returns a tag identifier.



Role: Pressures act in the direction normal to the surface and act to puff out or suck in the shape of the surface. Larger gain values have larger effects. Very large gain values may cause the system of equations to become marginally stable. The solution will oscillate and never come to an equilibrium position. If this happens, restore stability of the solution by reducing the gain value. To create very large deformations with pressure, use a sequence of mild pressure values intermixed with the the default shape feature supported by the Set_default_shape method. The region to which the pressure is applied can be limited by domain_min and domain_max. When domain_min and domain_max are NULL, the pressure is applied to the entire surface. Otherwise, domain_min and domain_max point to 2D arrays which specify the corners of a domain box to which the pressure is applied. If tag is -1, the next tag number is assigned by the system; otherwise, the specified tag number is used. The user must ensure that all tag numbers are unique.

For information purposes only, refer to the description of the corresponding Standalone Deformable Modeling Component interface function DM_add_dist_press.

Parameters:
gain gain of the pressure.
domain_min low bound if NULL load all domain.
domain_max top bound if NULL load all domain.
tag_flag specify tgt dmod, 1 = active dmod, 2 = root dmod, else = member dmod with tag==tag_flag.
tag when == -1 assign next tag number else use this tag number.

static MethodFunction ATTRIB_DM2ACIS::add_method ( METHOD_ID const &  method_id,
MethodFunction  method_func 
) [static]

Registers an implementation function for a run-time virtual method.



Role: (Supplied by the ENTITY_FUNCTIONS and UTILITY_DEF macros.)

Parameters:
method_id method id.
method_func method function.

Reimplemented from ATTRIB_AGC.

Reimplemented in ATTRIB_DS2ACIS, and ATTRIB_DC2ACIS.

virtual int ATTRIB_DM2ACIS::Add_multi_face ( FACE face1,
int &  tag 
) [inline, virtual]

Connects quad faces into a quilt, returning the tag for the new root sibling or -1 if none.



Parameters:
face1 in : face = Face to connect to hierarchy.
tag out: tag_shift = amount face tag numbers have shifted,new_tag_id = old_tag_id + tag_shift.

Reimplemented in ATTRIB_DS2ACIS, and ATTRIB_DC2ACIS.

virtual int ATTRIB_DM2ACIS::Add_patch ( int  shape_flag,
SPApar_pos  pt1,
SPApar_pos  pt2,
SPApar_pos  pt3,
int  refinement,
int  seam_count,
DS_pfunc **  seam,
int  tag_flag 
) [inline, virtual]

Creates and adds a patch to the patch hierarchy.



Role: Returns the tag for the new patch dmod or -1 for none. This should always be called between API_BEGIN and API_END and between Set_editing and Clear_editing.

Parameters:
shape_flag 0=use seams, 1=rectangle, 2=ellipse.
pt1 rect=min-corner,ellipse=center-pt.
pt2 rect=max-corner,ellipse=1st-axis-end-pt.
pt3 rect=not_used, ellipse=2nd-axis-end-pt.
refinement parent_knot_spacing/child_knot_spacing.
seam_count number of curves in seam (may be 0).
seam seam crvs (NULL=add a square (min/max) seam).
tag_flag 1 = specify parent tgt_dmod to get new patch 1 = active dmod,2= root dmod,else = member dmod with tag==tag_flag.

Reimplemented in ATTRIB_DS2ACIS, and ATTRIB_DC2ACIS.

int ATTRIB_DM2ACIS::Add_pt_cstrn ( int  domain_dim,
SPApar_pos dpt,
SPAposition ipt = NULL,
int  behavior = (1<< 3),
int  tag_flag = 1,
int  tag = -1 
)

Adds a point constraint to the deformable surface at the domain location specified by dpt and returns a tag identifier.



Role: While the point constraint is enabled, all future deformations are guaranteed to interpolate the point constraint's associated image point location. If tag is -1, the next tag number is assigned by the system; otherwise, the specified tag number is used. The user must ensure that all tag numbers are unique.

For information purposes only, refer to the description of the corresponding Standalone Deformable Modeling Component interface function DM_add_pt_cstrn.

Parameters:
domain_dim dmod domain_dim.
dpt domain_pt location of constraint.
ipt cstrn pt location or NULL.
behavior orof DM_POS_FIXED = pos constrained at pt, DM_TAN_FIXED = tan constrained at pt, DM_CURV_FIXED = curvature at pt.
tag_flag specify tgt dmod, 1 = active dmod, 2 = root dmod, else = member dmod with tag==tag_flag.
tag when == -1 assign next tag number else use this tag number.

int ATTRIB_DM2ACIS::Add_pt_press ( SPApar_pos dpt,
double  gain,
int  tag_flag = 1,
int  tag = -1 
)

Adds a point pressure to the deformable surface at the domain location specified by dpt and returns a tag identifier.



Role: The point pressure is similar to a distributed pressure, but acts on only one location of the surface at a time. The magnitude of the pressure is specified by gain. If tag is -1, the next tag number is assigned by the system; otherwise, the specified tag number is used. The user must ensure that all tag numbers are unique.

For information purposes only, refer to the description of the corresponding Standalone Deformable Modeling Component interface function DM_add_pt_press.

Parameters:
dpt domain_pt location of constraint.
gain amplitude of the pressure.
tag_flag specify tgt dmod, 1 = active dmod, 2 = root dmod, else = member dmod with tag==tag_flag.
tag when == -1 assign next tag number else use this tag number.

int ATTRIB_DM2ACIS::Add_spring ( SPApar_pos dpt,
SPAposition ipt,
int  ipt_flag,
double  gain,
int  slide_state = 0,
int  tag_flag = 1,
int  tag = -1 
)

Adds a spring load to the deformable surface connecting a point on the surface to a point in image space.



Role: The load pulls surface point towards the image space point. The surface point is specified by the domain point dpt. When ipt_flag=0, the image point is calculated as the projection of dpt into image space. This guarantees that the spring load's image space and surface points start out at the same location. When ipt_flag=1, the image space point is set equal to the ipt position. The stiffness of the spring load is specified by gain. If tag is -1, the next tag number is assigned by the system; otherwise, the specified tag number is used. The user must ensure that all tag numbers are unique.

For information purposes only, refer to the description of the corresponding Standalone Deformable Modeling Component interface function DM_add_spring.

Parameters:
dpt domain_pt loc of surf spring end.
ipt image_pt loc of free spring end.
ipt_flag 0 to let free_pt = image_loc of dpt, 1 to let free_pt = ipt.
gain stiffness of the spring.
slide_state 0=fixed,1=sliding.
tag_flag specify tgt dmod, 1 = active dmod, 2 = root dmod, else = member dmod with tag==tag_flag.
tag when == -1 assign next tag number else use this tag number.

int ATTRIB_DM2ACIS::Add_spring_set ( int  pt_count,
double *  domain_pts,
double *  free_pts,
double  gain,
int  tag_flag = 1,
int  tag = -1 
)

Adds a load, which is a set of spring loads all sharing a common gain.



Role: Each spring in the set connects a point on the surface to a point in image space. The load simultaneously pulls all the surface points towards their associated image space points. This load can be used to extract a shape from a set of scattered data points. The surface points are specified by the array domain_pts, where each pair of entries identifies one domain point (u,v):

domain_pts = [u0,v0, u1,v1,...]

The image space points are specified by the array free_pts:

free_pts = [x0,y0,z0, x1,y1,z1, ...]

gain is the stiffness for all the springs. If tag is -1, the next tag number is assigned by the system; otherwise, the specified tag number is used. The user must ensure that all tag numbers are unique.

For information purposes only, refer to the description of the corresponding Standalone Deformable Modeling Component interface function DM_add_spring_set.

Parameters:
pt_count number of springs in spring_set.
domain_pts Spring surf end pts [uv0..,uvN].
free_pts Spring free end pts [xyz0..,xyzN].
gain stiffness of the spring.
tag_flag specify tgt dmod, 1 = active dmod, 2 = root dmod, else = member dmod with tag==tag_flag.
tag when == -1 assign next tag number else use this tag number.

int ATTRIB_DM2ACIS::Add_vector_load ( SPAvector ivec,
double  gain,
int  tag_flag = 1,
int  tag = -1 
)

Adds a vector load to a d2a_dmod.



Role: This sets the active dmod. For information purposes only, refer to the description of the corresponding Standalone Deformable Modeling Component interface function DM_add_vector_load.

Parameters:
ivec direction of vector_load.
gain magnitude of vector_load.
tag_flag specify tgt dmod, 1 = active dmod, 2 = root dmod, else = member dmod with tag==tag_flag.
tag when == -1 assign next tag number else use this tag number.

virtual logical ENTITY::apply_transform ( const SPAtransf t,
ENTITY_LIST list,
logical  negate = FALSE,
logical  reset_pattern = TRUE 
) [virtual, inherited]

Transforms this ENTITY.



Role: The ENTITY_LIST is used to prevent sub-entities from being transformed more than once. This method is not included with the standard ENTITY methods in order to allow nontransformable ENTITYs to use the default implementation. (Supplied by the TRANSFORM_FUNCTION and TRANSFORM_DEF macros.)

Parameters:
t the transform to apply.
list list of entities to which the transform has already been applied.
negate negation flag.
reset_pattern internal use only.

Reimplemented in ASM_ASSEMBLY, ASM_MODEL_REF, BODY, COEDGE, CURVE, EDGE, ERROR_ENTITY, FACE, LAW, LOOP, LUMP, APATTERN, PCURVE, APOINT, SHELL, SUBSHELL, SURFACE, TCOEDGE, TEDGE, TEXT_ENT, TVERTEX, VERTEX, WCS, and WIRE.

int ATTRIB_DM2ACIS::Assign_next_tag (  )  [protected]

Increment and return the hierarchy's tag id value.

Call this function to assign a tag value for every tag obj being created to make all hierarchy tag values unique.

ATTRIB* ENTITY::attrib (  )  const [inline, inherited]

Returns this ENTITY's attribute pointer, or NULL if there is no attached attribute.

ATTRIB_DSGROUP* ATTRIB_DM2ACIS::Attrib_dsgroup (  ) 

Gets the attrib_dsgroup for this hierarchy.

ENTITY* ENTITY::backup (  )  [inherited]

Creates a duplicate record and a change bulletin, if needed, as a backup for roll back.



Role: The duplication is done via the virtual function make_copy, to let each derived type do its own backup. Before performing a change, each routine checks whether the data structure is posted on the bulletin board. If not, the posting is done automatically. Called by all system change functions.

ENTITY* ATTRIB_DM2ACIS::Base_owner ( DS_dmod dmod  ) 

Returns the owner pointer for target dmod DS_group.



Parameters:
dmod target dmod.

int ENTITY::bulletin_count (  )  const [inline, inherited]

Returns the number of bulletins referring to this ENTITY.

virtual logical ENTITY::bulletin_no_change_vf ( const ENTITY other,
logical  identical_comparator 
) const [protected, virtual, inherited]

Compares subclass data.



Role: This virtual method is called by bulletin_no_change. When the identical_comparator argument is TRUE, it requires an exact match when comparing doubles, and returns the result of memcmp as a default (for non-overridden subclasses). A FALSE argument indicates tolerant compares, in which case FALSE is returned by default.

Parameters:
other other ENTITY in the bulletin.
identical_comparator identity compare flag.

Reimplemented in BODY, COEDGE, CONE, CURVE, EDGE, ELLIPSE, FACE, HELIX, INTCURVE, LOOP, LUMP, PCURVE, PLANE, APOINT, SHELL, SPHERE, SPLINE, STRAIGHT, SUBSHELL, SURFACE, TCOEDGE, TEDGE, TORUS, TVERTEX, UNDEFC, VERTEX, and WIRE.

virtual logical ATTRIB_DM2ACIS::call_method ( METHOD_ID const &  method_id,
METHOD_ARGS const &  method_args 
) [virtual]

Executes the implementation function for a routine virtual method.



Role: (Supplied by the ENTITY_FUNCTIONs and UTILITY_DEF macros).

Parameters:
method_id method id.
method_args method args.

Reimplemented from ATTRIB_AGC.

Reimplemented in ATTRIB_DS2ACIS, and ATTRIB_DC2ACIS.

void ATTRIB_DM2ACIS::Change_entity ( ENTITY from_entity,
ENTITY in_entity 
)

Changes the entity pointer for a DS_dmod.



Parameters:
from_entity old entity ptr.
in_entity new entity ptr.

void ENTITY::check_destroy (  )  const [inline, protected, inherited]

Checks that entity deletion is legitimate.



Role: This method complains if there is an attempt to delete an entity other than through the private member function destroy, which is carefully controlled.

DS_dmod* ATTRIB_DM2ACIS::Child ( int  tag_flag = 1  ) 

Gets the child dmod pointer, or NULL.



Parameters:
tag_flag specify target dmod.

int ATTRIB_DM2ACIS::Child_tag ( int  tag_flag = 1  ) 

Gets the child tag id, or -1 if none.



Parameters:
tag_flag specify target dmod.

DS_TAGS ATTRIB_DM2ACIS::Classify_tag ( int  tag  ) 

Returns the DS_tag_type for the tag or DS_tag_none.



Role: For information purposes only, refer to the description of the corresponding Standalone Deformable Modeling Component interface function DM_classify_tag.

Parameters:
tag src tag number.

void ATTRIB_DM2ACIS::Clear_editing (  )  [inline]

Command for editing state functions and is related to the Editing and Set_editing methods.

void ATTRIB_DM2ACIS::Clear_mesh_rebuild (  )  [inline]

Access functions for mesh rebuild state.

void ATTRIB_DM2ACIS::Clear_mesh_state (  )  [inline]

Access functions for mesh rebuild state.

virtual void ATTRIB_DM2ACIS::Commit_to_owner (  )  [inline, virtual]

Moves data to face and ATTRIB_DSMODEL.

Reimplemented in ATTRIB_DS2ACIS, and ATTRIB_DC2ACIS.

int ATTRIB_DM2ACIS::Convert_loads_and_cstrns ( int  tag,
DM_target_memory  flag = DM_remember_target 
)

Converts curve constraints into curve loads and converts curve loads into curve constraints.



Role: When tag identifies a curve load, its domain curve is used to create a new curve constraint. The curve load is removed from the deformable surface and the tag for the new curve constraint is returned. When the tag identifies a curve constraint, a new curve load is created from the curve constraint's domain curve. The curve load's image space curve is made by projecting the domain curve into image space using the current deformable surface shape.

When the curve constraint is deletable, it is deleted. When it can be disabled, it is disabled and the tag of the newly created curve load is returned. When the curve constraint can't be deleted or disabled, no curve load is created and the value -1 is returned.

Parameters:
tag identifying tag for tgt load/cstrn.
flag one of DM_remember_target, DM_forget_target.

void ENTITY::copy_common ( ENTITY_LIST list,
const ENTITY from,
pointer_map pm = NULL,
logical  dpcpy_skip = FALSE,
SCAN_TYPE  reason = SCAN_COPY 
) [protected, inherited]

Fills in this ENTITY with data from the copied ENTITY, converting pointers into indices in the supplied ENTITY_LIST.



Role: Supports the copy operation. (Supplied by the ENTITY_FUNCTIONS and COPY_DEF macros.) Whenever the operation encounters a pointer to a dependent ENTITY, it find the index of the latter in the supplied ENTITY_LIST and sets the corresponding pointer in the copy to that index.

Parameters:
list list of ENTITYs being copied.
from original ENTITY being copied.
pm pointer map.
dpcpy_skip Used only by the base ENTITY and base ATTRIB class. No other derived entity or attribute should need to utilize this value. This logical indicates how non- deepcopyable attributes are handled during a deep copy. If TRUE, the copy will continue even if it encounters attributes marked as not deep-copyable. By default (FALSE), if any attributes that are found to be not deep-copyable, a sys_error will be thrown. (This flag only effects how attributes are handled; any non-deepcopyable non-attribute entities encountered will cause a sys_error to be thrown regardless of this flag's setting.)
reason type of scan.

virtual ENTITY* ATTRIB_DM2ACIS::copy_data ( ENTITY_LIST list,
pointer_map pm = NULL,
logical  dpcpy_skip = FALSE,
SCAN_TYPE  reason = SCAN_COPY 
) const [virtual]

Allocates a new ENTITY and calls copy_common to fill it in.



Role: Supports the copy operation. (Supplied by the ENTITY_FUNCTIONS and UTILITY_DEF macros.)

Parameters:
list ENTITYs to copy.
pm pointer map.
dpcpy_skip Used only by the base ENTITY and base ATTRIB class. No other derived entity or attribute should need to utilize this value. This logical indicates how non- deepcopyable attributes are handled during a deep copy. If TRUE, the copy will continue even if it encounters attributes marked as not deep-copyable. By default (FALSE), if any attributes that are found to be not deep-copyable, a sys_error will be thrown. (This flag only effects how attributes are handled; any non-deepcopyable non-attribute entities encountered will cause a sys_error to be thrown regardless of this flag's setting.)
reason scan type.

Reimplemented from ATTRIB_AGC.

Reimplemented in ATTRIB_DS2ACIS, and ATTRIB_DC2ACIS.

virtual void ATTRIB::copy_owner ( ENTITY copy_ent  )  [virtual, inherited]

Notifies this ATTRIB that its owning ENTITY has been copied.



Role: This method is used to notify this attribute that it's owner has been copied.

The predominant fashion by which copy_owner is called is during the course of ACIS operations that are constructing, deconstructing, or modifying either topology and/or geometry. This method is also called at the end of the api_down_copy_entity algorithm. As a general rule, the attribute implementing this method cannot assume the validity of the model "above" or "below" its owner, only that its owner is valid and that the copy_ent is valid.

Depending on the application needs of your attribute, it may be possible to utilize the set_copy_owner_action method to specify how your attribute should act within copy_owner, which would preclude the need to actually implement this method.

The default action is to do nothing.

Parameters:
copy_ent the new ENTITY that is a copy of this attribute's owner.
See also:
ATTRIB::set_copy_owner_action, get_copy_owner_action, copy_action, copy_attrib

Reimplemented in ATTRIB_INTEDGE, ATTRIB_INTVERT, ATTRIB_CELL, ATTRIB_CFACE_VOL, ATTRIB_FACECFACE, ATTRIB_CELL_INT_PRECEDENCE, ATTRIB_GEN_NAME, ATTRIB_CELL_PRECEDENCE, ATTRIB_VOL_COL, and ATTRIB_COL.

virtual void ATTRIB_DM2ACIS::copy_scan ( ENTITY_LIST list,
SCAN_TYPE  reason = SCAN_COPY,
logical  dpcpy_skip = FALSE 
) const [virtual]

Adds dependent ENTITYs of this ENTITY to the list of ENTITYs to be copied.



Role: Supports the copy operation. (Supplied by the ENTITY_FUNCTIONS and SCAN_DEF macros.) The default type of scan (reason) is SCAN_COPY.

Parameters:
list ENTITYs to copy.
reason type of copy.
dpcpy_skip Used only by the base ENTITY and base ATTRIB class. No other derived entity or attribute should need to utilize this value. This logical indicates how non- deepcopyable attributes are handled during a deep copy. If TRUE, the copy will continue even if it encounters attributes marked as not deep-copyable. By default (FALSE), if any attributes that are found to be not deep-copyable, a sys_error will be thrown. (This flag only effects how attributes are handled; any non-deepcopyable non-attribute entities encountered will cause a sys_error to be thrown regardless of this flag's setting.)

Reimplemented from ATTRIB_AGC.

Reimplemented in ATTRIB_DS2ACIS, and ATTRIB_DC2ACIS.

virtual logical ATTRIB::copyable (  )  const [virtual, inherited]

Indicates whether this attribute should be included when the owning entity is copied.



Role: The default is to call duplicatable().

Reimplemented in ATTRIB_ANNOTATION, ATTRIB_GEN_NAME, ATTRIB_TAG, and ID_ATTRIB.

virtual void ATTRIB_DM2ACIS::debug_ent ( FILE *  file_pointer  )  const [virtual]

Prints the type and address of this ENTITY, roll back pointer, attributes, and any unknown subtype information.



Role: This method is called by DEBUG_LIST::debug for an entirely unknown ENTITY type, or at the start of any derived class's debug_ent method. Each derived class's debug_ent method uses the debug function described in the Spatial Product Documentation to print information added at that level. (Supplied by the ENTITY_FUNCTIONS and DEBUG_DEF macros.)

Parameters:
file_pointer file pointer.

Reimplemented from ATTRIB_AGC.

Reimplemented in ATTRIB_DS2ACIS, and ATTRIB_DC2ACIS.

virtual logical ATTRIB::deletable (  )  const [virtual, inherited]

Indicates whether this ATTRIB is independently deletable of its owner.



Role: The default and suggested behavior for this method is to return FALSE. This is an indication that the attribute's lifetime is controlled by its owner; e.g., when the owner is lost, so too is this attribute.

An exception to this default behavior is if the attribute has no owner, e.g., its owner pointer is NULL. In this case, ATTRIB::deletable will return TRUE.

You may want to return TRUE for this method if, as suggested, you want the attribute to be lost before it's owner. Note that api_del_entity will guarantee that all deletable attributes are lost before their owner is lost.

Reimplemented from ENTITY.

Reimplemented in ATTRIB_TAG, and ID_ATTRIB.

DS_dmod* ATTRIB_DM2ACIS::Dmod (  )  [inline]

Returns the root DS_dmod pointer.

void ATTRIB_DM2ACIS::Dmod_2tmp_shape ( int  tag_flag = 1  ) 

Stores ACIS shape data for tgt_dmod.



Parameters:
tag_flag specify tgt dmod and how deep to go, 1 = active dmod (-1 = and offspring), 2 = root dmod (-2 = and siblings and offspring), else = member dmod with tag==tag_flag.

int ATTRIB_DM2ACIS::Domain_dim ( int  tag_flag = 1  ) 

Returns the target's domain dimension: 1 is for a 1d curve; 2 is for a 2d surface.



Role: For information purposes only, refer to the description of the corresponding Standalone Deformable Modeling Component interface function DM_get_domain_dim.

Parameters:
tag_flag specify tgt dmod.

void ATTRIB_DM2ACIS::Draw_all_icons ( const DM_icon_draw_args args  ) 

Draws icons for all tag object in the ATTRIB_DM2ACIS using the data encapsulated by the draw_args.



Role: Calls the icon's Draw method.The data encapsulate by the draw_args is passed through this method.

Parameters:
args args passed.

void ATTRIB_DM2ACIS::Draw_dmod_icons ( const DM_icon_draw_args args,
int  tag 
)

Draws all icons on the DS_dmod specified by tag using the data encapsulated by the draw_args.



Role: Calls the icon's Draw method. The data encapsulate by the draw_args is passed through this method.

Parameters:
args args passed.
tag tag ID.

void ATTRIB_DM2ACIS::Draw_icon ( const DM_icon_draw_args args,
const int *  tags,
int  ntags 
)

Draws this icon using the data encapsulated by the draw_args.



Role: Calls the icon's Draw method. The data encapsulate by the draw_args is passed through.

Parameters:
args args passed.
tags array of tags.
ntags number of tags.

void ATTRIB_DM2ACIS::Draw_icon ( const DM_icon_draw_args args,
int  tag 
)

Draws icons using the data encapsulated by the draw_args.



Role: Calls the icon's Draw method. The data encapsulate by the draw_args is passed through.

Parameters:
args args passed.
tag tag ID.

int ATTRIB_DM2ACIS::Draw_state ( int  tag_flag = 1  ) 

Searches for dmod by tag or uses the active dmod.



Parameters:
tag_flag specify tgt dmod.

virtual logical ATTRIB::duplicatable (  )  const [virtual, inherited]

Indicates whether this ATTRIB can be duplicated.



Role: Indicates whether this attribute may be duplicated via either a copy or a save/restore of the owning ENTITY. The default is TRUE.

ATTRIB* ATTRIB::duplicate ( ENTITY new_ent  )  const [inherited]

Duplicate this attribute onto the given ENTITY.



Role: Using an attribute's copy_data, copy_common,, copy_scan, and fix_pointer methods, this ATTRIB base class method will duplicate 'this' attribute onto the given entity. (Assuming 'this' returns copyable() == TRUE).

Simple attribute data will be propagated onto the new attribute according to the attribute's COPY_DEF.

Complex attribute data (pointers to entities other than the attribute's owner) will not be copied to the new attribute via this method. Instead, the complex attribute data will be set to NULL.

Parameters:
new_ent the new ENTITY onto which a duplicate of 'this' attribute will be placed.

int ATTRIB_DM2ACIS::Editing (  )  [inline]

Command for editing state functions and is related to the Set_editing and Clear_editing methods.

void ATTRIB_DM2ACIS::Elevate_dmod_degree ( int  tag_flag = 1,
int  cont_flag = 0 
)

Increases the dmod's polynomial degree by adding more degrees of freedom per element.



Role: This preserves the continuity and allows the new shape to form exactly the old.

For information purposes only, refer to the description of the corresponding Standalone Deformable Modeling Component interface function DM_elevate_dmod_degree.

Parameters:
tag_flag specify tgt dmod and how deep to go, 1 = active dmod and offspring, 2 = root dmod and offspring else = member dmod with tag==tag_flag and offspring.
cont_flag 0 preserves current elem continuity and 1 increments elem continuity.

ENTITY* ATTRIB::entity (  )  const [inline, inherited]

Returns a pointer to the ENTITY that owns this ATTRIB.

Reimplemented in ATTRIB_EFINT.

void ATTRIB_DM2ACIS::Eval_crv_src_domain ( int  tag,
const double *  s,
int  npt,
DM_dbl_array C 
)

Evaluates an embedded source curve for the given tag.



Role: Returns the embedding surface uv (domain) points corresponding to the input curve parameter points. See ATTRIB_DM2ACIS::Get_xyz for evaluating the embedding surface.

Parameters:
tag tag object ID.
s array of domain points.
npt number of eval points.
C array of uv points.

void ATTRIB_DM2ACIS::Eval_crv_tgt ( int  tag,
const double *  uv,
int  npt,
DM_dbl_array W 
)

Evaluates a target curve for the given tag.



Role: Returns the xyz points corresponding to the input curve parameter points.

Parameters:
tag tag object ID.
uv array of domain points.
npt number of eval points.
W array of xyz points.

void ATTRIB_DM2ACIS::Extrapolate_dmod ( int  tag_flag  ) 

Increases the dmod's domain size by 5% across each edge.



Role: For information purposes only, refer to the description of the corresponding Standalone Deformable Modeling Component interface function DM_extrapolate_dmod.

Parameters:
tag_flag specify tgt dmod and how deep to go, 1 = active dmod, 2 = root dmod, else = member dmod with tag==tag_flag.

DS_cstrn* ATTRIB_DM2ACIS::Find_cstrn_by_tag ( int  tag,
int &  patch_tag1,
int &  patch_tag2 
)

Searches the entire hierarchy for the cstrn that matches the tag identifier.



Role: Returns the tag of the patch containing cstrn or -1. Sets the active_dmod to be the owner of the return object.

For information purposes only, refer to the description of the corresponding Standalone Deformable Modeling Component interface function DM_find_cstrn_by_tag.

Parameters:
tag unique tag identifier to match.
patch_tag1 tag of patch containing cstrn or -1.
patch_tag2 linked patch or -1.

void ATTRIB_DM2ACIS::Find_cstrn_for_coedge ( COEDGE coedge,
ATTRIB_CRV_CSTRN *&  attrib_crv_cstrn,
DS_cstrn *&  crv_cstrn,
void *&  src_data,
int &  tag_id,
DS_dmod *&  dmod 
)

Finds matching ACIS and dmod crv_cstrn pointers.



Parameters:
coedge coedge to query.
attrib_crv_cstrn attrib_crv_cstrn ptr.
crv_cstrn matching crv_cstrn ptr.
src_data matching crv_cstrn src_data ptr.
tag_id matching crv_cstrn tag_id.
dmod containing dmod.

DS_load* ATTRIB_DM2ACIS::Find_load_by_tag ( int  tag,
int &  patch_tag 
)

Searches entire hierarchy for load that matches the tag identifier.



Role: It returns the tag for the patch containing the load or -1. This sets active_dmod to owner of the return object.

For information purposes only, refer to the description of the corresponding Standalone Deformable Modeling Component interface function DM_find_load_by_tag.

Parameters:
tag unique tag identifier to match.
patch_tag tag of patch containing load or -1.

int ATTRIB_DM2ACIS::Find_patch_by_tag ( int  tag  ) 

Returns the patch that contains the given tag or -1, and makes the returned dmod the active_dmod.



Role: For information purposes only, refer to the description of the corresponding Standalone Deformable Modeling Component interface function DM_find_patch_by_tag.

Parameters:
tag tag id for object to be classified.

int ATTRIB_DM2ACIS::Find_tag_by_iline ( SPAposition p0,
SPAposition p1,
double  max_dist,
int  max_dist_units,
int &  pt_index 
)

Returns the tag number (or -1) of the point closest to the line specified by p0 and p1.



Role: Constraints and loads have positive tags, and control points have negative tags.

For information purposes only, refer to the description of the corresponding Standalone Deformable Modeling Component interface function DM_find_tag_by_image_line.

Parameters:
p0 p0 of iline = p0 + u*(p1 - p0).
p1 p1 of iline = p0 + u*(p1 - p0).
max_dist width of ray in which to search.
max_dist_units specify the max_dist units 0=max_dist in image_space units 1=max_dist in active_view pixels.
pt_index image_pt index in tag for closest pt.

void ATTRIB_DM2ACIS::fix_common ( ENTITY array[],
SCAN_TYPE  reason = SCAN_COPY 
) [protected]

Converts pointers from copy indices into real pointers.



Role: Called by fix_pointers. For ENTITY, converts the attribute pointer, and any pointers in the unknown_entity_text record. (Supplied by the ENTITY_FUNCTIONS and FIX_POINTER_DEF macros.)

Parameters:
array ENTITY pointers to fix.
reason type of scan.

Reimplemented from ATTRIB_AGC.

Reimplemented in ATTRIB_DS2ACIS, and ATTRIB_DC2ACIS.

virtual void ATTRIB_DM2ACIS::fix_pointers ( ENTITY entity_array[],
SCAN_TYPE  reason = SCAN_COPY 
) [virtual]

Converts pointers from copy indices into real pointers.



Role: The fix_pointers method for each entity in the restore array is called, with the given array as an argument. This calls fix_common, which calls its parent's fix_common, and then corrects any pointers in the derived class. In practice there is never anything special for fix_pointers to do, but it is retained for consistency and compatibility. (Supplied by the ENTITY_FUNCTIONS and UTILITY_DEF macros.)

Parameters:
entity_array ENTITY pointers to fix.
reason type of scan.

Reimplemented from ATTRIB_AGC.

Reimplemented in ATTRIB_DS2ACIS, and ATTRIB_DC2ACIS.

void ENTITY::fixup_copy ( ENTITY rollback  )  const [protected, inherited]

Fixes any pointers in the ENTITY after copying for backup.



Role: For ENTITY, this method has nothing to do, but because it is called by all data types, it is required to terminate the copy chain. (Supplied by the ENTITY_FUNCTIONS and SIMPLE_COPY_CONE macros.)

Parameters:
rollback the ENTITY to copy for backup.

Reimplemented in GA_WORKSPACE.

void ATTRIB_DM2ACIS::Forget_data (  )  [inline, protected]

Make sure that nested data within copies of the origninal attribute will not cause double 'frees' when a copied attribute is actually deleted.

Derived functions must call the parent function

void ATTRIB_DM2ACIS::Free_data (  ) 

Frees any memory in d2a_dmod, d2a_clump, d2a_tmp_surface, and d2a_dmod_clump.

virtual void ATTRIB::from_tolerant_owner ( ENTITY non_tol_ent  )  [virtual, inherited]

Notifies this ATTRIB that its owning ENTITY is being replaced with a non-tolerant ENTITY.



Role: The default action is to move the attribute onto the given non-tolerant ENTITY only if moveable() returns TRUE.

Depending on the application needs of your attribute, it may be possible to utilize the set_from_tolerant_owner_action method to specify how your attribute should act within from_tolerant_owner, which would preclude the need to actually implement this method.

Parameters:
tol_ent the new, tolerant owner.
See also:
ATTRIB::set_from_tolerant_owner_action, get_from_tolerant_owner_action, tolerant_action, from_tolerant_attrib

virtual void ENTITY::full_size ( SizeAccumulator &  est,
logical  countSelf = TRUE 
) const [virtual, inherited]

Increments the SizeAccumulator by the size, in bytes, of everything owned by this ENTITY and, optionally, of the ENTITY itself.



Role: If countSelf is TRUE, increments the SizeAccumulator by the size, in bytes, of the ENTITY and everything owned by the ENTITY. If countSelf is FALSE, increments the SizeAccumulator by the size, in bytes, of everything owned by the ENTITY, but not including the size of the ENTITY itself.

For example, if an ENTITY contained a character string and full_size were called with countSelf == FALSE, the SizeAccumulator would be incremented by the size, in bytes, of the character string.

Reimplemented in ATTRIB_CELL_INT_PRECEDENCE, ATTRIB_GEN_NAME, ATTRIB_GEN_STRING, ATTRIB_GEN_WSTRING, ATTRIB_BLEND, ATTRIB_FFBLEND, CELL, SPACOLLECTION, CONE, CSHELL, CURVE, EE_LIST, ELLIPSE, GA_WORKSPACE, SPAGROUP, HELIX, INTCURVE, LAW, PCURVE, PLANE, APOINT, SPHERE, SPLINE, STRAIGHT, SUPERCELL, SURFACE, TEXT_ENT, TORUS, UNDEFC, and ATTRIB_VAR_BLEND.

void ATTRIB_DM2ACIS::Get_alpha ( double *  alpha,
int  tag_flag = 1 
)

Returns d2a_dmod resistance to stretch.



Role: For information purposes only, refer to the description of the corresponding Standalone Deformable Modeling Component interface function DM_get_alpha.

Parameters:
alpha 1d=[alpha], 2d=[au,av,theta(degrees)].
tag_flag specify tgt dmod, 1 = active dmod, 2 = root dmod, else = member dmod with tag==tag_flag.

void ATTRIB_DM2ACIS::Get_area_cstrn_flag ( int  tag,
int &  zone_flag 
)

Gets the zone_flag value for the area_cstrn.



Role: For information purposes only, refer to the description of the corresponding Standalone Deformable Modeling Component interface function DM_get_area_cstrn_flag.

Parameters:
tag cstrn identifier.
zone_flag 0=zone area moves zone compliment fixed, 1=zone area fixed zone compliment moves, -1=toggle current zone_flag value.

void ATTRIB_DM2ACIS::Get_beta ( int  domain_dim,
double *  beta,
int  tag_flag = 1 
)

Returns d2a_dmod resistance to bending.



Role: For information purposes only, refer to the description of the corresponding Standalone Deformable Modeling Component interface function DM_get_beta.

Parameters:
domain_dim 1=1d curve, 2=2d surface.
beta 1d=[beta],2d=[bu,bv,theta(degrees)].
tag_flag specify tgt dmod and how deep to go, 1 = active dmod, 2 = root dmod, else = member dmod with tag==tag_flag.

void ATTRIB_DM2ACIS::Get_comb_graphics ( int &  elem_pt_count,
double &  gain,
int  tag_flag = 1 
)

Returns current comb graphic's values.



Role: For information purposes only, refer to the description of the corresponding Standalone Deformable Modeling Component interface function DM_get_comb_graphics.

Parameters:
elem_pt_count number of vecs shown per elem.
gain scaling applied to comb vecs.
tag_flag specify tgt dmod and how deep to go.

int ATTRIB_DM2ACIS::Get_commited (  )  [inline]

Returns the commit state.

copy_action ATTRIB::get_copy_owner_action ( void   )  const [inherited]

Get the current copy_owner action for this attribute.

int ATTRIB_DM2ACIS::Get_cstrn ( int  tag,
DS_TAGS type_id,
DS_CSTRN_SRC src_type,
int &  patch1_tag,
int &  patch2_tag,
char *  shape1,
char *  shape2,
int &  behavior,
int &  state,
int &  rights,
void *&  src1_data,
void *&  src2_data,
int  domain_flag,
int &  uv1_pts_count,
SPApar_pos  uv1_pts[3],
int &  uv2_pts_count,
SPApar_pos  uv2_pts[3],
double &  tang_gain,
int &  ntgrl_degree 
)

Sets the active_dmod to owner of the tag object.



Role: For information purposes only, refer to the description of the corresponding Standalone Deformable Modeling Component interface function DM_get_cstrn.

Parameters:
tag tag id for constraint to query.
type_id cstrn type id.
src_type ds_solid_cstrn: from solid model, ds_bound_cstrn: from sheet model, ds_user_cstrn: from end user, ds_seam_cstrn: from patch hierarcy, ds_link_cstrn: for multi-surf.
patch1_tag tag of patch containing tag or -1.
patch2_tag link_cstrn 2nd patch id or -1.
shape1 shape type, sized.
shape2 link_cstrn 2nd shape type or "none".
behavior or ofDM_POS_FREE DM_TAN_FREE DM_POS_FIXED DM_TAN_FIXED DM_POS_LINKED DM_TAN_LINKED DM_POS_2_FREE DM_TAN_2_FREE DM_POS_2_FIXED DM_TAN_2_FIXED DM_POS_2_LINKED DM_TAN_2_LINKED.
state 0=disabled,1=enabled.
rights or of DM_STOPABLE DM_DELETABLE.
src1_data src_data stored with cstrn.
src2_data link_cstrn 2nd src_data.
domain_flag 0=return uv_pts in pfunc_space, 1=return uv_pts in unit_space..
uv1_pts_count number of pts loaded into uv1_pts.
uv1_pts defining locs for shapes.
uv2_pts_count link_cstrn 2nd shape pt set.
uv2_pts magnitude scaling for crv_cstrn tangent.
tang_gain magnitude scaling for crv_cstrn tangent.
ntgrl_degree crv_cstrn numerical integration accuracy.

void ATTRIB_DM2ACIS::Get_default_state ( int &  shape_flag,
int  tag_flag = 1 
)

Returns the default shape state.



Role: 0 is no default shape; 1 default shape in use.

For information purposes only, refer to the description of the corresponding Standalone Deformable Modeling Component interface function DM_get_default_shape.

Parameters:
shape_flag 0=no default shape,1=default shape in use.
tag_flag specify tgt dmod, 1 = active dmod, 2 = root dmod, else = member dmod with tag==tag_flag.

void ATTRIB_DM2ACIS::Get_degree ( int  degrees[2],
int  tag_flag = 1 
)

Returns the basis polynomial degree, 1d:[u_dir, not_used].

2d:[u_dir, v_dir].

Role: For information purposes only, refer to the description of the corresponding Standalone Deformable Modeling Component interface function DM_get_dmod_degree.

Parameters:
degrees 1d:[u_dir,not_used],2d:[u_dir,v_dir].
tag_flag specify tgt dmod, 1 = active dmod, 2 = root dmod, else = member dmod with tag==tag_flag.

void ATTRIB_DM2ACIS::Get_delta ( double &  d,
int  tag_flag = 1 
)

Returns the d2a_dmod resistance to displacement.



Role: For information purposes only, refer to the description of the corresponding Standalone Deformable Modeling Component interface function DM_get_delta.

Parameters:
d displacement resistance value.
tag_flag specify tgt dmod, 1 = active dmod, 2 = root dmod, else = member dmod with tag==tag_flag.

void ATTRIB_DM2ACIS::Get_dmod_tags ( int  dmod_tag,
int &  ntags,
DM_tag_array tags 
)

Returns a DM_tag_array containing the tags of all tag objects embedded in the specified DS_dmod.



Parameters:
dmod_tag DS_dmod ID.
ntags number of tags.
tags array of tags found.

void ATTRIB_DM2ACIS::Get_dmods ( int &  ntags,
DM_tag_array tags 
)

This method returns a DM_tag_array containing the tags of all DS_dmods in the DS_dmod hierarchy.



Parameters:
ntags number of tags.
tags array of tags found.

void ATTRIB_DM2ACIS::Get_dof_state ( int &  dof_count,
int &  free_count,
int &  cstrn_count,
int &  fixed_count,
int &  lambda_count,
int &  lfixed_count,
int  tag_flag = 1 
)

Returns the degree of freedom of the given dmod state.



Role: For information purposes only, refer to the description of the corresponding Standalone Deformable Modeling Component interface function DM_get_dof_state.

Parameters:
dof_count total surface dof count.
free_count number of free dofs to deform.
cstrn_count total number of constraint equations.
fixed_count independent constraint equations cnt.
lambda_count lambda constraint eqn count.
lfixed_count independent lambda constraint count.
tag_flag specify tgt dmod, 1 = active dmod, 2 = root dmod, else = member dmod with tag==tag_flag.

int ATTRIB_DM2ACIS::Get_dofs ( int &  dof_count,
int &  image_dim,
int &  dof_count_u,
int &  dof_count_v,
double *&  dof_vec,
double *&  dof_def,
double *&  weights,
int  tag_flag 
)

For information purposes only.



Role: Refer to the description of the corresponding Standalone Deformable Modeling Component interface function DM_get_pfunc_dofs.

Parameters:
dof_count number of degrees-of-freedom.
image_dim number of coordinates in each dof.
dof_count_u u_dir dof count.
dof_count_v v_dir dof count.
dof_vec ptr to degrees-of-freedom loc array.
dof_def ptr to default dof loc array.
weights ptr to weight array (NURBS only).
tag_flag specify tgt dmod, 1 = active dmod, 2 = root dmod, else = member dmod with tag==tag_flag.

void ATTRIB_DM2ACIS::Get_dynamics ( double &  dt,
double &  mass,
double &  damp,
int  tag_flag = 1 
)

Returns the d2a_dmod dyn_load parameter values.



Parameters:
dt size of time steps between solves.
mass amount of mass added at each dof.
damp amount of damp added at each dof.
tag_flag specify tgt dmod, 1 = active dmod, 2 = root dmod, else = member dmod with tag==tag_flag.

int ATTRIB_DM2ACIS::Get_elem_count ( int &  elem_count,
int *  base_count,
int  tag_flag = 1 
)

Returns the number elements for the deformable model.



Role: For information purposes only, refer to the description of the corresponding Standalone Deformable Modeling Component interface function DM_get_elem_count.

Parameters:
elem_count total number of elems in dmod.
base_count number of elems in each basis.
tag_flag specify tgt dmod, 1 = active dmod, 2 = root dmod, else = member dmod with tag==tag_flag.

void ATTRIB_DM2ACIS::Get_end_conds ( int &  end_cond_u,
int &  singular_u,
int &  end_cond_v,
int &  singular_v,
int  tag_flag = 1 
)

Returns end states for a d2a_dmod.



Role: Only end_cond_u set by 1d curves are affected. All other values are set to -1.

The end condition tells how the boundary curves of a square spline can be connected. Open edges are not connected. Closed edges are forced to superimpose one another. A square spline with one closed edge will look like a cylinder with a crease along one side. Periodic is a closed surface where the edges are made to connect smoothly. A square spline surface with one periodic edge will be a smooth cylinder. Singular edges are edges which have been collapsed to a single point. Any combination of the four bounding edges of a square spline surface may be singular.

For information purposes only, refer to the description of the corresponding Standalone Deformable Modeling Component interface function DM_get_end_conds.

Parameters:
end_cond_u oneof 0=open|1=closed|2=periodic.
singular_u oneof 0=none|1=low|2=high|3=both.
end_cond_v oneof 0=open|1=closed|2=periodic.
singular_v oneof 0=none|1=low|2=high|3=both.
tag_flag specify tgt dmod 1 = active dmod 2 = root dmod else = member dmod with tag==tag_flag.

ENTITY* ATTRIB_DM2ACIS::Get_entity ( int  tag  ) 

Returns the ACIS ENTITY pointer (FACE or EDGE) associated with the DS_dmod specified by tag.



Parameters:
tag tag object ID.

void ATTRIB_DM2ACIS::Get_epsilon ( double &  eps,
int  tag 
) const

Epsilon regulates a shape fairing (energy minimization) term that is used to dampen control point oscillations in high degree splines (degree>8).



Role: Like the primary fairing terms, alpha and beta, epsilon should be 0 or positive. Epsilon is considered a supplement to the alpha and beta shape fairing terms, and should be relatively small compared to beta, the chief shape fairing term.

Parameters:
eps epsilon.
tag tag object identifier.

tolerant_action ATTRIB::get_from_tolerant_owner_action ( void   )  const [inherited]

Get the current from_tolerant_owner action for this attribute.

void ATTRIB_DM2ACIS::Get_gamma ( double &  gamma,
int  tag_flag = 1 
)

Returns the d2a_dmod resistance to bending.



Role: For information purposes only, refer to the description of the corresponding Standalone Deformable Modeling Component interface function DM_get_gamma.

Parameters:
gamma resist bending change rate value.
tag_flag specify tgt dmod, 1 = active dmod, 2 = root dmod, else = member dmod with tag==tag_flag.

DM_icon* ATTRIB_DM2ACIS::Get_icon ( int  tag  ) 

Returns the specified icon.



Parameters:
tag tag object ID.

void ATTRIB_DM2ACIS::Get_integral_degree ( int &  integral_degree,
int  tag_flag = 1 
)

Returns the degree of the polynomials accurately integrated when making deformable and constraint equations.



Role: For information purposes only, refer to the description of the corresponding Standalone Deformable Modeling Component interface function DM_get_integral_degree.

Parameters:
integral_degree accuracy of integration.
tag_flag specify tgt dmod.

void ATTRIB_DM2ACIS::Get_interior_state ( int &  interior_state,
int  tag_flag 
)

Returns the target model's interior state value.



Role: For information purposes only, refer to the description of the corresponding Standalone Deformable Modeling Component interface function DM_get_integral_degree.

Parameters:
interior_state 0 = allow C0 between elements,1 = enforce C1 between elements.
tag_flag specify tgt dmod, 1 = active dmod, 2 = root dmod, else = member dmod with tag==tag_flag.

int ATTRIB_DM2ACIS::Get_knots ( int &  u_knot_count,
int &  v_knot_count,
double *&  u_knots,
int *&  u_knot_index,
double *&  v_knots,
int *&  v_knot_index,
int  tag_flag = 1 
)

Returns the degree of the polynomials accurately integrated when making deformable and constraint equations.



Role: In case of mallocs: do not call free on u_knots or v_knots.

For information purposes only, refer to the description of the corresponding Standalone Deformable Modeling Component interface function DM_get_pfunc_knots.

Parameters:
u_knot_count number of unique u_knot values.
v_knot_count number of unique v_knot values.
u_knots ptr to u_knot array.
u_knot_index ptr to u_knot_index array.
v_knots ptr to v_knot array.
v_knot_index ptr to v_knot_index array.
tag_flag specify tgt dmod, 1 = active dmod, 2 = root dmod, else = member dmod with tag==tag_flag.

void ATTRIB_DM2ACIS::Get_load_gain ( int  tag,
double &  gain 
)

Returns the current gain value for the tag.



Role: Sets active_dmod to owner of tag object. For information purposes only, refer to the description of the corresponding Standalone Deformable Modeling Component interface function DM_get_load_gain.

Parameters:
tag tgt load to examine.
gain tag's current gain.

geometry_changed_action ATTRIB::get_lop_change_owner_action ( void   )  const [inherited]

Get the current lop_change_owner action for this attribute.

merge_action ATTRIB::get_merge_owner_action ( void   )  const [inherited]

Get the current merge_owner action for this attribute.

void ATTRIB_DM2ACIS::Get_mesh_grid ( int  grid[2],
int  tag_flag = 1 
)

Returns the number of surface figures render points.



Role: For information purposes only, refer to the description of the corresponding Standalone Deformable Modeling Component interface function DM_get_mesh_count.

Parameters:
grid 1d:[u_dir,not used], 2d:[u_dir,v_dir].
tag_flag specify tgt dmod, 1 = active dmod, 2 = root dmod, else = member dmod with tag==tag_flag.

int ATTRIB_DM2ACIS::Get_mesh_state (  )  [inline]

Access functions for mesh rebuild state.

void ATTRIB_DM2ACIS::Get_pt_uv ( int  tag,
SPApar_pos dpt 
)

Returns the current uv location of the tag.



Role: Sets active_dmod to owner of tag object. For information purposes only, refer to the description of the corresponding Standalone Deformable Modeling Component interface function DM_get_pt_uv.

Parameters:
tag identifying tag for the target.
dpt tag's current uv location.

int ATTRIB_DM2ACIS::Get_pt_xyz ( int  tag,
int  pt_index,
SPAposition p0 
)

Returns the current xyz position of the tag.



Role: Sets active_dmod to owner of tag object.

For information purposes only, refer to the description of the corresponding Standalone Deformable Modeling Component interface function DM_get_pt_xyz.

Parameters:
tag identifying tag to be queried.
pt_index index of tag's image_pt of interest for pt-cstrns and SPAvector-loads 0 = update base_pt 1 = update tang_pt for spring_sets get spring[pt_index] free_pt.
p0 tag's current xyz SPAposition.

ADM_regobj* ATTRIB_DM2ACIS::Get_regobj (  )  const

Returns d2a_regobj.

geometry_changed_action ATTRIB::get_rep_owner_geom_action ( void   )  const [inherited]

Get the current replace_owner_geometry action for this attribute.

replace_action ATTRIB::get_replace_owner_action ( void   )  const [inherited]

Get the current replace_owner action for this attribute.

geometry_changed_action ATTRIB::get_reverse_owner_action ( void   )  const [inherited]

Get the current reverse_owner action for this attribute.

void ATTRIB_DM2ACIS::Get_slide_state ( int  tag,
int &  slide_state 
)

Returns the spring's slide state.



Role: This sets active_dmod to owner of tag object.

Parameters:
tag tgt load to examine.
slide_state 0=fixed, 1=sliding, -1=not a spring.

split_action ATTRIB::get_split_owner_action ( void   )  const [inherited]

Get the current split_owner action for this attribute.

double ATTRIB_DM2ACIS::Get_spring_length ( int  tag  ) 

Returns the length for springs and spring sets.



Role: This sets active_dmod to the owner of the tag object.

For information purposes only, refer to the description of the corresponding Standalone Deformable Modeling Component interface function DM_get_spring_length.

Parameters:
tag tag number of object to be queried.

int* ATTRIB_DM2ACIS::Get_tag_summary ( int &  tag_count,
int  tag_flag = 1 
)

Returns the each tag object's tag id and tag type.



Role: The return size is two times the tag count. [mallocs: Caller must free return object.]

For information purposes only, refer to the description of the corresponding Standalone Deformable Modeling Component interface function DM_get_tag_summary.

Parameters:
tag_count number of tag objects.
tag_flag specify tgt dmod, 1 = active dmod, 2 = root dmod, else = member dmod with tag==tag_flag.

void ATTRIB_DM2ACIS::Get_tags ( int &  ntags,
DM_tag_array tags 
)

Returns a DM_tag_array containing the tags of all tag objects embedded in the ATTRIB_DM2ACIS.



Parameters:
ntags number of tags.
tags array of tags found.

double ATTRIB_DM2ACIS::Get_tan_display_gain ( int  tag_flag  ) 

Returns the target model's tan_display_gain value, which indicates a tangent's display magnitude.



Role: For information purposes only, refer to the description of the corresponding Standalone Deformable Modeling Component interface function DM_get_tan_display_gain.

Parameters:
tag_flag specify tgt dmod and how deep to go 1 = active dmod 2 = root dmod else = member dmod with tag==tag_flag.

int ATTRIB_DM2ACIS::Get_tight_state ( int  tag  ) 

Gets the tight state for the constraint.



Parameters:
tag cstrn identifier.

tolerant_action ATTRIB::get_to_tolerant_owner_action ( void   )  const [inherited]

Get the current to_tolerant_owner action for this attribute.

trans_action ATTRIB::get_trans_owner_action ( void   )  const [inherited]

Get the current trans_owner action for this attribute.

geometry_changed_action ATTRIB::get_warp_owner_action ( void   )  const [inherited]

Get the current warp_owner action for this attribute.

int ATTRIB_DM2ACIS::Get_xyz ( SPApar_pos  uv,
SPAposition xyz,
int  tag_flag = 1 
)

Calculates the dmod xyz position for given uv location.



Role: Returns 0 if successful or -1 if bad tag_flag value.

For information purposes only, refer to the description of the corresponding Standalone Deformable Modeling Component interface function DM_eval_dmod.

Parameters:
uv domain point for evaluation.
xyz projected xyz SPAposition for uv location.
tag_flag specify tgt dmod 1 = active dmod 2 = root dmod else = member dmod with tag==tag_flag.

HISTORY_STREAM* ENTITY::history (  )  const [inline, inherited]

Returns a pointer to the history stream for this ENTITY.

virtual logical ENTITY::holds_pattern (  )  const [inline, protected, virtual, inherited]

Returns TRUE if this entity can have a pattern_holder.

For internal use only.

Reimplemented in BODY, COEDGE, CURVE, EDGE, FACE, LOOP, LUMP, PCURVE, APOINT, SHELL, SURFACE, VERTEX, and WIRE.

virtual int ATTRIB_DM2ACIS::identity ( int  level = 0  )  const [virtual]

Returns a type identifier for this ENTITY.



Role: If level is unspecified or 0, returns the type identifier ENTITY_TYPE. If level is specified, returns ENTITY_TYPE for that level of derivation from ENTITY. The level of this class is defined as ENTITY_LEVEL.

A positive level specifies the level of derivation down from the ENTITY class to examine. ENTITY itself has level 0. If level is unspecified or 0, the type of the most specific class of object is returned. If level is 1, the type of the class one level down from ENTITY is returned. If level is 2, the type of the parent class 2 levels down from ENTITY is returned, and so on. If level is greater than the level of the instance, -1 ("unknown") is returned.

A negative level similarly specifies the level of derivation up from the most specific class of object returned.

(Supplied by the ENTITY_FUNCTIONS and UTILITY_DEF macros.)

Parameters:
level the derivation level at which the object is to be identified.

Reimplemented from ATTRIB_AGC.

Reimplemented in ATTRIB_DS2ACIS, and ATTRIB_DC2ACIS.

virtual logical ATTRIB_DM2ACIS::is_deepcopyable (  )  const [virtual]

Returns TRUE if this ENTITY can be deep copied.

Reimplemented from ATTRIB_AGC.

Reimplemented in ATTRIB_DS2ACIS, and ATTRIB_DC2ACIS.

int ATTRIB_DM2ACIS::Is_shape_from_solid (  ) 

Returns a 1 if from a solid or 0 if from a sheet or an edge.



Role: Searches d2a_dmod for type ds_solid_cstrn crv_cstrns.

int ATTRIB_DM2ACIS::Is_type_tracking_curve ( DS_TAGS  ds_tags  ) 

Test the input DS_TAGS value.



Parameters:
ds_tags DS_TAGS value to test.

logical ENTITY::is_unknown_entity ( void   )  const [protected, inherited]

Returns TRUE if this is an unknown entity.

An unknown entity is one that is restored from SAT/SAB but is not native to the running app.

virtual logical ENTITY::is_use_counted (  )  const [virtual, inherited]

Indicates if this ENTITY is use-counted or not.



Role: The default implementation returns FALSE.

Reimplemented in CURVE, PCURVE, PHLV5_OCC, APOINT, REFINEMENT, RH_MATERIAL, RH_TEXTURE_SPACE, SURFACE, and VERTEX_TEMPLATE.

virtual int ATTRIB::lookup ( logical  insert  )  const [virtual, inherited]

Looks up this ENTITY in the appropriate debug list.



Role: This method is not included among the standard ENTITY methods because often subclasses may wish to be included in their parent's debug list. This is done simply by not including a lookup method in the subclass.

When the logical argument is TRUE, the ENTITY is inserted into the debug list if it does not already exist in the list. If it is FALSE and the ENTITY does not exist in the list, a -1 is returned. (Supplied by the LOOK_FUNCTION and LOOKUP_DEF macros.)

Parameters:
insert flag to insert into debug list.

Reimplemented from ENTITY.

virtual void ATTRIB::lop_change_owner (  )  [virtual, inherited]

Notifies this ATTRIB that its owning ENTITY will be changed by a local operation, face removal, or shelling.



Role: This member function informs the attribute that the its owning ENTITY has been geometrically modified during the course of a local operation. No other details as to how the owner is being modified are provided.

Depending on the application needs of your attribute, it may be possible to utilize the set_lop_change_owner_action method to specify how your attribute should act within lop_change_owner, which would preclude the need to actually implement this method.

The default action is to do nothing.

See also:
ATTRIB::set_lop_change_owner_action, get_lop_change_owner_action, geometry_changed_action, lop_change_attrib

Reimplemented in ATTRIB_EYE_POINTLIST_HEADER.

virtual void ATTRIB_DM2ACIS::lose (  )  [virtual]

Posts a delete bulletin to the bulletin board indicating the instance is no longer used in the active model.



Role: The lose methods for attached attributes are also called.

Reimplemented from ATTRIB_AGC.

Reimplemented in ATTRIB_DS2ACIS, and ATTRIB_DC2ACIS.

void ATTRIB_DM2ACIS::Make_active ( int  tag  ) 

Makes the child DS_dmod with tag active.



Role: An error is returned when tag is not in DS_dmod hierarchy.

Parameters:
tag unique id for target child DS_dmod.

virtual ATTRIB_AGC* ATTRIB_DM2ACIS::Make_copy ( ENTITY owner  )  [inline, virtual]

Copies the attribute information from this class instance to the supplied entity.



Parameters:
owner owner for new attribute.

Reimplemented from ATTRIB_AGC.

Reimplemented in ATTRIB_DS2ACIS, and ATTRIB_DC2ACIS.

int ATTRIB_DM2ACIS::Make_tracking_curve ( int  tag,
int  tgt = 1 
)

Builds curve dmod.



Parameters:
tag for this crv or link_cstrn.
tgt for link_cstrns, tgt= 1 or 2.

virtual void ATTRIB_DM2ACIS::merge_owner ( ENTITY other,
logical  deleted 
) [virtual]

Notifies the class_name that its owning ENTITY is about to be merged with given entity.



Role: The application has the chance to delete or otherwise modify the attribute. After the merge, this owner will be deleted if the logical deleting owner is TRUE, otherwise it will be retained and other entity will be deleted. The default action is to do nothing. This function is supplied by the application whenever it defines a new attribute, and is called when a merge occurs.

Parameters:
other the merge's 2nd topology entity.
deleted True=this_entity to be deleted , False=other_entity to be deleted.

Reimplemented from ATTRIB.

virtual ATTRIB* ATTRIB::move ( ENTITY new_entity  )  [virtual, inherited]

Moves this ATTRIB to a new owning ENTITY.



Parameters:
new_entity the new owning ENTITY.

Reimplemented in ATTRIB_INTVERT, and ATTRIB_VAR_BLEND.

virtual logical ATTRIB::moveable (  )  const [virtual, inherited]

Returns TRUE if this ATTRIB is moveable from one owning ENTITY to another.



Role: The default is to call copyable().

logical ENTITY::needs_rollback (  )  const [inline, inherited]

Checks whether or not the record is already backed up.

ATTRIB* ATTRIB::next (  )  const [inline, inherited]

Returns the next attribute in this ATTRIB's linked list.

DS_dmod* ATTRIB_DM2ACIS::Next_dmod ( DS_dmod tgt_dmod,
int  walk_flag,
DS_cstrn *&  next_cstrn,
int &  dmod_flag 
)

Returns a sequence of dmods for recursion, or NULL.



Parameters:
tgt_dmod dmod for current recursion level.
walk_flag specify how deep to go.
next_cstrn cstrn to start src_W_dmod search.
dmod_flag dmod to start child,sibling search.

ATTRIB_DM2ACIS& ATTRIB_DM2ACIS::operator= ( const ATTRIB_DM2ACIS d2a  ) 

Implements the assignment operator.



Parameters:
d2a object with values to copy.

virtual ENTITY* ATTRIB::owner (  )  const [virtual, inherited]

Identifies the owning ENTITY, if any, of this ATTRIB.



Role: A return of NULL indicates that this attribute has either no owner or an unidentifiable one. Objects of the base ATTRIB class have no identifiable owner.

Reimplemented from ENTITY.

void ATTRIB_DM2ACIS::Param_max ( int  tag,
DM_dbl_array s 
)

Gets the tag object maximum parameterization value.



Role: Many tag objects are parameterized by either a continuous (e.g., curve load) or discrete parameter (e.g., point spring set). This function returns the lower corner of the parameterization bounding box. For example, for a curve load, this is a single value, and for an area constraint this a pair (uv) of values.

Parameters:
tag tag object ID.
s param value.

void ATTRIB_DM2ACIS::Param_min ( int  tag,
DM_dbl_array s 
)

Gets the tag object minimum parameterization value.



Role: Many tag objects are parameterized by either a continuous (e.g., curve load) or discrete parameter (e.g., point spring set). This function returns the lower corner of the parameterization bounding box. For example, for a curve load, this is a single value, and for an area constraint this a pair (uv) of values.

Parameters:
tag tag object ID.
s param value.

DS_dmod* ATTRIB_DM2ACIS::Parent ( int  tag_flag = 1  ) 

Gets the parent dmod pointer, or NULL.



Parameters:
tag_flag specify target dmod.

int ATTRIB_DM2ACIS::Parent_tag ( int  tag_flag = 1  ) 

Gets the parent tag id, or -1 if none.



Parameters:
tag_flag specify target dmod.

virtual logical ATTRIB_DM2ACIS::pattern_compatible (  )  const [virtual]

Returns TRUE if this is pattern compatible.

Reimplemented from ATTRIB.

Reimplemented in ATTRIB_DS2ACIS, and ATTRIB_DC2ACIS.

virtual logical ATTRIB::pattern_copyable (  )  const [virtual, inherited]

Returns TRUE if the ATTRIB is pattern-copyable.



Role: This virtual method indicates whether this attribute should be copied when its owning entity is copied for the purpose of creating a new pattern element (i.e., when reason == SCAN_PATTERN).

By default, this virtual method returns the value returned by copyable. This behavior should be overridden in derived classes that are deemed to be not pattern-copyable.

ATTRIB* ATTRIB::previous (  )  const [inline, inherited]

Returns the previous attribute in this ATTRIB's linked list.

void ATTRIB_DM2ACIS::Print_dmod ( int  tag_flag = 1  ) 

Outputs a dmod and related data summary.



Role: Derived functions must call the parent. For information purposes only, refer to the description of the corresponding Standalone Deformable Modeling Component interface function DM_print_dmod.

Parameters:
tag_flag specify tgt dmod and how deep to go, 1 = active dmod (-1 = and offspring), 2 = root dmod (-2 = and siblings and offspring), else = member dmod with tag==tag_flag (neg = and offspring).

void ATTRIB_DM2ACIS::Query_icon ( DM_icon_query_args args,
int  tag 
)

Passes the command encapsulated by the query_args to the icon to query the icon state.



Role: Calls the icon's Query method. The data encapsulate by the query_args is passed through this method.

Parameters:
args args passed.
tag tag ID.

void ATTRIB_DM2ACIS::Refresh_data ( float  pt_icon_rad = -1.0  ) 

Forces all deformable surface data to be recreated from the data stored in the ACIS geometry and attribute structures.



Role: The ATTRIB_DS2ACIS object will be reset to the state at the time of the last call to Commit_to_face or to the starting default state if Commit_to_face has never been called. Used to re-synchronize with ACIS modeler.

Parameters:
pt_icon_rad size of pt icon radius.

virtual void ENTITY::remove ( logical  lose_if_zero = TRUE  )  [virtual, inherited]

Decrements the use count of this ENTITY.



Role: If the use count reaches 0, the ENTITY's lose method is called if the argument lose_if_zero is set to TRUE. (If the entity is not use counted, an error is signaled.)

Every held pointer to a use counted ENTITY should be declared by calling add. There should a corresponding call to remove when the user is done with the pointer. For normal ENTITYs, simply call lose when the ENTITY is no longer part of the active model. For use counted ENTITYs, the implementations of add and remove come from macros in usecount.hxx. Use counted ENTITYs implemented without the macros should implement these virtual methods manually.

Parameters:
lose_if_zero flag to lose the ENTITY when the use count drops to 0.

Reimplemented in CURVE, SPAGROUP, PCURVE, PHLV5_OCC, APOINT, REFINEMENT, RH_MATERIAL, RH_TEXTURE_SPACE, SURFACE, and VERTEX_TEMPLATE.

virtual void ATTRIB::replace_owner ( ENTITY other_entity,
logical  replace_owner 
) [virtual, inherited]

Notifies this ATTRIB that its owning ENTITY is being replaced.



Role: When the argument replace_owner is TRUE, the owner of this attribute is being replaced by other_entity; when it is FALSE, other_entity is being replaced by this attribute's owner.

Depending on the application needs of your attribute, it may be possible to utilize the set_replace_owner_action method to specify how your attribute should act within replace_owner, which would preclude the need to actually implement this method.

The default action is to do nothing.

Parameters:
other_entity the other ENTITY involved in the replacement.
replace_owner flag that the owning ENTITY is being replaced.
See also:
ATTRIB::set_replace_owner_action, get_replace_owner_action, replace_action, replace_attrib

virtual void ATTRIB::replace_owner_geometry ( ENTITY new_geom  )  [virtual, inherited]

Notifies this ATTRIB that its owning ENTITY is being given new geometry, possibly changing its shape.



Role: This member function informs the attribute that the its owning ENTITY is being given new geometry.

Depending on the application needs of your attribute, it may be possible to utilize the set_rep_owner_geom_action method to specify how your attribute should act within replace_owner_geometry, which would preclude the need to actually implement this method.

The default action is to do nothing.

Parameters:
new_geom the new geometry.
See also:
ATTRIB::set_rep_owner_geom_action, get_rep_owner_geom_action, geometry_changed_action, replace_geometry_attrib

Reimplemented in ATTRIB_EYE_ATTACHED_MESH, and ATTRIB_EYE_POINTLIST_HEADER.

void ATTRIB_DM2ACIS::restore_common (  ) 

Restores data for a record from disc to memory.



Role: Writes pointers as indices (fix_pointers turns them back into pointers) and returns a pointer to the ENTITY made. Generally, "common" functions that do the main work are protected, as they are called only from the main entry functions or by themselves up the derivation tree.

This method is public, however, because the main restore function is not a member function, and making it a friend would make it unable to be declared static, i.e., local to the defining module. (Supplied by the ENTITY_FUNCTIONS and RESTORE_DEF macros.)

    read_ptr  Pointer to record in save file for first attribute owned by entity.
    if (restore_version_number >= ENTITY_TAGS_VERSION)
       read_int      new tag 

Reimplemented from ATTRIB_AGC.

Reimplemented in ATTRIB_DS2ACIS, and ATTRIB_DC2ACIS.

void ENTITY::restore_end ( char *  id_str  )  [inherited]

Terminates a restore record.



Role: Reads any trailing text and fills in the unknown text pointer. Used only by the save/restore system.

Parameters:
id_str the id string.

virtual void ATTRIB::reverse_owner (  )  [virtual, inherited]

Notifies this ATTRIB that its owning entity's sense bit is about to be reversed.

Role: The application has the chance to do something relevant. For example, faceter attributes reverse the mesh's face normals (or delete the mesh) when the owning face is reversed.

Depending on the application needs of your attribute, it may be possible to utilize the set_reverse_owner_action method to specify how your attribute should act within reverse_owner, which would preclude the need to actually implement this method.

The default action is to do nothing.

See also:
ATTRIB::set_reverse_owner_action, get_reverse_owner_action, geometry_changed_action, reverse_attrib

Reimplemented in ATTRIB_FACECFACE, and ATTRIB_EYE_ATTACHED_MESH.

virtual void ATTRIB_DM2ACIS::Rm_patch ( int  tag_flag  )  [inline, virtual]

Removes and deletes a patch from the hierarchy.



Role: This should always be called between API_BEGIN and API_END.

Parameters:
tag_flag specify the tgt_dmod to be copied.

Reimplemented in ATTRIB_DS2ACIS, and ATTRIB_DC2ACIS.

DS_TAGS ATTRIB_DM2ACIS::Rm_tag_object ( int  tag  ) 

Removes a tag object identified by tag and returns the tag type of the object deleted.



Role: When tag is an invalid number or identifies a curve constraint which is undeletable, the value DS_tag_none is returned. This sets the active_dmod to the owner of the tag object.

For information purposes only, refer to the description of the corresponding Standalone Deformable Modeling Component interface function DM_rm_tag_object.

Parameters:
tag identifying tag for the target.

virtual void ATTRIB_DM2ACIS::roll_notify ( BULLETIN_TYPE  bulletin_type,
ENTITY ent 
) [virtual]

Fields notifications of rollback operations.



Role: The first argument specifies the type of bulletin being rolled back (create, delete or change). In the case of a change notification, the second argument contains the information to be restored into this object. The base implementation, which is used for almost every derived class, does nothing at all.

Parameters:
bulletin_type type of bulletin being rolled back.
ent information to be restored into this argument.

Reimplemented from ENTITY.

BULLETIN*& ENTITY::rollback (  )  const [inline, inherited]

Returns the pointer to the bulletin board entry for this ENTITY.

ENTITY* ATTRIB_DM2ACIS::Root_owner (  ) 

Returns a FACE or EDGE pointer to the owner root entity of this attribute.

virtual logical ATTRIB_DM2ACIS::savable (  )  const [inline, virtual]

Returns TRUE if this is savable.

Reimplemented from ATTRIB.

virtual void ATTRIB_DM2ACIS::save ( ENTITY_LIST entity_list  )  const [virtual]

Performs a save operation.



Role: Calls save_begin, the particular class's save_common, and then save_end. (Supplied by the ENTITY_FUNCTIONS and UTILITY_DEF macros.)

This save method is just like any other save, except that it calls save_begin with an optional argument to suppress writing of a trailing dash, because save_common does not write out an identifier, or call any parent class's save_common.

Parameters:
entity_list ENTITYs to save.

Reimplemented from ATTRIB_AGC.

Reimplemented in ATTRIB_DS2ACIS, and ATTRIB_DC2ACIS.

void ENTITY::save_begin ( logical  terminator = FALSE  )  const [protected, inherited]

Starts a save record.



Role: Writes a preamble to a save file record, which contains any subclass identifiers not known to this version of ACIS. Called by the save method.

Parameters:
terminator terminator flag.

void ATTRIB_DM2ACIS::save_common ( ENTITY_LIST entity_list  )  const [protected]

Handles the save operation.



Role: Writes out the savable data associated with the base class. In the case of ENTITY, saveable data is simply the attribute pointer. In the case of child classes derived from ENTITY, class-specific save_common methods handle the class-specific data. Called by the save method. (Supplied by the ENTITY_FUNCTIONS and SAVE_DEF macros.)

Each derived class's save_common method first writes out that class's identifier, calls its parent class's save_common method, and then writes out data particular to the derived class. Thus the save record consists of identifiers in leaf-to-base order, followed by class data in base-to-leaf order. As it writes out any ENTITY pointers, it adds them to the ENTITY_LIST, so that any dependent data also gets written to the file.

Parameters:
entity_list ENTITYs to save

Reimplemented from ATTRIB_AGC.

Reimplemented in ATTRIB_DS2ACIS, and ATTRIB_DC2ACIS.

void ENTITY::save_end ( ENTITY_LIST list  )  const [protected, inherited]

Terminates a save record.



Role: Writes out any data associated with subclasses not known to this version of ACIS before terminating the record. Called by the save method.

Parameters:
list list of entities.

void ATTRIB_DM2ACIS::Scale_dpt_array ( int  domain_dim,
int  pt_count,
double *  dpt,
int  tag_flag = 1 
)

Scales an array of dpts from 0 to 1 into the surface's parameter range.



Parameters:
domain_dim dmod domain_dim (for error checking).
pt_count number of uv points in dpt.
dpt change uv coord values to fit in the current surface..
tag_flag specify tgt dmod 1 = active dmod 2 = root dmod else = member dmod with tag==tag_flag.

void ATTRIB_DM2ACIS::Scale_par_pos_from_dmod ( int  domain_dim,
SPApar_pos uv,
int  tag_flag = 1 
)

Scales a surface's parametric position to 0 to 1.



Role: Returns the uv-coordinate values to fit in a unit square. Projects the u and v-coordinate values of uv from the unit square into the deformable surface's actual parameter range. Within the methods of ATTRIB_DS2ACIS, all parametric parametric position input positions are given in the range of 0.0 to 1.0. This unit square is mapped to the actual parametric range of the deformable surface. It is expected that this function will only be called by other ATTRIB_DS2ACIS methods, but is exposed as a convenience routine for applications.

Parameters:
domain_dim dmod domain_dim (for error checking).
uv change uv values current surface domain to the unit-square.
tag_flag specify tgt dmod 1 = active dmod 2 = root dmod else = member dmod with tag==tag_flag.

void ATTRIB_DM2ACIS::Scale_par_pos_to_dmod ( int  domain_dim,
SPApar_pos uv,
int  tag_flag = 1 
)

Scales the parametric position from 0 to 1 into the surface's parameter range.



Role: Returns the uv-coordinate values to fit in the current surface. Projects the u and v-coordinate values of uv from the unit square into the deformable surface's actual parameter range. Within the methods of ATTRIB_DS2ACIS, all parametric parametric position input positions are given in the range of 0.0 to 1.0. This unit square is mapped to the actual parametric range of the deformable surface. It is expected that this function will only be called by other ATTRIB_DS2ACIS methods, but is exposed as a convenience routine for applications.

For information purposes only, refer to the description of the corresponding Standalone Deformable Modeling Component interface function DM_set_alpha.

Parameters:
domain_dim dmod domain_dim (for error checking).
uv change uv values from unit-square to current surface domain..
tag_flag specify tgt dmod 1 = active dmod 2 = root dmod else = member dmod with tag==tag_flag.

void ATTRIB_DM2ACIS::Set_alpha ( int  domain_dim,
double *  alpha,
int  tag_flag = 1 
)

Sets the deformable surface's stretch resistance parameters.



Parameters:
domain_dim 1=1d curve, 2=2d surface.
alpha 1d=[alpha], 2d=[au,av,theta(degrees)].
tag_flag specify tgt dmod and how deep to go, 1 = active dmod (-1 = and offspring), 2 = root dmod (-2 = and siblings and offspring), else = member dmod with tag==tag_flag (neg = and offspring).

void ATTRIB_DM2ACIS::Set_area_cstrn_flag ( int  tag,
int  zone_flag 
)

Changes the zone flag for the deformable surface's area_cstrn.



Role: For information purposes only, refer to the description of the corresponding Standalone Deformable Modeling Component interface function DM_set_area_cstrn_flag.

Parameters:
tag cstrn identifier.
zone_flag 0=zone area moves zone compliment fixed, 1=zone area fixed zone compliment moves, -1=toggle current zone_flag value.

int ATTRIB_DM2ACIS::Set_attractor_power ( int  tag,
int  power = 2 
)

Returns 1 if found load was changed, otherwise it returns 0.



Role: This sets the DS_attractor power. It also sets the active dmod.

For information purposes only, refer to the description of the corresponding Standalone Deformable Modeling Component interface function DM_set_attractor_power.

Parameters:
tag load identifier.
power measure of load's locality 0,1=global: 2,3.. =more local.

void ENTITY::set_attrib ( ATTRIB attr  )  [inherited]

Changes the attribute pointer of this ENTITY to point to the given attribute.



Parameters:
attr the new attribute.

void ATTRIB_DM2ACIS::Set_beta ( int  domain_dim,
double *  beta,
int  tag_flag = 1 
)

Sets the deformable surface's bending resistance parameters.



Role: For information purposes only, refer to the description of the corresponding Standalone Deformable Modeling Component interface function DM_set_beta.

Parameters:
domain_dim 1=1d curve, 2=2d surface.
beta 1d=[beta],2d=[bu,bv,theta(degrees)].
tag_flag specify tgt dmod and how deep to go, 1 = active dmod (-1 = and offspring), 2 = root dmod (-2 = and siblings and offspring), else = member dmod with tag==tag_flag (neg = and offspring).

void ATTRIB_DM2ACIS::Set_comb_graphics ( int  elem_pt_count,
double  gain,
int  tag_flag = 1 
)

Sets the appearance of comb plots.



Role: For information purposes only, refer to the description of the corresponding Standalone Deformable Modeling Component interface function DM_set_comb_graphics.

Parameters:
elem_pt_count number of vecs shown per elem.
gain scaling applied to comb vecs.
tag_flag specify tgt dmod and how deep to go.

void ATTRIB_DM2ACIS::Set_commited (  )  [inline]

Sets the commit state to TRUE.

copy_action ATTRIB::set_copy_owner_action ( const copy_action  action  )  [inherited]

Set the copy_owner action for this attribute.

Returns the value actually set. If an invalid action is specified, a sys_warning(VALUE_OUT_OF_RANGE) will be issued and the action will remain unchanged.

Setting the copy_owner action on an attribute that implements copy_owner will have no effect when that attribute is running in its native application. However, when the attribute is saved to SAT/SAB, its copy_owner action will also be saved. In the event the attribute is restored in a foreign application, we will treat the attribute as 'unknown' but will honor whatever copy_owner action setting is restored. (Note that support for save/restore of attribute actions was introduced in R16; persistence and recognition of attribute actions prior to R16 is not supported.)

Parameters:
action the specified action.

int ATTRIB_DM2ACIS::Set_cstrn_behavior ( int  tag,
int  behavior 
)

Returns 0 when a change is allowed, else it returns 01.



Role: Changes the behavior of a cstrn. Sets the active_dmod to the owner of the tag object.

For information purposes only, refer to the description of the corresponding Standalone Deformable Modeling Component interface function DM_set_cstrn_behavior.

Parameters:
tag cstrn identifier.
behavior or of DM_POS_FREE DM_TAN_FREE DM_POS_FIXED DM_TAN_FIXED DM_POS_LINKED DM_TAN_LINKED DM_POS_2_FREE DM_TAN_2_FREE DM_POS_2_FIXED DM_TAN_2_FIXED DM_POS_2_LINKED DM_TAN_2_LINKED.

int ATTRIB_DM2ACIS::Set_cstrn_domain_dir ( int  tag,
SPApar_vec domain_dir,
int  which_dir 
)

Returns 0 when a change is allowed, otherwise it returns -1.



Role: Changes the behavior of a cstrn. Sets the active_dmod to the owner of the tag object.

For information purposes only, refer to the description of the corresponding Standalone Deformable Modeling Component interface function DM_set_cstrn_pttan_uv_dir.

Parameters:
tag point cstrn identifier.
domain_dir uv direction for directional derivative (tangent).
which_dir one of: DM_TANG1_LEG, DM_TANG2_LEG, DM_CURV1_LEG, DM_CURV2_LEG.

int ATTRIB_DM2ACIS::Set_cstrn_state ( int  tag,
int  state 
)

Returns 0 when change is allowed, else it returns -1.



Role: Changes on/off state for cstrn. Sets the active_dmod to owner of tag object.

For information purposes only, refer to the description of the corresponding Standalone Deformable Modeling Component interface function DM_set_cstrn_state.

Parameters:
tag cstrn identifier.
state 0=turn cstrn off, 1=turn cstrn on.

void ATTRIB_DM2ACIS::Set_default_shape ( int  shape_flag,
int  tag_flag = 1 
)

Sets default shape state to flag value.



Role: When flag = 1, the current deformable shape is copied into the default shape. From then on, the deformable surface will seek to resume the default shape when not acted upon by constraints and loads. When flag = 0, the default shape is cleared allowing the surface to seek the fairest shape possible for the current set of constraints and loads.

For information purposes only, refer to the description of the corresponding Standalone Deformable Modeling Component interface function DM_set_default_shape.

Parameters:
shape_flag 0=no shape, 1=save current_shape.
tag_flag specify tgt dmod and how deep to go, 1 = active dmod (-1 = and offspring), 2 = root dmod (-2 = and siblings and offspring), else = member dmod with tag==tag_flag (neg = and offspring).

void ATTRIB_DM2ACIS::Set_delta ( double  delta,
int  tag_flag = 1 
)

Sets the deformable surface's resistance to deviating from the default shape.



Role: Setting this parameter to 0.0 turns off an effective spring that pulls the deformable surface back to the default shape. Use the Set_default_shape method to turn off the default shape behavior.

For information purposes only, refer to the description of the corresponding Standalone Deformable Modeling Component interface function DM_set_delta.

Parameters:
delta resist move from default shape val.
tag_flag specify tgt dmod and how deep to go, 1 = active dmod (-1 = and offspring), 2 = root dmod (-2 = and siblings and offspring), else = member dmod with tag==tag_flag (neg = and offspring).

void ATTRIB_DM2ACIS::Set_dmod_degree ( int  tag_flag,
int  new_degree 
)

Increases the deformable model's polynomial degree, adding more degrees of freedom per element.



Role: Valid values for tag_flag are:

1 = active model and offspring
2 = root model and offspring
else = member model with tag==tag_flag and offspring

The new_degree argument is applied to all domain dimensions.

Parameters:
tag_flag specify tgt dmod and how deep to go.
new_degree new degree; applied to all domain dim's.

void ATTRIB_DM2ACIS::Set_dmod_degree ( int  tag_flag,
int  new_degree_u,
int  new_degree_v 
)

Increases the deformable model's polynomial degree, adding more degrees of freedom per element.



Role: Valid values for tag_flag are:

1 = active model and offspring
2 = root model and offspring
else = member model with tag==tag_flag and offspring

Parameters:
tag_flag specify tgt dmod and how deep to go.
new_degree_u new degree in 1st domain dim.
new_degree_v new degree in 2nd domain dim.

void ATTRIB_DM2ACIS::Set_draw_state ( int  draw_state,
int  tag_flag = 1 
)

Sets the deformable surface's drawing state.



Role: draw_state is a bit array. When a bit is on, the associated data will be displayed. When a bit is off, the data is not displayed. draw_state is a bit array (logical OR) of the following:

For information purposes only, refer to the description of the corresponding Standalone Deformable Modeling Component interface function DM_set_draw_state.

Parameters:
draw_state drawing state.
tag_flag specify tgt dmod.

void ATTRIB_DM2ACIS::Set_dynamics ( double  dt,
double  mass,
double  damp,
int  tag_flag = 1 
)

Sets the d2a_dmod dyn_load parameter values.



Role: For information purposes only, refer to the description of the corresponding Standalone Deformable Modeling Component interface function DM_set_dynamics.

Parameters:
dt size of time steps between solves.
mass amount of mass added at each dof.
damp amount of damp added at each dof.
tag_flag specify tgt dmod and how deep to go, 1 = active dmod (-1 = and offspring), 2 = root dmod (-2 = and siblings and offspring), else = member dmod with tag==tag_flag (neg = and offspring).

void ATTRIB_DM2ACIS::Set_editing (  )  [inline]

Sets the editing state functions and is related to the Editing and Clear_editing methods.

int ATTRIB_DM2ACIS::Set_elem_count ( int  elem_u_count,
int  elem_v_count,
int  tol,
int  tag_flag 
)

This method is not yet implemented.



Parameters:
elem_u_count u dir elem-count.
elem_v_count v dir elem-count.
tol pecifies tol requirement to satisfy.
tag_flag specify tgt dmod, 1 = active dmod, 2 = root dmod, else = member dmod with tag==tag_flag.

void ATTRIB_DM2ACIS::Set_end_conds ( int  domain_dim,
int  end_cond_u,
int  singular_u,
int  end_cond_v,
int  singular_v 
)

Changes end states for a d2a_dmod.



Role: Used for testing, not for ACIS faces. Its effect won't pass through commit_to_face. The end condition tells how the boundary curves of a square spline can be connected. Open edges are not connected. Closed edges are forced to superimpose one another. A square spline with one closed edge will look like a cylinder with a crease along one side. Periodic is a closed surface where the edges are made to connect smoothly. A square spline surface with one periodic edge will be a smooth cylinder. Singular edges are edges which have been collapsed to a single point. Any combination of the four bounding edges of a square spline surface may be singular. Currently, deformable surfaces which have changed their end conditions will not be able to be committed back to their owning faces.

For information purposes only, refer to the description of the corresponding Standalone Deformable Modeling Component interface function DM_set_end_conds.

Parameters:
domain_dim 1=curve, 2=surface (for error checking).
end_cond_u oneof 0=open|1=closed|2=periodic.
singular_u oneof 0=none|1=low|2=high|3=both.
end_cond_v oneof 0=open|1=closed|2=periodic.
singular_v oneof 0=none|1=low|2=high|3=both.

void ATTRIB_DM2ACIS::Set_epsilon ( double  eps,
int  tag 
)

Epsilon regulates a shape fairing (energy minimization) term that is used to dampen control point oscillations in high degree splines (degree>8).



Role: Like the primary fairing terms, alpha and beta, epsilon should be 0 or positive. Epsilon is considered a supplement to the alpha and beta shape fairing terms, and should be relatively small compared to beta, the chief shape fairing term.

Parameters:
eps epsilon.
tag tag object identifier.

tolerant_action ATTRIB::set_from_tolerant_owner_action ( const tolerant_action  action  )  [inherited]

Set the from_tolerant_owner action for this attribute.

Returns the value actually set. If an invalid action is specified, a sys_warning(VALUE_OUT_OF_RANGE) will be issued and the action will remain unchanged.

Setting the from_tolerant_owner action on an attribute that implements from_tolerant_owner will have no effect when that attribute is running in its native application. However, when the attribute is saved to SAT/SAB, its from_tolerant_owner action will also be saved. In the event the attribute is restored in a foreign application, we will treat the attribute as 'unknown' but will honor whatever from_tolerant_owner action setting is restored. (Note that support for save/restore of attribute actions was introduced in R16; persistence and recognition of attribute actions prior to R16 is not supported.)

Parameters:
action the specified action.

void ATTRIB_DM2ACIS::Set_gamma ( double  gamma,
int  tag_flag = 1 
)

Sets the deformable surface's resistance to bending from the default shape.



Role: For information purposes only, refer to the description of the corresponding Standalone Deformable Modeling Component interface function DM_set_gamma.

Parameters:
gamma resist bending change rate value.
tag_flag specify tgt dmod and how deep to go, 1 = active dmod (-1 = and offspring), 2 = root dmod (-2 = and siblings and offspring), else = member dmod with tag==tag_flag (neg = and offspring).

void ATTRIB_DM2ACIS::Set_icon ( int  tag,
DM_icon icon 
)

Sets the icon for a tag object.



Role: This call should be followed with a call to Set_icon_owner to allow the icon to initialize itself.

Parameters:
tag tag object ID.
icon new icon.

void ATTRIB_DM2ACIS::Set_icon_owner ( const int *  tags,
int  ntags 
)

Sets the icon's owner.



Role: Serves as notification to the icon that the owning tag object is complete, and the icon can be initialized.

Parameters:
tags array of tags.
ntags number of tags.

void ATTRIB_DM2ACIS::Set_icon_owner ( int  tag  ) 

Sets the icon's owner.



Role: Serves as notification to the icon that the owning tag object is complete, and the icon can be initialized.

Parameters:
tag tag object ID.

void ATTRIB_DM2ACIS::Set_interior_state ( int  interior_state,
int  tag_flag 
)

Sets the deformable surface's interior state value.



Role: For information purposes only, refer to the description of the corresponding Standalone Deformable Modeling Component interface function DM_set_interior_state.

Parameters:
interior_state 0 = allow C0 between elements,1 = enforce C1 between elements.
tag_flag specify tgt dmod and how deep to go, 1 = active dmod (-1 = and offspring), 2 = root dmod (-2 = and siblings and offspring), else = member dmod with tag==tag_flag (neg = and offspring).

DS_TAGS ATTRIB_DM2ACIS::Set_load_gain ( DS_TAGS  type,
int  tag,
double  gain,
int  inc_flag = 0 
)

When type = DS_tag_none, it searches for the load which matches the input tag number and updates its gain.



Role: Otherwise, it searches the entire load list for all loads of the input type and updates their gains. When inc_flag is zero, the tgt gains are set equal to the to the input gain. When inc_flag is nonzero, the tgt gains are incremented by the input gain. Sets active_dmod to owner of tag object.

For information purposes only, refer to the description of the corresponding Standalone Deformable Modeling Component interface function DM_set_load_gain.

Parameters:
type if type==DS_tag_none then tgt = tag else tgt = all loads of type.
tag tgt load when type = DS_tag_none.
gain new gain or gain change.
inc_flag 0:tag(gain) =gain, 1:tag(gain)+=gain.

geometry_changed_action ATTRIB::set_lop_change_owner_action ( const geometry_changed_action  action  )  [inherited]

Set the lop_change_owner action for this attribute.

Returns the value actually set. If an invalid action is specified, a sys_warning(VALUE_OUT_OF_RANGE) will be issued and the action will remain unchanged.

Setting the lop_change_owner action on an attribute that implements lop_change_owner will have no effect when that attribute is running in its native application. However, when the attribute is saved to SAT/SAB, its lop_change_owner action will also be saved. In the event the attribute is restored in a foreign application, we will treat the attribute as 'unknown' but will honor whatever lop_change_owner action setting is restored. (Note that support for save/restore of attribute actions was introduced in R16; persistence and recognition of attribute actions prior to R16 is not supported.)

Parameters:
action the specified action.

merge_action ATTRIB::set_merge_owner_action ( const merge_action  action  )  [inherited]

Set the merge_owner action for this attribute.

Returns the value actually set. If an invalid action is specified, a sys_warning(VALUE_OUT_OF_RANGE) will be issued and the action will remain unchanged.

Setting the merge_owner action on an attribute that implements merge_owner will have no effect when that attribute is running in its native application. However, when the attribute is saved to SAT/SAB, its merge_owner action will also be saved. In the event the attribute is restored in a foreign application, we will treat the attribute as 'unknown' but will honor whatever merge_owner action setting is restored. (Note that support for save/restore of attribute actions was introduced in R16; persistence and recognition of attribute actions prior to R16 is not supported.)

Parameters:
action the specified action.

void ATTRIB_DM2ACIS::Set_mesh_grid ( int  grid[2],
int  tag_flag = 1 
)

Sets the number of surface figures render points.



Role: For information purposes only, refer to the description of the corresponding Standalone Deformable Modeling Component interface function DM_set_mesh_count.

Parameters:
grid 1d:[nu,not_used],2d:[nu,nv].
tag_flag specify tgt dmod and how deep to go, 1 = active dmod (-1 = and offspring), 2 = root dmod (-2 = and siblings and offspring), else = member dmod with tag==tag_flag (neg = and offspring).

void ATTRIB_DM2ACIS::Set_mesh_rebuild (  )  [inline]

Access functions for mesh rebuild state.

DS_TAGS ATTRIB_DM2ACIS::Set_pt_uv ( int  tag,
SPApar_pos dpt 
)

Sets the domain point in a constraint or load, returning the modified mv_obj's tag type or DS_tag_none.



Role: If the input tag number is invalid or if the identified tag object has no associated domain point to change, DS_tag_none is returned. Sets the active_dmod to owner of tag object.

For information purposes only, refer to the description of the corresponding Standalone Deformable Modeling Component interface function DM_set_pt_uv.

Parameters:
tag identifying tag for the target.
dpt new domain_pt for the target.

DS_TAGS ATTRIB_DM2ACIS::Set_pt_xyz ( int  tag,
int  pt_index,
SPAposition p0,
SPAposition p1 = *(SPAposition *) NULL_REF,
int  dir_flag = 0,
int  cascade_flag = 1 
)

Sets the image point in a constraint or load and returns the tag type of the modified object.



Role: When p0 is specified and p1 is set to the NULL_REF, the target image point is set to the location in p0. When both p0 and p1 are specified, the target image point is projected onto a line running through positions p0 and p1. The projection direction is controlled by the dir flag. When dir=1, the x and y-components of the image point are changed to place it on the image line. When dir=2, the z-component of the image point is changed to bring the point as close to the image space line as possible. The projection feature is intended to allow mouse based click-events (projected into lines) to move tag object image space locations in 3-dimensions. If the tag number is invalid or if the identified tag object has no associated image point, the value DS_tag_none is returned. Sets the active_dmod to owner of tag object.

For information purposes only, refer to the description of the corresponding Standalone Deformable Modeling Component interface function DM_set_pt_xyz.

Parameters:
tag identifying tag for the target.
pt_index index of tag's image_pt to update.
p0 new ipt or p0 of iline=p0+u*p1-p0.
p1 NULL_REF or p1 of iline=p0+u*p1-p0.
dir_flag specifies how to compute new_xyz P1=NULL_REF xyz=p0, 1="xy" xyz=xsect (iline, tag(xy_plane)), 2="z" xyz = proj(iline, tag(z_line)).
cascade_flag 2=move tangent vecs independently but update normal vecs, 1=update related pt_cstrn values and image_pts, 0=don't.

geometry_changed_action ATTRIB::set_rep_owner_geom_action ( const geometry_changed_action  action  )  [inherited]

Set the replace_owner_geometry action for this attribute.

Returns the value actually set. If an invalid action is specified, a sys_warning(VALUE_OUT_OF_RANGE) will be issued and the action will remain unchanged.

Setting the replace_owner_geometry action on an attribute that implements replace_owner_geometry will have no effect when that attribute is running in its native application. However, when the attribute is saved to SAT/SAB, its replace_owner_geometry action will also be saved. In the event the attribute is restored in a foreign application, we will treat the attribute as 'unknown' but will honor whatever replace_owner_geometry action setting is restored. (Note that support for save/restore of attribute actions was introduced in R16; persistence and recognition of attribute actions prior to R16 is not supported.)

Parameters:
action the specified action.

replace_action ATTRIB::set_replace_owner_action ( const replace_action  action  )  [inherited]

Set the replace_owner action for this attribute.

Returns the value actually set. If an invalid action is specified, a sys_warning(VALUE_OUT_OF_RANGE) will be issued and the action will remain unchanged.

Setting the replace_owner action on an attribute that implements replace_owner will have no effect when that attribute is running in its native application. However, when the attribute is saved to SAT/SAB, its replace_owner action will also be saved. In the event the attribute is restored in a foreign application, we will treat the attribute as 'unknown' but will honor whatever replace_owner action setting is restored. (Note that support for save/restore of attribute actions was introduced in R16; persistence and recognition of attribute actions prior to R16 is not supported.)

Parameters:
action the specified action.

geometry_changed_action ATTRIB::set_reverse_owner_action ( const geometry_changed_action  action  )  [inherited]

Set the reverse_owner action for this attribute.

Returns the value actually set. If an invalid action is specified, a sys_warning(VALUE_OUT_OF_RANGE) will be issued and the action will remain unchanged.

Setting the reverse_owner action on an attribute that implements reverse_owner will have no effect when that attribute is running in its native application. However, when the attribute is saved to SAT/SAB, its reverse_owner action will also be saved. In the event the attribute is restored in a foreign application, we will treat the attribute as 'unknown' but will honor whatever reverse_owner action setting is restored. (Note that support for save/restore of attribute actions was introduced in R16; persistence and recognition of attribute actions prior to R16 is not supported.)

Parameters:
action the specified action.

int ATTRIB_DM2ACIS::Set_slide_state ( int  tag,
int  slide_state 
)

Sets the spring's slide state.



Role: This sets active_dmod to owner of the tag object.

Parameters:
tag tgt load to examine.
slide_state 0=fixed, 1=sliding.

split_action ATTRIB::set_split_owner_action ( const split_action  action  )  [inherited]

Set the split_owner action for this attribute.

Returns the value actually set. If an invalid action is specified, a sys_warning(VALUE_OUT_OF_RANGE) will be issued and the action will remain unchanged.

Setting the split_owner action on an attribute that implements split_owner will have no effect when that attribute is running in its native application. However, when the attribute is saved to SAT/SAB, its split_owner action will also be saved. In the event the attribute is restored in a foreign application, we will treat the attribute as 'unknown' but will honor whatever split_owner action setting is restored. (Note that support for save/restore of attribute actions was introduced in R16; persistence and recognition of attribute actions prior to R16 is not supported.)

Parameters:
action the specified action.

int ATTRIB_DM2ACIS::Set_tan_display_gain ( double  tan_display_gain,
int  tag_flag 
)

Varies a tangent's display magnitude.



Role: Returns 0 if successful, otherwise returns a negative error code. This sets active_dmod to owner of the tag object.

For information purposes only, refer to the description of the corresponding Standalone Deformable Modeling Component interface function DM_set_tan_display_gain.

Parameters:
tan_display_gain display scaling for tang_vec cstrns.
tag_flag specify tgt dmod and how deep to go 1 = active dmod (-1 = and offspring) 2 = root dmod (-2 = and siblings and offspring) else = member dmod with tag==tag_flag (neg = and offspring).

int ATTRIB_DM2ACIS::Set_tight_state ( int  tag,
int  state 
)

Sets the tight state for the constraint.



Parameters:
tag cstrn identifier.
state 0=turn tight off, 1=turn tight on.

tolerant_action ATTRIB::set_to_tolerant_owner_action ( const tolerant_action  action  )  [inherited]

Set the to_tolerant_owner action for this attribute.

Returns the value actually set. If an invalid action is specified, a sys_warning(VALUE_OUT_OF_RANGE) will be issued and the action will remain unchanged.

Setting the to_tolerant_owner action on an attribute that implements to_tolerant_owner will have no effect when that attribute is running in its native application. However, when the attribute is saved to SAT/SAB, its to_tolerant_owner action will also be saved. In the event the attribute is restored in a foreign application, we will treat the attribute as 'unknown' but will honor whatever to_tolerant_owner action setting is restored. (Note that support for save/restore of attribute actions was introduced in R16; persistence and recognition of attribute actions prior to R16 is not supported.)

Parameters:
action the specified action.

void ATTRIB_DM2ACIS::Set_tracking_curve_target ( int  tag,
int  tgt,
bs3_curve  target,
int  behavior 
)

Changes a pfunc target for tracking curve.



Parameters:
tag for this crv or link_cstrn.
tgt for link_cstrns, tgt= 1 or 2.
target image space target curve.
behavior one of DM_POSITION, DM_TANG, DM_CURVATURE.

trans_action ATTRIB::set_trans_owner_action ( const trans_action  action  )  [inherited]

Set the trans_owner action for this attribute.

Returns the value actually set. If an invalid action is specified, a sys_warning(VALUE_OUT_OF_RANGE) will be issued and the action will remain unchanged.

Setting the trans_owner action on an attribute that implements trans_owner will have no effect when that attribute is running in its native application. However, when the attribute is saved to SAT/SAB, its trans_owner action will also be saved. In the event the attribute is restored in a foreign application, we will treat the attribute as 'unknown' but will honor whatever trans_owner action setting is restored. (Note that support for save/restore of attribute actions was introduced in R16; persistence and recognition of attribute actions prior to R16 is not supported.)

Parameters:
action the specified action.

void ATTRIB_DM2ACIS::Set_uncommited (  )  [inline]

Sets the commit state to FALSE.

virtual void ENTITY::set_use_count ( int  use  )  [virtual, inherited]

Sets the reference use count of this ENTITY.



Role: If the ENTITY is not use counted, this method does nothing.

Parameters:
use new use count.

Reimplemented in CURVE, PCURVE, PHLV5_OCC, APOINT, REFINEMENT, RH_MATERIAL, RH_TEXTURE_SPACE, SURFACE, and VERTEX_TEMPLATE.

geometry_changed_action ATTRIB::set_warp_owner_action ( const geometry_changed_action  action  )  [inherited]

Set the warp_owner action for this attribute.

Returns the value actually set. If an invalid action is specified, a sys_warning(VALUE_OUT_OF_RANGE) will be issued and the action will remain unchanged.

Setting the warp_owner action on an attribute that implements warp_owner will have no effect when that attribute is running in its native application. However, when the attribute is saved to SAT/SAB, its warp_owner action will also be saved. In the event the attribute is restored in a foreign application, we will treat the attribute as 'unknown' but will honor whatever warp_owner action setting is restored. (Note that support for save/restore of attribute actions was introduced in R16; persistence and recognition of attribute actions prior to R16 is not supported.)

Parameters:
action the specified action.

void ATTRIB_DM2ACIS::Setstate_all_icons ( const DM_icon_cmd_args args  ) 

Broadcasts the command encapsulated by the cmd_args to all tag objects in the ATTRIB_DM2ACIS using the data encapsulated by the draw_args.



Role: Calls the icon's Setstate method. The data encapsulate by the cmd_args is passed through this method.

Parameters:
args command passed.

void ATTRIB_DM2ACIS::Setstate_dmod_icons ( const DM_icon_cmd_args args,
int  tag 
)

Broadcasts the command encapsulated by the cmd_args to the all icons on the DS_dmod specified by the tag to change the icon's state.



Role: Calls the icon's Setstate method. The data encapsulated by the cmd_args is passed through this method.

Parameters:
args args passed.
tag tag ID.

void ATTRIB_DM2ACIS::Setstate_icon ( const DM_icon_cmd_args args,
const int *  tags,
int  ntags 
)

Broadcasts the command encapsulated by the cmd_args to the icon to change the icon's state.



Role: Calls the icon's Setstate method. The data encapsulated by the cmd_args is passed through this method.

Parameters:
args args passed.
tags array of tags.
ntags number of tags.

void ATTRIB_DM2ACIS::Setstate_icon ( const DM_icon_cmd_args args,
int  tag 
)

Passes the command encapsulated by the cmd_args to the icon to change the icon's state.



Role: Calls the icon's Setstate method. The data encapsulated by the cmd_args is passed through this method.

Parameters:
args args passed.
tag tag ID.

int ATTRIB_DM2ACIS::Shape_ray_xsect ( SPAposition pt,
SPAunit_vector vc,
double  max_dist,
int  max_dist_units,
SPApar_pos domain_pt,
SPAposition image_pt,
int  tag_flag = 2 
)

Builds and stores in d2a_clump a clump built from the faceting of a d2a_tmp_surface.



Role: Returns 1 for pt_on_curve, 2 for srf_pt, -1 for no_pt, and -2 for fuzzy.

For information purposes only, refer to the description of the corresponding Standalone Deformable Modeling Component interface function DM_xsect_dmod_by_image_line.

Parameters:
pt pt of ray = pt + u * vc.
vc vc of ray = pt + u * vc.
max_dist width of ray in which to search for crvs.
max_dist_units specify the max_dist units, 0=max_dist in image_space units, 1=max_dist in active_view pixels.
domain_pt shape domain pt of intersection.
image_pt shape image pt of intersection.
tag_flag specify tgt dmod 1 = active dmod 2 = root dmod else = member dmod with tag==tag_flag.

DS_dmod* ATTRIB_DM2ACIS::Sibling ( int  tag_flag = 1  ) 

Gets the sibling dmod pointer or NULL.



Parameters:
tag_flag specify target dmod.

int ATTRIB_DM2ACIS::Sibling_tag ( int  tag_flag = 1  ) 

Gets the sibling tag, or -1 if none.



Parameters:
tag_flag specify target dmod.

virtual unsigned ATTRIB_DM2ACIS::size (  )  const [virtual]

Returns the size, in bytes, of this ENTITY.



Role: (Supplied by the ENTITY_FUNCTIONS and UTILITY_DEF macros.)

Reimplemented from ATTRIB_AGC.

Reimplemented in ATTRIB_DS2ACIS, and ATTRIB_DC2ACIS.

void ATTRIB_DM2ACIS::Solve_dmod ( int  iter_count,
int  tag_flag = 1 
)

Solves for a new deformed shape using the current values for surface parameters, loads, and constraints.



Role: Every time the deformable surface state is modified by changing tag objects or surface parameters, use this method to find a new position. When dynamic effects are large, multiple solves will produce an animation effect. If this is not desired, call Solve_dmod with a large iteration count. Solve_dmod will integrate for iteration time steps before returning. No graphics of the intermediate time steps are shown. To save computation time, increase delta time, reduce or eliminate mass, and choose a modest value for damping. See Set_integral_data. This will cause the system to move from one equilibrium position to the next without dynamic effects.

Use this after any changes to dmod object.

For information purposes only, refer to the description of the corresponding Standalone Deformable Modeling Component interface function DM_solve.

Parameters:
iter_count in: number of time-steps.
tag_flag in: specify tgt dmod, 1 for active dmod and offspring, 2 for root dmod and offspring else member dmod with tag==tag_flag.

void ATTRIB_DM2ACIS::Split_dmod ( int  domain_dim,
int  split_pt_count,
double *  split_pts,
int  tag_flag = 1 
)

Splits dmod's domain description, making more elements per dmod.



Role: For information purposes only, refer to the description of the corresponding Standalone Deformable Modeling Component interface function DM_split_dmod.

Parameters:
domain_dim dmod domain_dim (for error checking).
split_pt_count number of split locations.
split_pts locations at which to split domain.
tag_flag in: specify tgt dmod, 1 for active dmod and offspring, 2 for root dmod and offspring else member dmod with tag==tag_flag.

virtual void ATTRIB_DM2ACIS::split_owner ( ENTITY entity  )  [inline, virtual]

Notifies the class_name that its owner is about to be split into two parts.



Role: The application has the chance to duplicate or otherwise modify the attribute. The default action is to do nothing. This function is supplied by the application whenever it defines a new attribute, and is called when a split occurs.

Parameters:
entity entity being created.

Reimplemented from ATTRIB.

tag_id_type ENTITY::tag ( logical  assign_new = TRUE  )  const [inline, inherited]

Data reading routine.



Parameters:
assign_new flag to assign a new tag number or not.

int ATTRIB_DM2ACIS::Tag_count (  )  const [protected]

hierarchy's currently assigned tag id value.

int ATTRIB_DM2ACIS::Tag_from_tag_flag ( int  tag_flag = 1  ) 

Returns a tag for input tag_flag.



Parameters:
tag_flag tag_flag to parse.

curve* ATTRIB_DM2ACIS::Tmp_curv ( int  tag_flag = 1  ) 

Returns a pointer to the deformable surface's surface object for debugging purposes.



Parameters:
tag_flag specify tgt dmod.

void ATTRIB_DM2ACIS::Tmp_shape_eval ( int  domain_dim,
SPApar_pos dpt,
SPAposition ipt,
SPAvector ipt_d1,
SPAvector ipt_d2,
int  tag_flag = 1 
)

Evaluates tmp_surface at dpt.



Role: Takes a parametric position as input, and outputs the position, the first derivative as the two-element array ipt_d1 = [du, dv] and the second derivative as the three-element array ipt_d2 = [duu, duv, dvv].

Parameters:
domain_dim dmod domain_dim (for error checking).
dpt parametric position.
ipt position.
ipt_d1 1st derivs.
ipt_d2 2nd derivs.
tag_flag specify tgt dmod 1 = active dmod 2 = root dmod else = member dmod with tag==tag_flag.

surface* ATTRIB_DM2ACIS::Tmp_surf ( int  tag_flag = 1  ) 

Returns a pointer to the ACIS representation surface object for debugging purposes.



Parameters:
tag_flag specify tgt dmod.

virtual void ATTRIB::to_tolerant_owner ( ENTITY tol_ent  )  [virtual, inherited]

Notifies this ATTRIB that its owning ENTITY is being replaced with a tolerant ENTITY.



Role: The default action is to move the attribute onto the given tolerant ENTITY only if moveable() returns TRUE.

Depending on the application needs of your attribute, it may be possible to utilize the set_to_tolerant_owner_action method to specify how your attribute should act within to_tolerant_owner, which would preclude the need to actually implement this method.

Parameters:
tol_ent the new, tolerant owner.
See also:
ATTRIB::set_to_tolerant_owner_action, get_to_tolerant_owner_action, tolerant_action, to_tolerant_attrib

DS_TAGS ATTRIB_DM2ACIS::Toggle_cstrn ( int  tag  ) 

When tag identifies a constraint that can be disabled.



Role: Toggles the constraint state between DS_CST_ON and DS_CST_OFF and returns the tag type of the modified constraint. When tag is an invalid number or identifies a constraint that can not be toggled, the value DS_tag_none is returned.

Parameters:
tag identifying tag for the target.

void ATTRIB_DM2ACIS::Toggle_seam ( int  tag_flag = 1  ) 

Toggles patch's C0/C1/C2 connectivity.



Role: For information purposes only, refer to the description of the corresponding Standalone Deformable Modeling Component interface function DM_set_patch_continuity.

Parameters:
tag_flag specify tgt dmod, 1 = active dmod, 2 = root dmod, else = member dmod with tag==tag_flag.

virtual void ATTRIB::trans_owner_list ( const SPAtransf transf,
ENTITY_LIST e_list 
) [virtual, inherited]

Notifies this ATTRIB that its owner is about to be transformed.



Role: The application has the chance to transform the attribute. The default action is to call trans_owner.

The list argument is a list of already transformed entities, which can be used to stop infinite recursions by checking whether entities pointed to by the attribute are already in the list.

Parameters:
transf the transformation being applied.
e_list ENTITY list.

Reimplemented in ATTRIB_GEN_NAME.

virtual const char* ATTRIB_DM2ACIS::type_name (  )  const [virtual]

Returns a name for this ENTITY's type.



Role: For the ENTITY class, unknown is returned.

Reimplemented from ATTRIB_AGC.

Reimplemented in ATTRIB_DS2ACIS, and ATTRIB_DC2ACIS.

ATTRIB* ATTRIB::unhook (  )  [inherited]

Removes this ATTRIB from the chain of attributes of its owning ENTITY.



Role: Since the process of unhooking sets the base class pointers (entity_ptr, previous_ptr, and next_ptr) to NULL, therby changing the entity, unhook must first call backup to preserve the prior state of the attribute for rollback purposes. This then allows one to freely modify the pointers, presumably in a derived class method, without worrying whether or not to call backup.

void ATTRIB_DM2ACIS::Update_tmp_shape ( int  tag_flag = 1  ) 

Updates the tmp_shape from DS_dmod data.



Role: Called after Solve and Update_tmp_shape.

Parameters:
tag_flag specify tgt dmod and how deep to go.

virtual int ENTITY::use_count (  )  const [virtual, inherited]

Returns the use count of this ENTITY.



Role: Returns zero if the ENTITY is not use counted.

Reimplemented in CURVE, PCURVE, PHLV5_OCC, APOINT, REFINEMENT, RH_MATERIAL, RH_TEXTURE_SPACE, SURFACE, and VERTEX_TEMPLATE.

virtual void ATTRIB::warp_owner ( law warp  )  [virtual, inherited]

Notifies this ATTRIB that its owning ENTITY will be modified by warping.



Role: This member function allows geometric attributes to warp themselves when their owners are warped.

Depending on the application needs of your attribute, it may be possible to utilize the set_warp_owner_action method to specify how your attribute should act within warp_owner, which would preclude the need to actually implement this method.

The default action is to do nothing.

Parameters:
warp the law being used by the warping operation.
See also:
ATTRIB::set_warp_owner_action, get_warp_owner_action, geometry_changed_action, warp_attrib

Reimplemented in ATTRIB_ANNOTATION, and ATTRIB_EYE_POINTLIST_HEADER.


Friends And Related Function Documentation

outcome api_dm_get_attrib_dm2acis ( ENTITY entity,
ATTRIB_DM2ACIS *&  attrib_dm2acis,
adm_options admO,
AcisOptions acisO 
) [friend]

Gets an ATTRIB_DM2ACIS attribute for the input entity if one exists, otherwise creates a new one.



Role: Searches the input entity's deformable modeling hierarchy for an ATTRIB_DM2ACIS and returns a pointer to it when found, after ensuring that the ATTRIB_DM2ACIS internal data structures are up to date.

When no ATTRIB_DM2ACIS is found a new ATTRIB_DM2ACIS is created for the input entity using either an existing ATTRIB_DSMODEL or default values and a pointer to the new ATTRIB_DM2ACIS is returned. When the entity is not part of a deformable modeling hierarchy, a one member ATTRIB_DSGROUP and an ATTRIB_DSMODEL (owned by the input entity) are created.

Errors: DS_API_NOT_FACE_OR_EDGE - The entity is not a face or an edge, and therefore is not sculptable.

Effect: Changes model

Parameters:
entity in:target FACE or EDGE.
attrib_dm2acis out: pointer to new or retrieved attrib_dm2acis for entity.
admO adm options.
acisO ACIS options such as version and journal.

outcome api_dm_rm_multi_face ( ATTRIB_DM2ACIS attrib_dm2acis,
int  tag,
adm_options adm_o,
AcisOptions ao 
) [friend]

Separates a face from the deformable modeling multi-surface structure and marks it as a stand-alone deformable model.

The face is not deleted.

Role: Removes the attributes from the target deformable model's FACE or EDGE that mark it as a member of the multi-surface deformable modeling hierarchy The target deformable model's FACE or EDGE is left with attributes that mark it as its own standalone deformable modeling hierarchy preserving all of its current tag information.

Errors: DS_API_NO_ATTRIB_DM2ACIS - The input ATTRIB_DM2ACIS pointer cannot be NULL

DS_API_NOT_IN_HIERARCHY - The input tag does not identify a deformable model within the attrib_dm2acis hierarchy.

DS_API_NOT_A_ROOT_SIBLING - The input tag must be a sibling of the root deformable model

Limitations: This function requires (as a precondition) that only queries have been called on the deformable modeling hierarchy since the last call to api_dm_commit_attrib_dm2acis.

Effect: Changes model

Parameters:
attrib_dm2acis sculpting data attribute.
tag face to add to deformable set.
admO adm options.
acisO ACIS options such as version and journal.