Back to home page

EIC code displayed by LXR

 
 

    


Warning, /include/Geant4/tools/curve is written in an unsupported language. File is not indexed.

0001 // Copyright (C) 2010, Guy Barrand. All rights reserved.
0002 // See the file tools.license for terms.
0003 
0004 #ifndef tools_curve
0005 #define tools_curve
0006 
0007 #include "scast"
0008 #include "S_STRING"
0009 
0010 #include "lina/vec3f"
0011 #include "lina/mat4f"
0012 
0013 namespace tools {
0014 
0015 class curve {
0016 public:
0017   TOOLS_SCLASS(tools::curve)
0018   virtual void* cast(const std::string& a_class) const {
0019     if(void* p = cmp_cast<curve>(this,a_class)) {return p;}
0020     return 0;
0021   }
0022 public:
0023   virtual void copy(curve*&) const = 0;
0024 public:
0025   virtual bool pos_tan_nor(float a_s,
0026                            vec3f& a_pos,
0027                            vec3f& a_tan,
0028                            vec3f& a_nor) const = 0;
0029 public:
0030   curve(){
0031     m_model.set_identity();
0032   }
0033   virtual ~curve(){
0034   }
0035 public:
0036   curve(const curve& a_from):m_model(a_from.m_model){
0037   }
0038   curve& operator=(const curve& a_from){
0039     m_model = a_from.m_model;
0040     return *this;
0041   }
0042 public:
0043   void set_model_matrix(const mat4f& a_m) {m_model = a_m;}
0044 protected:
0045   mat4f m_model;
0046 };
0047 
0048 }
0049 
0050 #endif