Home

Topology
[Kernel Functionality]

Collaboration diagram for Topology:

Classes

class  BODY
 Represents a wire, sheet, or solid body. More...
class  COEDGE
 Relates EDGEs to adjacent EDGEs and to owning ENTITYs. More...
class  EDGE
 Represents a physical edge. More...
class  FACE
 Represents a bounded portion of a SURFACE. More...
class  LOOP
 Represents a set of connected EDGEs that bound a FACE. More...
class  LUMP
 Represents a bounded, connected portion of space. More...
class  SHELL
 Represents the external boundary of a LUMP, or the internal boundary of a void (unoccupied space) within a LUMP. More...
class  SUBSHELL
 Represents a subdivision of a SHELL or SUBSHELL. More...
class  TCOEDGE
 Internal to ACIS and not intended for direct usage. More...
class  TEDGE
 Although this internal class is intended strictly for ACIS usage, a minimal amount of information about this class is provided for the sole purpose of being able to understand and trace restoration from a SAT file. More...
class  TVERTEX
 Internal to ACIS and not intended for direct usage. More...
class  unknown_text_pointer
 Implements the member functions to point to an object containing textual data to be read from a save file. More...
class  VERTEX
 Represents a corner of a FACE and/or the end of an EDGE. More...
class  WIRE
 Represents a collection of edges that are owned by a body but are not attached to faces and do not enclose any volume. More...

Defines

#define APOINT_ID   0x00000001
 APOINT ID.
#define ASM_ASSEMBLY_ID   0x40000000
 ASSEMBLY ID.
#define ASM_MODEL_REF_ID   0xE0000004
 ASSEMBLY MODEL ID.
#define ATTRIB_ID   0x20000000
 ATTRIB ID.
#define BODY_ID   0x10000000
 BODY ID.
#define BODY_LEVEL   1
 Identifier that gives number of levels of derivation of this class from ENTITY.
#define COEDGE_ID   0x00001000
 COEDGE ID.
#define COEDGE_LEVEL   1
 Identifier that gives number of levels of derivation of this class from ENTITY.
#define COMPCURV_ID   0x00000040
 COMCURV ID.
#define CONE_ID   0x00080000
 CONE ID.
#define CURVE_ID   0x000003F8
 CURVE ID.
#define DEGENERATE_ID   0x00000020
 DEGENERATE ID.
#define EDGE_ID   0x00000400
 EDGE ID.
#define EDGE_LEVEL   1
 Identifier that gives number of levels of derivation of this class from ENTITY.
#define ELLIPSE_ID   0x00000100
 ELLIPSE ID.
#define FACE_ID   0x00800000
 FACE ID.
#define FACE_LEVEL   1
 Identifier that gives number of levels of derivation of this class from ENTITY.
#define HELIX_ID   0x00000008
 HELIX ID.
#define INTCURVE_ID   0x00000080
 INTCURVE ID.
#define LOOP_ID   0x00004000
 LOOP ID.
#define LOOP_LEVEL   1
 Identifier that gives number of levels of derivation of this class from ENTITY.
#define LUMP_ID   0x04000000
 LUMP ID.
#define LUMP_LEVEL   1
 Identifier that gives number of levels of derivation of this class from ENTITY.
#define MESHSURF_ID   0x00020000
 MESHSURF ID.
#define PCURVE_ID   0x00000800
 PCURVE ID.
#define PLANE_ID   0x00400000
 PLANE ID.
#define SHELL_ID   0x02000000
 SHELL ID.
#define SHELL_LEVEL   1
 Identifier that gives number of levels of derivation of this class from ENTITY.
#define SPHERE_ID   0x00200000
 SPHERE ID.
#define SPLINE_ID   0x00040000
 SPLINE ID.
#define STRAIGHT_ID   0x00000200
 STRAIGHT ID.
#define STRIPC_ID   0x00010000
 STRIPC ID.
#define SUBSHELL_ID   0x01000000
 SUBSHELL ID.
#define SUBSHELL_LEVEL   1
 Identifier that gives number of levels of derivation of this class from ENTITY.
#define SURFACE_ID   0x007F0000
 SURFACE ID.
#define TCOEDGE_ID   0x00001100
 TCOEDGE ID.
#define TCOEDGE_LEVEL   2
 Identifier that gives number of levels of derivation of this class from ENTITY.
#define TEDGE_ID   0x00000410
 TEDGE ID.
#define TEDGE_LEVEL   2
 Identifier that gives number of levels of derivation of this class from ENTITY.
#define TORUS_ID   0x00100000
 TORUS ID.
#define TRANSFORM_ID   0x08000000
 TRANSFORM ID.
#define TVERTEX_ID   0x00000003
 TVERTEX ID.
#define TVERTEX_LEVEL   2
 Identifier that gives number of levels of derivation of this class from ENTITY.
#define UNDEFC_ID   0x00000010
 UNDEFC ID.
#define VERTEX_ID   0x00000002
 VERTEX ID.
#define WIRE_ID   0x00002000
 WIRE ID.
#define WIRE_LEVEL   1
 Identifier that gives number of levels of derivation of this class from ENTITY.

Enumerations

enum  SCAN_TYPE
 Used by SCAN_DEF (copy_scan), COPY_DEF/COPY_WITH_DEEP_COPY_DEF (copy_common), and FIX_POINTER_DEF (fix_common) to indicate for what purpose an entity is being scanned. More...

Functions

void auto_merge_periodic_vertex_candidates ()
 Attempts the merge of the current list of periodic seam vertex candidates.

Define Documentation

#define APOINT_ID   0x00000001

APOINT ID.

#define ASM_ASSEMBLY_ID   0x40000000

ASSEMBLY ID.

#define ASM_MODEL_REF_ID   0xE0000004

ASSEMBLY MODEL ID.

#define ATTRIB_ID   0x20000000

ATTRIB ID.

#define BODY_ID   0x10000000

BODY ID.

#define BODY_LEVEL   1

Identifier that gives number of levels of derivation of this class from ENTITY.

#define COEDGE_ID   0x00001000

COEDGE ID.

#define COEDGE_LEVEL   1

Identifier that gives number of levels of derivation of this class from ENTITY.

#define COMPCURV_ID   0x00000040

COMCURV ID.

#define CONE_ID   0x00080000

CONE ID.

#define CURVE_ID   0x000003F8

CURVE ID.

#define DEGENERATE_ID   0x00000020

DEGENERATE ID.

#define EDGE_ID   0x00000400

EDGE ID.

#define EDGE_LEVEL   1

Identifier that gives number of levels of derivation of this class from ENTITY.

#define ELLIPSE_ID   0x00000100

ELLIPSE ID.

#define FACE_ID   0x00800000

FACE ID.

#define FACE_LEVEL   1

Identifier that gives number of levels of derivation of this class from ENTITY.

#define HELIX_ID   0x00000008

HELIX ID.

#define INTCURVE_ID   0x00000080

INTCURVE ID.

#define LOOP_ID   0x00004000

LOOP ID.

#define LOOP_LEVEL   1

Identifier that gives number of levels of derivation of this class from ENTITY.

#define LUMP_ID   0x04000000

LUMP ID.

#define LUMP_LEVEL   1

Identifier that gives number of levels of derivation of this class from ENTITY.

#define MESHSURF_ID   0x00020000

MESHSURF ID.

#define PCURVE_ID   0x00000800

PCURVE ID.

#define PLANE_ID   0x00400000

PLANE ID.

#define SHELL_ID   0x02000000

SHELL ID.

#define SHELL_LEVEL   1

Identifier that gives number of levels of derivation of this class from ENTITY.

#define SPHERE_ID   0x00200000

SPHERE ID.

#define SPLINE_ID   0x00040000

SPLINE ID.

#define STRAIGHT_ID   0x00000200

STRAIGHT ID.

#define STRIPC_ID   0x00010000

STRIPC ID.

#define SUBSHELL_ID   0x01000000

SUBSHELL ID.

#define SUBSHELL_LEVEL   1

Identifier that gives number of levels of derivation of this class from ENTITY.

#define SURFACE_ID   0x007F0000

SURFACE ID.

#define TCOEDGE_ID   0x00001100

TCOEDGE ID.

#define TCOEDGE_LEVEL   2

Identifier that gives number of levels of derivation of this class from ENTITY.

#define TEDGE_ID   0x00000410

TEDGE ID.

#define TEDGE_LEVEL   2

Identifier that gives number of levels of derivation of this class from ENTITY.

#define TORUS_ID   0x00100000

TORUS ID.

#define TRANSFORM_ID   0x08000000

TRANSFORM ID.

#define TVERTEX_ID   0x00000003

TVERTEX ID.

#define TVERTEX_LEVEL   2

Identifier that gives number of levels of derivation of this class from ENTITY.

#define UNDEFC_ID   0x00000010

UNDEFC ID.

#define VERTEX_ID   0x00000002

VERTEX ID.

#define WIRE_ID   0x00002000

WIRE ID.

#define WIRE_LEVEL   1

Identifier that gives number of levels of derivation of this class from ENTITY.


Enumeration Type Documentation

enum SCAN_TYPE

Used by SCAN_DEF (copy_scan), COPY_DEF/COPY_WITH_DEEP_COPY_DEF (copy_common), and FIX_POINTER_DEF (fix_common) to indicate for what purpose an entity is being scanned.



In general, scanning is a process by which the caller can determine what entities are "reachable" from a given entity.

Some ACIS specific examples:

When a BODY is SCAN_COPY'ed, it adds its lump(), wire(), and transform() to the scan-list.

When a LUMP is SCAN_COPY'ed, it adds its owning body(), the next() LUMP, and its first shell() to the scan-list.

When a COEDGE is SCAN_COPY'ed, it adds its previous() COEDGE, its next() COEDGE, it's partner() COEDGE, its edge(), its owner() (a LOOP or WIRE), and its geometry().

When the base class ENTITY is SCAN_COPY'ed, it walks its attribute list forwards (using next()) and adds the first copyable() attribute it finds.

When the base class ATTRIB is SCAN_COPY'ed, it first walks the attribute linked list backwards (using previous()) and adds the first copyable() attribute it finds. Then it walks the attribute linked list forwards (using next()) and adds the first copyable() attribute it finds. Finally, it adds its owner().

Typically, when an entity is scanned, it simply adds everything it can reach to the scan list. However, depending on the SCAN_TYPE, it may be that some of the entities within reach are excluded. Refer to the following descriptions of each SCAN_TYPE to see how each is used.

Parameters:
SCAN_UNSPECIFIED Like SCAN_DISTRIBUTE, intends to reach everything possible.
SCAN_COPY The default scan used by copy_scan. The type of scan used by api_copy_entity, api_copy_body, and api_copy_entity_list.
SCAN_DELETE The type of scan used by api_del_entity and api_del_entity_list.
SCAN_DISTRIBUTE Like SCAN_UNSPECIFIED, intends to reach everything possible.
SCAN_DEEP_COPY The type of scan used by api_deep_copy_entity and api_deep_copy_entity_list.
SCAN_PATTERN The type of scan used when creating a new pattern element. The scan should not add any topological or geometrical entities to the scan-list if they do not belong to the pattern element being scanned.
SCAN_PATTERN_DOWN Like SCAN_PATTERN, except we don't scan parents or siblings.
SCAN_DOWN The type of scan used to scan down a topology hierarchy, excluding siblings of starting entity. Used primarily for copy purposes.
SCAN_UP Not currently implemented or used (reserved for possible use to scan up a topological hierarchy.)
See also:
ENTITY

include <entity.hxx>


Function Documentation

void auto_merge_periodic_vertex_candidates (  ) 

Attempts the merge of the current list of periodic seam vertex candidates.



Role: Candidate vertices are recorded when the option "auto_merge_periodic_vertices" is enabled, and periodic edges are split during the current operation. The vertices are normally merged at the end of the operation but can be merged at an earlier time with this function.

include <vertex.hxx>