g4tools  5.4.0
curve
Go to the documentation of this file.
1 // Copyright (C) 2010, Guy Barrand. All rights reserved.
2 // See the file tools.license for terms.
3 
4 #ifndef tools_curve
5 #define tools_curve
6 
7 #include "scast"
8 #include "S_STRING"
9 
10 #ifdef TOOLS_MEM
11 #include "mem"
12 #endif
13 
14 #include "lina/vec3f"
15 #include "lina/mat4f"
16 
17 namespace tools {
18 
19 class curve {
20 public:
22  virtual void* cast(const std::string& a_class) const {
23  if(void* p = cmp_cast<curve>(this,a_class)) {return p;}
24  return 0;
25  }
26 public:
27  virtual void copy(curve*&) const = 0;
28 public:
29  virtual bool pos_tan_nor(float a_s,
30  vec3f& a_pos,
31  vec3f& a_tan,
32  vec3f& a_nor) const = 0;
33 public:
34  curve(){
35 #ifdef TOOLS_MEM
36  mem::increment(s_class().c_str());
37 #endif
38  m_model.set_identity();
39  }
40  virtual ~curve(){
41 #ifdef TOOLS_MEM
42  mem::decrement(s_class().c_str());
43 #endif
44  }
45 public:
46  curve(const curve& a_from):m_model(a_from.m_model){
47 #ifdef TOOLS_MEM
48  mem::increment(s_class().c_str());
49 #endif
50  }
51  curve& operator=(const curve& a_from){
52  m_model = a_from.m_model;
53  return *this;
54  }
55 public:
56  void set_model_matrix(const mat4f& a_m) {m_model = a_m;}
57 protected:
59 };
60 
61 }
62 
63 #endif
tools::curve::curve
curve()
Definition: curve:34
vec3f
tools::curve::copy
virtual void copy(curve *&) const =0
TOOLS_SCLASS
#define TOOLS_SCLASS(a_name)
Definition: S_STRING:41
mem
tools::curve::cast
virtual void * cast(const std::string &a_class) const
Definition: curve:22
tools::curve::pos_tan_nor
virtual bool pos_tan_nor(float a_s, vec3f &a_pos, vec3f &a_tan, vec3f &a_nor) const =0
mat4f
tools::vec3f
Definition: vec3f:13
tools::curve::m_model
mat4f m_model
Definition: curve:58
tools::curve::operator=
curve & operator=(const curve &a_from)
Definition: curve:51
tools
inlined C code : ///////////////////////////////////
Definition: aida_ntuple:26
tools::curve::set_model_matrix
void set_model_matrix(const mat4f &a_m)
Definition: curve:56
S_STRING
tools::curve
Definition: curve:19
tools::mat4f
Definition: mat4f:12
tools::curve::curve
curve(const curve &a_from)
Definition: curve:46
scast
tools::curve::~curve
virtual ~curve()
Definition: curve:40