Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/externals/g4tools/include/tools/sg/ortho

Version: [ ReleaseNotes ] [ 1.0 ] [ 1.1 ] [ 2.0 ] [ 3.0 ] [ 3.1 ] [ 3.2 ] [ 4.0 ] [ 4.0.p1 ] [ 4.0.p2 ] [ 4.1 ] [ 4.1.p1 ] [ 5.0 ] [ 5.0.p1 ] [ 5.1 ] [ 5.1.p1 ] [ 5.2 ] [ 5.2.p1 ] [ 5.2.p2 ] [ 6.0 ] [ 6.0.p1 ] [ 6.1 ] [ 6.2 ] [ 6.2.p1 ] [ 6.2.p2 ] [ 7.0 ] [ 7.0.p1 ] [ 7.1 ] [ 7.1.p1 ] [ 8.0 ] [ 8.0.p1 ] [ 8.1 ] [ 8.1.p1 ] [ 8.1.p2 ] [ 8.2 ] [ 8.2.p1 ] [ 8.3 ] [ 8.3.p1 ] [ 8.3.p2 ] [ 9.0 ] [ 9.0.p1 ] [ 9.0.p2 ] [ 9.1 ] [ 9.1.p1 ] [ 9.1.p2 ] [ 9.1.p3 ] [ 9.2 ] [ 9.2.p1 ] [ 9.2.p2 ] [ 9.2.p3 ] [ 9.2.p4 ] [ 9.3 ] [ 9.3.p1 ] [ 9.3.p2 ] [ 9.4 ] [ 9.4.p1 ] [ 9.4.p2 ] [ 9.4.p3 ] [ 9.4.p4 ] [ 9.5 ] [ 9.5.p1 ] [ 9.5.p2 ] [ 9.6 ] [ 9.6.p1 ] [ 9.6.p2 ] [ 9.6.p3 ] [ 9.6.p4 ] [ 10.0 ] [ 10.0.p1 ] [ 10.0.p2 ] [ 10.0.p3 ] [ 10.0.p4 ] [ 10.1 ] [ 10.1.p1 ] [ 10.1.p2 ] [ 10.1.p3 ] [ 10.2 ] [ 10.2.p1 ] [ 10.2.p2 ] [ 10.2.p3 ] [ 10.3 ] [ 10.3.p1 ] [ 10.3.p2 ] [ 10.3.p3 ] [ 10.4 ] [ 10.4.p1 ] [ 10.4.p2 ] [ 10.4.p3 ] [ 10.5 ] [ 10.5.p1 ] [ 10.6 ] [ 10.6.p1 ] [ 10.6.p2 ] [ 10.6.p3 ] [ 10.7 ] [ 10.7.p1 ] [ 10.7.p2 ] [ 10.7.p3 ] [ 10.7.p4 ] [ 11.0 ] [ 11.0.p1 ] [ 11.0.p2 ] [ 11.0.p3, ] [ 11.0.p4 ] [ 11.1 ] [ 11.1.1 ] [ 11.1.2 ] [ 11.1.3 ] [ 11.2 ] [ 11.2.1 ] [ 11.2.2 ] [ 11.3.0 ]

Diff markup

Differences between /externals/g4tools/include/tools/sg/ortho (Version 11.3.0) and /externals/g4tools/include/tools/sg/ortho (Version 11.2.1)


  1 // Copyright (C) 2010, Guy Barrand. All rights      1 // Copyright (C) 2010, Guy Barrand. All rights reserved.
  2 // See the file tools.license for terms.            2 // See the file tools.license for terms.
  3                                                     3 
  4 #ifndef tools_sg_ortho                              4 #ifndef tools_sg_ortho
  5 #define tools_sg_ortho                              5 #define tools_sg_ortho
  6                                                     6 
  7 #include "base_camera"                              7 #include "base_camera"
  8                                                     8 
  9 namespace tools {                                   9 namespace tools {
 10 namespace sg {                                     10 namespace sg {
 11                                                    11 
 12 class ortho : public base_camera {                 12 class ortho : public base_camera {
 13   TOOLS_NODE(ortho,tools::sg::ortho,base_camer     13   TOOLS_NODE(ortho,tools::sg::ortho,base_camera)
 14 public:                                            14 public:
 15   virtual float near_height() const {return he     15   virtual float near_height() const {return height.value();}
 16   virtual void zoom(float a_fac) {                 16   virtual void zoom(float a_fac) {
 17     //for exa :                                    17     //for exa :
 18     //  a_fac = 0.99f is a zoom in                 18     //  a_fac = 0.99f is a zoom in
 19     //  a_fac = 1.01f is a zoom out                19     //  a_fac = 1.01f is a zoom out
 20     height.value(height.value()*a_fac);            20     height.value(height.value()*a_fac);
 21   }                                                21   }
 22   virtual camera_type type() const {return cam     22   virtual camera_type type() const {return camera_ortho;}
 23 public:                                            23 public:
 24   sf<float> height;                                24   sf<float> height;
 25 public:                                            25 public:
 26   virtual const desc_fields& node_desc_fields(     26   virtual const desc_fields& node_desc_fields() const {
 27     TOOLS_FIELD_DESC_NODE_CLASS(tools::sg::ort     27     TOOLS_FIELD_DESC_NODE_CLASS(tools::sg::ortho)
 28     static const desc_fields s_v(parent::node_     28     static const desc_fields s_v(parent::node_desc_fields(),1, //WARNING : take care of count.
 29       TOOLS_ARG_FIELD_DESC(height)                 29       TOOLS_ARG_FIELD_DESC(height)
 30     );                                             30     );
 31     return s_v;                                    31     return s_v;
 32   }                                                32   }
 33 private:                                           33 private:
 34   void add_fields(){                               34   void add_fields(){
 35     add_field(&height);                            35     add_field(&height);
 36   }                                                36   }
 37 public:                                            37 public:
 38   ortho()                                          38   ortho()
 39   :parent()                                        39   :parent()
 40   ,height(2)                                       40   ,height(2)
 41   {                                                41   {
 42 #ifdef TOOLS_MEM                                   42 #ifdef TOOLS_MEM
 43     mem::increment(s_class().c_str());             43     mem::increment(s_class().c_str());
 44 #endif                                             44 #endif
 45     add_fields();                                  45     add_fields();
 46   }                                                46   }
 47   virtual ~ortho(){                                47   virtual ~ortho(){
 48 #ifdef TOOLS_MEM                                   48 #ifdef TOOLS_MEM
 49     mem::decrement(s_class().c_str());             49     mem::decrement(s_class().c_str());
 50 #endif                                             50 #endif
 51   }                                                51   }
 52 public:                                            52 public:
 53   ortho(const ortho& a_from)                       53   ortho(const ortho& a_from)
 54   :parent(a_from)                                  54   :parent(a_from)
 55   ,height(a_from.height)                           55   ,height(a_from.height)
 56   {                                                56   {
 57 #ifdef TOOLS_MEM                                   57 #ifdef TOOLS_MEM
 58     mem::increment(s_class().c_str());             58     mem::increment(s_class().c_str());
 59 #endif                                             59 #endif
 60     add_fields();                                  60     add_fields();
 61   }                                                61   }
 62   ortho& operator=(const ortho& a_from){           62   ortho& operator=(const ortho& a_from){
 63     parent::operator=(a_from);                     63     parent::operator=(a_from);
 64     height = a_from.height;                        64     height = a_from.height;
 65     return *this;                                  65     return *this;
 66   }                                                66   }
 67 public: //operators:                               67 public: //operators:
 68   bool operator==(const ortho& a_from) const{      68   bool operator==(const ortho& a_from) const{
 69     if(!parent::operator==(a_from)) return fal     69     if(!parent::operator==(a_from)) return false;
 70     if(height!=a_from.height) return false;        70     if(height!=a_from.height) return false;
 71     return true;                                   71     return true;
 72   }                                                72   }
 73   bool operator!=(const ortho& a_from) const {     73   bool operator!=(const ortho& a_from) const {
 74     return !operator==(a_from);                    74     return !operator==(a_from);
 75   }                                                75   }
 76 public:                                            76 public:
 77   void dump(std::ostream& a_out) {                 77   void dump(std::ostream& a_out) {
 78     parent::dump(a_out);                           78     parent::dump(a_out);
 79     a_out << " height " << height.value() << s     79     a_out << " height " << height.value() << std::endl;
 80   }                                                80   }
 81 protected:                                         81 protected:
 82   virtual void get_lrbt(unsigned int a_ww,unsi     82   virtual void get_lrbt(unsigned int a_ww,unsigned int a_wh,
 83                         float& a_l,float& a_r,     83                         float& a_l,float& a_r,float& a_b,float& a_t) {
 84     float aspect = float(a_ww)/float(a_wh);        84     float aspect = float(a_ww)/float(a_wh);
 85     //landscape : float aspect = float(a_actio     85     //landscape : float aspect = float(a_action.wh())/float(a_action.ww());
 86     float hh = height.value()*0.5f;                86     float hh = height.value()*0.5f;
 87     a_l = -aspect*hh;                              87     a_l = -aspect*hh;
 88     a_r = aspect*hh;                               88     a_r = aspect*hh;
 89     a_b = -hh;                                     89     a_b = -hh;
 90     a_t = hh;                                      90     a_t = hh;
 91   }                                                91   }
 92 };                                                 92 };
 93                                                    93 
 94 inline ortho* cast_ortho(base_camera& a_bcam)      94 inline ortho* cast_ortho(base_camera& a_bcam) {return safe_cast<base_camera,ortho>(a_bcam);}
 95                                                    95 
 96 }}                                                 96 }}
 97                                                    97 
 98 #endif                                             98 #endif