mirror of
https://github.com/Open-Cascade-SAS/OCCT.git
synced 2026-06-13 19:04:10 +08:00
Integration of OCCT 6.5.0 from SVN
This commit is contained in:
104
src/BRepAlgoAPI/BRepAlgoAPI.cdl
Executable file
104
src/BRepAlgoAPI/BRepAlgoAPI.cdl
Executable file
@@ -0,0 +1,104 @@
|
||||
-- File: BRepAlgoAPI.cdl
|
||||
-- Created: Tue Jul 6 17:29:03 1993
|
||||
-- Author: Remi LEQUETTE
|
||||
-- modified by Peter KURNEV Tue Mar 5 14:01:51 2002
|
||||
---Copyright: Matra Datavision 1993
|
||||
|
||||
|
||||
|
||||
package BRepAlgoAPI
|
||||
|
||||
---Purpose: The BRepAlgoAPI package provides a full range of
|
||||
-- services to perform Boolean Operations on arguments (shapes
|
||||
-- that are defined in the BRep data structures). The
|
||||
-- implemented new algorithm is intended to replace the Old
|
||||
-- Boolean Operations algorithm in the BRepAlgoAPI package.
|
||||
-- The New algorithm is free of a large number of weak spots
|
||||
-- and limitations characteristics of the Old algorithm.
|
||||
-- It is more powerful and flexible.
|
||||
-- It can process arguments the Old algorithm was not adapted for.
|
||||
-- The new algorithm is based on a new approach to operations
|
||||
-- with interfered shapes. The advantages of the new algorithm
|
||||
-- include an ability to treat arguments that have shared
|
||||
-- entities. It can properly process two solids with shared
|
||||
-- faces (in terms of TopoDS_Shape::IsSame()), two
|
||||
-- faces that have shared edges and so on. Now the New Boolean
|
||||
-- Operation algorithm can treat a wide range of shapes while the
|
||||
-- Old one fails on them.
|
||||
-- A generalization of treatment of same-domain faces
|
||||
-- was included into the New algorithm. Two faces that share
|
||||
-- the same domain are processed according to the common rule
|
||||
-- even if the underlying surfaces are of different types. This
|
||||
-- allows to execute Boolean Operations properly for the same
|
||||
-- domain faces. It also concerns solids and shells that have the
|
||||
-- same domain faces. It is quite frequent when two faces share
|
||||
-- the same domain. And the New algorithm successfully copes
|
||||
-- with it in contrast to the Old one.
|
||||
-- Generalization oftreatment of degenerated edges
|
||||
-- gives a possibility to process them properly. Although there
|
||||
-- are still some difficulties with processing faces in areas close
|
||||
-- to degenerated edges.
|
||||
-- Now the processing of arguments having internal sub-shapes gives
|
||||
-- a correct result. Internal sub-shape means a sub-shape of a
|
||||
-- shape with the orientation TopAbs_INTERNAL and is located
|
||||
-- inside the shape boundaries. The New algorithm processes faces
|
||||
-- with internal edges properly. The new API of the Boolean
|
||||
-- Operations (in addition to the old API) allows to reuse the
|
||||
-- already computed interference between arguments in different
|
||||
-- types of Boolean Operations. It is possible to use once computed
|
||||
-- interference in FUSE, CUT and COMMON operations on given
|
||||
-- arguments. So there is no need to re-compute the interference
|
||||
-- between the arguments. It allows to reduce time for more than one
|
||||
-- operation on given arguments.
|
||||
-- The shape type of a Boolean Operation result and types of the arguments:
|
||||
-- - For arguments with the same shape type (e.g. SOLID /
|
||||
-- SOLID) the type of the resulting shape will be a
|
||||
-- COMPOUND, containing shapes of this type;
|
||||
-- - For arguments with different shape types (e.g.
|
||||
-- SHELL / SOLID) the type of the resulting shape will be a
|
||||
-- COMPOUND, containing shapes of the type that is the same as
|
||||
-- that of the low type of the argument. Example: For
|
||||
-- SHELL/SOLID the result is a COMPOUND of SHELLs.
|
||||
-- - For arguments with different shape types some of
|
||||
-- Boolean Operations can not be done using the default
|
||||
-- implementation, because of a non-manifold type of the
|
||||
-- result. Example: the FUSE operation for SHELL and SOLID
|
||||
-- can not be done, but the CUT operation can be done, where
|
||||
-- SHELL is the object and SOLID is the tool.
|
||||
-- It is possible to perform Boolean Operations on arguments
|
||||
-- of the COMPOUND shape type. In this case each compound must not
|
||||
-- be heterogeneous, i.e. it must contain equidimensional shapes
|
||||
-- (EDGEs or/and WIREs, FACEs or/and SHELLs, SOLIDs). SOLIDs
|
||||
-- inside the COMPOUND must not contact (intersect or touch)
|
||||
-- each other. The same condition is true for SHELLs or FACEs,
|
||||
-- WIREs or EDGEs.
|
||||
-- It does not support Boolean Operations for COMPSOLID type of shape.
|
||||
|
||||
uses
|
||||
TopTools,
|
||||
TopoDS,
|
||||
gp,
|
||||
Geom,
|
||||
Geom2d,
|
||||
BOP,
|
||||
BOPTools,
|
||||
BRepBuilderAPI
|
||||
is
|
||||
|
||||
deferred class BooleanOperation;
|
||||
---Purpose: Root class for boolean operations.
|
||||
|
||||
class Fuse;
|
||||
---Purpose: Perform the boolean operation FUSE.
|
||||
---
|
||||
class Common;
|
||||
---Purpose: Perform the boolean operation COMMON.
|
||||
---
|
||||
class Cut;
|
||||
---Purpose: Perform the boolean operation CUT.
|
||||
---
|
||||
class Section;
|
||||
---Purpose: Perform the operation SECTION.
|
||||
---
|
||||
|
||||
end BRepAlgoAPI;
|
||||
Reference in New Issue
Block a user