OpenLexocad  28.0
RayHit.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <Topo/Types.h>
4 #include <vector>
5 
6 namespace App
7 {
8 class Element;
9 }
10 
11 namespace Topo
12 {
13 class RayHit
14 {
15 public:
16  enum class HitType
17  {
18  HIT_NONE,
19  HIT_VERTEX,
20  HIT_EDGE,
21  HIT_FACE,
22  HIT_ELSE
23  };
24 
25 
26  RayHit() : hit_element(0), hit_item(nullptr), hit_param(0.), hit_type(), hit_item_idx(-1){};
27 
28  RayHit(App::Element* e, pConstTopologicalItem item, double param, Topo::RayHit::HitType h_type, int idx)
29  : hit_element(e), hit_item(item), hit_param(param), hit_type(h_type), hit_item_idx(idx){};
30 
31  App::Element* getHitElement() { return hit_element; };
32  pConstTopologicalItem getHitItem() { return hit_item; };
33  double getHitParam() { return hit_param; };
34  RayHit::HitType getHitType() { return hit_type; };
35  int getHitItemIdx() { return hit_item_idx; };
36 
37 private:
38  App::Element* hit_element;
39  pConstTopologicalItem hit_item;
40  int hit_item_idx;
41  double hit_param;
43 };
44 
45 typedef std::vector<RayHit> RayHitVector;
46 } // namespace Topo
Topo::RayHit::HitType::HIT_FACE
@ HIT_FACE
Topo::RayHit::HitType::HIT_VERTEX
@ HIT_VERTEX
Topo::RayHit::getHitItem
pConstTopologicalItem getHitItem()
Definition: RayHit.h:32
Topo::RayHit::getHitType
RayHit::HitType getHitType()
Definition: RayHit.h:34
Topo::RayHit
Definition: RayHit.h:14
Topo::RayHit::getHitParam
double getHitParam()
Definition: RayHit.h:33
Topo::RayHit::getHitElement
App::Element * getHitElement()
Definition: RayHit.h:31
Topo::RayHit::HitType::HIT_NONE
@ HIT_NONE
Topo::RayHitVector
std::vector< RayHit > RayHitVector
Definition: RayHit.h:45
Topo::RayHit::HitType
HitType
Definition: RayHit.h:17
Topo
Definition: DbgInfo.h:17
Types.h
Topo::RayHit::RayHit
RayHit()
Definition: RayHit.h:26
pConstTopologicalItem
std::shared_ptr< Topo::TopologicalItem const > pConstTopologicalItem
Definition: Types.h:63
Topo::RayHit::HitType::HIT_ELSE
@ HIT_ELSE
Topo::RayHit::RayHit
RayHit(App::Element *e, pConstTopologicalItem item, double param, Topo::RayHit::HitType h_type, int idx)
Definition: RayHit.h:28
Topo::RayHit::HitType::HIT_EDGE
@ HIT_EDGE
Topo::RayHit::getHitItemIdx
int getHitItemIdx()
Definition: RayHit.h:35