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