OpenLexocad  27.1
VisibleEdge.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <Topo/Shape.h>
4 
5 namespace Topo
6 {
7 class LX_TOPO_EXPORT VisibleEdge
8 {
9 public:
10  enum class VisibleEdgeInfo
11  {
12  EDGE_VIS, // visible segment
13  EDGE_HID, // hidden segment
14  EDGE_OCC, // occluded segment
15  EDGE_UND, // undefined visibility
16  EDGE_VIS_SMOOTH, // smooth but calculated as visible
17  EDGE_HID_SMOOTH // smooth but calculated as hidden
18  };
19 
20  VisibleEdge(pConstEdge e, pConstShape s_shape, VisibleEdgeInfo vis) : edge(e), source_shape(s_shape), visibility(vis){};
21 
22  pConstEdge getEdge() const { return edge; };
23  pConstShape getSourceShape() const { return source_shape; };
24  VisibleEdgeInfo getVisibility() const { return visibility; };
25 
26 private:
27  pConstEdge edge;
28  VisibleEdgeInfo visibility;
29  pConstShape source_shape;
30 };
31 } // namespace Topo
VisibleEdge(pConstEdge e, pConstShape s_shape, VisibleEdgeInfo vis)
Definition: VisibleEdge.h:20
std::shared_ptr< Topo::Edge const > pConstEdge
Definition: Shape.h:98
VisibleEdgeInfo
Definition: VisibleEdge.h:10
pConstShape getSourceShape() const
Definition: VisibleEdge.h:23
Definition: VisibleEdge.h:7
Definition: Variant.h:55
std::shared_ptr< Topo::Shape const > pConstShape
Definition: Variant.h:77
pConstEdge getEdge() const
Definition: VisibleEdge.h:22
VisibleEdgeInfo getVisibility() const
Definition: VisibleEdge.h:24