: Public abstract Interface
Created: 23.5.2022 18.05.05
Modified: 1.8.2022 13.54.04
Project:
Advanced:
Primitive is the abstract root class of the geometric primitives. Its main purpose is to define the basic "boundary" operation that ties the primitives in each dimension together. A geometric primitive (Primitive) is a geometric object that is not decomposed further into other primitives in the system. This includes curves and surfaces, even though they are composed of curve segments and surface patches, respectively. This composition is a strong aggregation: curve segments and surface patches cannot exist outside the context of a primitive.<br/>NOTE Most geometric primitives are decomposable infinitely many times. Adding a center point to a line may split that line into two separate lines. A new curve drawn across a surface may divide that surface into two parts, each of which is a surface. This is the reason that the normal definition of primitive as "non-decomposable" is not plausible in a geometry model - the only non-decomposable object in geometry is a point.<br/>Any geometric object that is used to describe a feature is a collection of geometric primitives. A collection of geometric primitives may or may not be a geometric complex. Geometric complexes have additional properties such as closure by boundary operations and mutually exclusive component parts.<br/>Primitive and Complex share most semantics, in the meaning of operations, attributes and associations. There is an exception in that a Primitive shall not contain its boundary (except in the trivial case of Point where the boundary is empty), while a GM_Complex shall contain its boundary in all cases. This means that if an instantiated object implements Geometric Object operations both as GM_Primitive and as a Geometric Complex, the semantics of each set theoretic operation is determined by the its name resolution. Specifically, for a particular object such as Composite Curve, Primitive::contains (returns FALSE for end points) is different from Complex::contains (returns TRUE for end points). Further, if that object is cast as a Geometry Primitive value and as a GM_Complex value, then the two values need not be equal as GM_Objects.<br/>
Element Source Role Target Role
Primitive
Interface  
Name:  
 
Name: segment
 
Details:
 
Complex
Interface  
Name: element
 
Name:  
 
Details:
 
Primitive
Interface  
Name: geometry
 
Name: topology
 
Details:
 
Element Source Role Target Role
Primitive
Interface  
Name:  
 
Name: segment
 
Details:
 
Constraint Type Status
Point->segment is Empty Invariant Approved
Details:
 
typeOf(Curve->segment)=Curve Invariant Approved
Details:
 
typeOf(Surface->segment)=Surface Invariant Approved
Details:
 
typeOf(Solid>segment)=Solid Invariant Approved
Details:
 
Property Value
isFinalSpecialization: 0
Object Type Connection Direction Notes
Solid Interface Generalization From  
Empty Interface Generalization From  
Complex Interface Weak To  
«type» GM_Composite Class Dependency From  
Orientable Interface Generalization From  
«type» GM_Primitive Class Dependency From  
Point Interface Generalization From  
Geometry Interface Generalization To