1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146
|
// File generated by CPPExt (Value)
//
// Copyright (C) 1991 - 2000 by
// Matra Datavision SA. All rights reserved.
//
// Copyright (C) 2001 - 2004 by
// Open CASCADE SA. All rights reserved.
//
// This file is part of the Open CASCADE Technology software.
//
// This software may be distributed and/or modified under the terms and
// conditions of the Open CASCADE Public License as defined by Open CASCADE SA
// and appearing in the file LICENSE included in the packaging of this file.
//
// This software is distributed on an "AS IS" basis, without warranty of any
// kind, and Open CASCADE SA hereby disclaims all such warranties,
// including without limitation, any warranties of merchantability, fitness
// for a particular purpose or non-infringement. Please see the License for
// the specific terms and conditions governing rights and limitations under the
// License.
#ifndef _ShapeAnalysis_Shell_HeaderFile
#define _ShapeAnalysis_Shell_HeaderFile
#ifndef _TopTools_IndexedMapOfShape_HeaderFile
#include <TopTools_IndexedMapOfShape.hxx>
#endif
#ifndef _Standard_Boolean_HeaderFile
#include <Standard_Boolean.hxx>
#endif
#ifndef _Standard_Integer_HeaderFile
#include <Standard_Integer.hxx>
#endif
class TopoDS_Shape;
class TopoDS_Compound;
#ifndef _Standard_HeaderFile
#include <Standard.hxx>
#endif
#ifndef _Standard_Macro_HeaderFile
#include <Standard_Macro.hxx>
#endif
//! This class provides operators to analyze edges orientation <br>
//! in the shell. <br>
class ShapeAnalysis_Shell {
public:
void* operator new(size_t,void* anAddress)
{
return anAddress;
}
void* operator new(size_t size)
{
return Standard::Allocate(size);
}
void operator delete(void *anAddress)
{
if (anAddress) Standard::Free((Standard_Address&)anAddress);
}
// Methods PUBLIC
//
//! Clears data about loaded shells and performed checks <br>
Standard_EXPORT void Clear() ;
//! Adds shells contained in the <shape> to the list of loaded shells <br>
Standard_EXPORT void LoadShells(const TopoDS_Shape& shape) ;
//! Checks if shells fulfill orientation condition, i.e. if each <br>
//! edge is, either present once (free edge) or twice (connected <br>
//! edge) but with different orientations (FORWARD/REVERSED) <br>
//! Edges which do not fulfill these conditions are bad <br>
//! <br>
//! If <alsofree> is True free edges are considered. <br>
//! Free edges can be queried but are not bad <br>
Standard_EXPORT Standard_Boolean CheckOrientedShells(const TopoDS_Shape& shape,const Standard_Boolean alsofree = Standard_False) ;
//! Tells if a shape is loaded (only shells are checked) <br>
Standard_EXPORT Standard_Boolean IsLoaded(const TopoDS_Shape& shape) const;
//! Returns the actual number of loaded shapes (i.e. shells) <br>
Standard_EXPORT Standard_Integer NbLoaded() const;
//! Returns a loaded shape specified by its rank number. <br>
//! Returns null shape if <num> is out of range <br>
Standard_EXPORT TopoDS_Shape Loaded(const Standard_Integer num) const;
//! Tells if at least one edge is recorded as bad <br>
Standard_EXPORT Standard_Boolean HasBadEdges() const;
//! Returns the list of bad edges as a Compound <br>
//! It is empty (not null) if no edge are recorded as bad <br>
Standard_EXPORT TopoDS_Compound BadEdges() const;
//! Tells if at least one edge is recorded as free (not connected) <br>
Standard_EXPORT Standard_Boolean HasFreeEdges() const;
//! Returns the list of free (not connected) edges as a Compound <br>
//! It is empty (not null) if no edge are recorded as free <br>
Standard_EXPORT TopoDS_Compound FreeEdges() const;
//! Tells if at least one edge is connected (shared twice or more) <br>
Standard_EXPORT Standard_Boolean HasConnectedEdges() const;
protected:
// Methods PROTECTED
//
// Fields PROTECTED
//
private:
// Methods PRIVATE
//
// Fields PRIVATE
//
TopTools_IndexedMapOfShape myShells;
TopTools_IndexedMapOfShape myBad;
TopTools_IndexedMapOfShape myFree;
Standard_Boolean myConex;
};
// other Inline functions and methods (like "C++: function call" methods)
//
#endif
|