Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2024-11-15 09:47:05

0001 // Created on: 1997-04-17
0002 // Created by: Christophe MARION
0003 // Copyright (c) 1997-1999 Matra Datavision
0004 // Copyright (c) 1999-2014 OPEN CASCADE SAS
0005 //
0006 // This file is part of Open CASCADE Technology software library.
0007 //
0008 // This library is free software; you can redistribute it and/or modify it under
0009 // the terms of the GNU Lesser General Public License version 2.1 as published
0010 // by the Free Software Foundation, with special exception defined in the file
0011 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
0012 // distribution for complete text of the license and disclaimer of any warranty.
0013 //
0014 // Alternatively, this file may be used under the terms of Open CASCADE
0015 // commercial license or contractual agreement.
0016 
0017 #ifndef _HLRBRep_FaceData_HeaderFile
0018 #define _HLRBRep_FaceData_HeaderFile
0019 
0020 #include <Standard.hxx>
0021 #include <Standard_DefineAlloc.hxx>
0022 #include <Standard_Handle.hxx>
0023 
0024 #include <HLRBRep_Surface.hxx>
0025 #include <TopAbs_Orientation.hxx>
0026 #include <Standard_Integer.hxx>
0027 class HLRAlgo_WiresBlock;
0028 class TopoDS_Face;
0029 
0030 
0031 
0032 class HLRBRep_FaceData 
0033 {
0034 public:
0035 
0036   DEFINE_STANDARD_ALLOC
0037 
0038   
0039   Standard_EXPORT HLRBRep_FaceData();
0040   
0041   //! <Or> is the orientation of the face.  <Cl> is true
0042   //! if the face  belongs to a  closed  volume. <NW> is
0043   //! the number of wires ( or block  of  edges ) of the
0044   //! face.
0045   Standard_EXPORT void Set (const TopoDS_Face& FG, const TopAbs_Orientation Or, const Standard_Boolean Cl, const Standard_Integer NW);
0046   
0047   //! Set <NE> the number  of  edges of the wire  number
0048   //! <WI>.
0049   Standard_EXPORT void SetWire (const Standard_Integer WI, const Standard_Integer NE);
0050   
0051   //! Set the edge number <EWI> of the  wire <WI>.
0052   Standard_EXPORT void SetWEdge (const Standard_Integer WI, const Standard_Integer EWI, const Standard_Integer EI, const TopAbs_Orientation Or, const Standard_Boolean OutL, const Standard_Boolean Inte, const Standard_Boolean Dble, const Standard_Boolean IsoL);
0053   
0054     Standard_Boolean Selected() const;
0055   
0056     void Selected (const Standard_Boolean B);
0057   
0058     Standard_Boolean Back() const;
0059   
0060     void Back (const Standard_Boolean B);
0061   
0062     Standard_Boolean Side() const;
0063   
0064     void Side (const Standard_Boolean B);
0065   
0066     Standard_Boolean Closed() const;
0067   
0068     void Closed (const Standard_Boolean B);
0069   
0070     Standard_Boolean Hiding() const;
0071   
0072     void Hiding (const Standard_Boolean B);
0073   
0074     Standard_Boolean Simple() const;
0075   
0076     void Simple (const Standard_Boolean B);
0077   
0078     Standard_Boolean Cut() const;
0079   
0080     void Cut (const Standard_Boolean B);
0081   
0082     Standard_Boolean WithOutL() const;
0083   
0084     void WithOutL (const Standard_Boolean B);
0085   
0086     Standard_Boolean Plane() const;
0087   
0088     void Plane (const Standard_Boolean B);
0089   
0090     Standard_Boolean Cylinder() const;
0091   
0092     void Cylinder (const Standard_Boolean B);
0093   
0094     Standard_Boolean Cone() const;
0095   
0096     void Cone (const Standard_Boolean B);
0097   
0098     Standard_Boolean Sphere() const;
0099   
0100     void Sphere (const Standard_Boolean B);
0101   
0102     Standard_Boolean Torus() const;
0103   
0104     void Torus (const Standard_Boolean B);
0105   
0106     Standard_Real Size() const;
0107   
0108     void Size (const Standard_Real S);
0109   
0110     TopAbs_Orientation Orientation() const;
0111   
0112     void Orientation (const TopAbs_Orientation O);
0113   
0114     Handle(HLRAlgo_WiresBlock)& Wires();
0115   
0116     HLRBRep_Surface& Geometry();
0117   
0118     Standard_ShortReal Tolerance() const;
0119 
0120 protected:
0121 
0122   enum EMaskFlags
0123   {
0124     EMaskOrient   = 15,
0125     FMaskSelected = 16,
0126     FMaskBack     = 32,
0127     FMaskSide     = 64,
0128     FMaskClosed   = 128,
0129     FMaskHiding   = 256,
0130     FMaskSimple   = 512,
0131     FMaskCut      = 1024,
0132     FMaskWithOutL = 2048,
0133     FMaskPlane    = 4096,
0134     FMaskCylinder = 8192,
0135     FMaskCone     = 16384,
0136     FMaskSphere   = 32768,
0137     FMaskTorus    = 65536
0138   };
0139 
0140 private:
0141 
0142   Standard_Integer myFlags;
0143   Handle(HLRAlgo_WiresBlock) myWires;
0144   HLRBRep_Surface myGeometry;
0145   Standard_Real mySize;
0146   Standard_ShortReal myTolerance;
0147 
0148 };
0149 
0150 #include <HLRBRep_FaceData.lxx>
0151 
0152 #endif // _HLRBRep_FaceData_HeaderFile