Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-09-19 09:28:08

0001 // Created on: 1993-10-29
0002 // Created by: Christophe MARION
0003 // Copyright (c) 1993-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 _HLRAlgo_PolyHidingData_HeaderFile
0018 #define _HLRAlgo_PolyHidingData_HeaderFile
0019 
0020 #include <Standard.hxx>
0021 #include <Standard_DefineAlloc.hxx>
0022 
0023 #include <Standard_Integer.hxx>
0024 
0025 //! Data structure of a set of Hiding Triangles.
0026 class HLRAlgo_PolyHidingData
0027 {
0028 public:
0029   DEFINE_STANDARD_ALLOC
0030 
0031   struct TriangleIndices
0032   {
0033     int Index, Min, Max;
0034   };
0035 
0036   struct PlaneT
0037   {
0038     PlaneT()
0039         : D(0.0)
0040     {
0041     }
0042 
0043     gp_XYZ Normal;
0044     double D;
0045   };
0046 
0047   HLRAlgo_PolyHidingData() = default;
0048 
0049   void Set(const int    Index,
0050            const int    Minim,
0051            const int    Maxim,
0052            const double A,
0053            const double B,
0054            const double C,
0055            const double D)
0056   {
0057     myIndices.Index = Index;
0058     myIndices.Min   = Minim;
0059     myIndices.Max   = Maxim;
0060     myPlane.Normal  = gp_XYZ(A, B, C);
0061     myPlane.D       = D;
0062   }
0063 
0064   TriangleIndices& Indices() { return myIndices; }
0065 
0066   PlaneT& Plane() { return myPlane; }
0067 
0068 private:
0069   TriangleIndices myIndices;
0070   PlaneT          myPlane;
0071 };
0072 
0073 #endif // _HLRAlgo_PolyHidingData_HeaderFile