0031939: Coding - correction of spelling errors in comments [part 3]
[occt.git] / src / TransferBRep / TransferBRep.hxx
CommitLineData
42cf5bc1 1// Created on: 1994-10-03
2// Created by: Christian CAILLET
3// Copyright (c) 1994-1999 Matra Datavision
4// Copyright (c) 1999-2014 OPEN CASCADE SAS
5//
6// This file is part of Open CASCADE Technology software library.
7//
8// This library is free software; you can redistribute it and/or modify it under
9// the terms of the GNU Lesser General Public License version 2.1 as published
10// by the Free Software Foundation, with special exception defined in the file
11// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
12// distribution for complete text of the license and disclaimer of any warranty.
13//
14// Alternatively, this file may be used under the terms of Open CASCADE
15// commercial license or contractual agreement.
16
17#ifndef _TransferBRep_HeaderFile
18#define _TransferBRep_HeaderFile
19
20#include <Standard.hxx>
21#include <Standard_DefineAlloc.hxx>
22#include <Standard_Handle.hxx>
23
24#include <TopTools_HSequenceOfShape.hxx>
25#include <Standard_Boolean.hxx>
26#include <TColStd_HSequenceOfTransient.hxx>
27#include <TopAbs_Orientation.hxx>
28#include <TransferBRep_HSequenceOfTransferResultInfo.hxx>
29#include <TColStd_HSequenceOfInteger.hxx>
30#include <Standard_Integer.hxx>
31class TopoDS_Shape;
32class Transfer_Binder;
33class Transfer_TransientProcess;
34class Standard_Transient;
35class Transfer_FinderProcess;
36class TransferBRep_ShapeMapper;
37class Message_Printer;
38class Message_Msg;
39class TransferBRep_TransferResultInfo;
40class Interface_CheckIterator;
41class Interface_InterfaceModel;
42class TransferBRep_Reader;
43class TransferBRep_ShapeInfo;
44class TransferBRep_BinderOfShape;
45class TransferBRep_ShapeBinder;
46class TransferBRep_ShapeListBinder;
47class TransferBRep_ShapeMapper;
48class TransferBRep_OrientedShapeMapper;
49class TransferBRep_TransferResultInfo;
50
51
52//! This package gathers services to simply read files and convert
53//! them to Shapes from CasCade. IE. it can be used in conjunction
54//! with purely CasCade software
55class TransferBRep
56{
57public:
58
59 DEFINE_STANDARD_ALLOC
60
61
62 //! Get the Shape recorded in a Binder
63 //! If the Binder brings a multiple result, search for the Shape
64 Standard_EXPORT static TopoDS_Shape ShapeResult (const Handle(Transfer_Binder)& binder);
65
66 //! Get the Shape recorded in a TransientProcess as result of the
67 //! Transfer of an entity. I.E. in the binder bound to that Entity
68 //! If no result or result not a single Shape, returns a Null Shape
69 Standard_EXPORT static TopoDS_Shape ShapeResult (const Handle(Transfer_TransientProcess)& TP, const Handle(Standard_Transient)& ent);
70
71 //! Sets a Shape as a result for a starting entity <ent>
72 //! (reverse of ShapeResult)
73 //! It simply creates a ShapeBinder then binds it to the entity
74 Standard_EXPORT static void SetShapeResult (const Handle(Transfer_TransientProcess)& TP, const Handle(Standard_Transient)& ent, const TopoDS_Shape& result);
75
76 //! Gets the Shapes recorded in a TransientProcess as result of a
77 //! Transfer, considers roots only or all results according
78 //! <rootsonly>, returns them as a HSequence
79 Standard_EXPORT static Handle(TopTools_HSequenceOfShape) Shapes (const Handle(Transfer_TransientProcess)& TP, const Standard_Boolean rootsonly = Standard_True);
80
81 //! Gets the Shapes recorded in a TransientProcess as result of a
82 //! Transfer, for a given list of starting entities, returns
83 //! the shapes as a HSequence
84 Standard_EXPORT static Handle(TopTools_HSequenceOfShape) Shapes (const Handle(Transfer_TransientProcess)& TP, const Handle(TColStd_HSequenceOfTransient)& list);
85
86 //! Returns a Status regarding a Shape in a FinderProcess
87 //! - FORWARD means bound with SAME Orientation
88 //! - REVERSED means bound with REVERSE Orientation
89 //! - EXTERNAL means NOT BOUND
90 //! - INTERNAL is not used
91 Standard_EXPORT static TopAbs_Orientation ShapeState (const Handle(Transfer_FinderProcess)& FP, const TopoDS_Shape& shape);
92
93 //! Returns the result (as a Binder) attached to a given Shape
94 //! Null if none
95 Standard_EXPORT static Handle(Transfer_Binder) ResultFromShape (const Handle(Transfer_FinderProcess)& FP, const TopoDS_Shape& shape);
96
97 //! Returns the result as pure Transient attached to a Shape
98 //! first one if multiple result
99 Standard_EXPORT static Handle(Standard_Transient) TransientFromShape (const Handle(Transfer_FinderProcess)& FP, const TopoDS_Shape& shape);
100
101 //! Binds a Transient Result to a Shape in a FinderProcess
102 //! (as first result if multiple : does not add it to existing one)
103 Standard_EXPORT static void SetTransientFromShape (const Handle(Transfer_FinderProcess)& FP, const TopoDS_Shape& shape, const Handle(Standard_Transient)& result);
104
105 //! Returns a ShapeMapper for a given Shape (location included)
106 //! Either <shape> is already mapped, then its Mapper is returned
107 //! Or it is not, then a new one is created then returned, BUT
108 //! it is not mapped here (use Bind or FindElseBind to do this)
109 Standard_EXPORT static Handle(TransferBRep_ShapeMapper) ShapeMapper (const Handle(Transfer_FinderProcess)& FP, const TopoDS_Shape& shape);
110
111 //! Fills sequence of TransferResultInfo for each type of entity
112 //! given in the EntityTypes (entity are given as objects).
113 //! Method IsKind applied to the entities in TP is used to
114 //! compare with entities in EntityTypes.
115 //! TopAbs_ShapeEnum).
116 Standard_EXPORT static void TransferResultInfo (const Handle(Transfer_TransientProcess)& TP, const Handle(TColStd_HSequenceOfTransient)& EntityTypes, Handle(TransferBRep_HSequenceOfTransferResultInfo)& InfoSeq);
117
118 //! Fills sequence of TransferResultInfo for each type of shape
119 //! given in the ShapeTypes (which are in fact considered as
120 //! TopAbs_ShapeEnum).
121 //! The Finders in the FP are considered as ShapeMappers.
122 Standard_EXPORT static void TransferResultInfo (const Handle(Transfer_FinderProcess)& FP, const Handle(TColStd_HSequenceOfInteger)& ShapeTypes, Handle(TransferBRep_HSequenceOfTransferResultInfo)& InfoSeq);
123
124 //! Prints the results of transfer to given priner with given header.
125 Standard_EXPORT static void PrintResultInfo (const Handle(Message_Printer)& Printer, const Message_Msg& Header, const Handle(TransferBRep_TransferResultInfo)& ResultInfo, const Standard_Boolean printEmpty = Standard_True);
126
127 //! Performs a heavy check by calling the Analyser from BRepCheck
a25d5aaa 128 //! This tool computes a lot of information about integrity of a
42cf5bc1 129 //! Shape. This method uses it and converts its internal result
130 //! to a classic check-list.
a25d5aaa 131 //! <lev> allows to get more information :
42cf5bc1 132 //! 0 : BRepCheck only
133 //! 1(D) + Curves/Surfaces not C0 ; 2 + SameParameter on Edges
134 //! Warning : entities to which checks are bound are the Shapes themselves,
135 //! embedded in ShapeMapper
136 Standard_EXPORT static Interface_CheckIterator BRepCheck (const TopoDS_Shape& shape, const Standard_Integer lev = 1);
137
138 //! Takes a starting CheckIterator which brings checks bound with
139 //! starting objects (Shapes, Transient from an Imagine appli ...)
140 //! and converts it to a CheckIterator in which checks are bound
141 //! with results in an InterfaceModel
142 //! Mapping is recorded in the FinderProcess
143 //! Starting objects for which no individual result is recorded
144 //! remain in their state
145 Standard_EXPORT static Interface_CheckIterator ResultCheckList (const Interface_CheckIterator& chl, const Handle(Transfer_FinderProcess)& FP, const Handle(Interface_InterfaceModel)& model);
146
147 //! Returns the list of objects to which a non-empty Check is
148 //! bound in a check-list. Objects are transients, they can then
149 //! be either Imagine objects entities for an Interface Norm.
150 //! <alsoshapes> commands Shapes to be returned too
151 //! (as ShapeMapper), see also CheckedShapes
152 Standard_EXPORT static Handle(TColStd_HSequenceOfTransient) Checked (const Interface_CheckIterator& chl, const Standard_Boolean alsoshapes = Standard_False);
153
154 //! Returns the list of shapes to which a non-empty Check is bound
155 //! in a check-list
156 Standard_EXPORT static Handle(TopTools_HSequenceOfShape) CheckedShapes (const Interface_CheckIterator& chl);
157
158 //! Returns the check-list bound to a given object, generally none
159 //! (if OK) or one check. <obj> can be, either a true Transient
160 //! object or entity, or a ShapeMapper, in that case the Shape is
161 //! considered
162 Standard_EXPORT static Interface_CheckIterator CheckObject (const Interface_CheckIterator& chl, const Handle(Standard_Transient)& obj);
163
164
165
166
167protected:
168
169
170
171
172
173private:
174
175
176
177
178friend class TransferBRep_Reader;
179friend class TransferBRep_ShapeInfo;
180friend class TransferBRep_BinderOfShape;
181friend class TransferBRep_ShapeBinder;
182friend class TransferBRep_ShapeListBinder;
183friend class TransferBRep_ShapeMapper;
184friend class TransferBRep_OrientedShapeMapper;
185friend class TransferBRep_TransferResultInfo;
186
187};
188
189
190
191
192
193
194
195#endif // _TransferBRep_HeaderFile