OpenLexocad  28.0
VisibleEdge.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <Topo/Types.h>
4 
5 namespace Topo
6 {
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
Topo::VisibleEdge::VisibleEdgeInfo::EDGE_UND
@ EDGE_UND
Topo::VisibleEdge::VisibleEdgeInfo::EDGE_HID_SMOOTH
@ EDGE_HID_SMOOTH
Topo::VisibleEdge::VisibleEdgeInfo::EDGE_VIS
@ EDGE_VIS
pConstShape
std::shared_ptr< Topo::Shape const > pConstShape
Definition: Variant.h:65
Topo::VisibleEdge::VisibleEdgeInfo::EDGE_VIS_SMOOTH
@ EDGE_VIS_SMOOTH
Topo::VisibleEdge::getEdge
pConstEdge getEdge() const
Definition: VisibleEdge.h:22
Topo::VisibleEdge::getVisibility
VisibleEdgeInfo getVisibility() const
Definition: VisibleEdge.h:24
Topo::VisibleEdge
Definition: VisibleEdge.h:8
pConstEdge
std::shared_ptr< Topo::Edge const > pConstEdge
Definition: Types.h:72
Topo
Definition: DbgInfo.h:17
Types.h
Topo::VisibleEdge::VisibleEdge
VisibleEdge(pConstEdge e, pConstShape s_shape, VisibleEdgeInfo vis)
Definition: VisibleEdge.h:20
Topo::VisibleEdge::VisibleEdgeInfo::EDGE_OCC
@ EDGE_OCC
Topo::VisibleEdge::VisibleEdgeInfo
VisibleEdgeInfo
Definition: VisibleEdge.h:11
Topo::VisibleEdge::getSourceShape
pConstShape getSourceShape() const
Definition: VisibleEdge.h:23
Topo::VisibleEdge::VisibleEdgeInfo::EDGE_HID
@ EDGE_HID