LCOV - code coverage report
Current view: top level - util/cgm - CubitTransformMatrix.hpp (source / functions) Hit Total Coverage
Test: coverage_sk.info Lines: 1 1 100.0 %
Date: 2020-06-30 00:58:45 Functions: 1 1 100.0 %
Branches: 0 0 -

           Branch data     Line data    Source code
       1                 :            : //       Class: CubitTransformMatrix
       2                 :            : //
       3                 :            : // Description: A 4-Dimensional Matrix.  Essentially the same as
       4                 :            : //              a generic CubitMatrix, except that it has some
       5                 :            : //              extra 3D transformation functions.
       6                 :            : //
       7                 :            : //              All transformations are pre-multiplications,
       8                 :            : //              meaning that M*V will transform a point V
       9                 :            : //              in the same order transformations are applied to M.
      10                 :            : //
      11                 :            : //      Owner: Darryl Melander
      12                 :            : 
      13                 :            : #ifndef CUBIT_MATRIX_4D_HPP
      14                 :            : #define CUBIT_MATRIX_4D_HPP
      15                 :            : 
      16                 :            : #include "CubitMatrix.hpp"
      17                 :            : #include "CubitVector.hpp"
      18                 :            : #include "CGMUtilConfigure.h"
      19                 :            : 
      20                 :        462 : class CUBIT_UTIL_EXPORT CubitTransformMatrix : public CubitMatrix
      21                 :            : {
      22                 :            : public:
      23                 :            :   CubitTransformMatrix();
      24                 :            :   CubitTransformMatrix(const CubitTransformMatrix& from);
      25                 :            :   ~CubitTransformMatrix();
      26                 :            :   
      27                 :            :   CubitTransformMatrix& translate(const CubitVector& v);
      28                 :            :   CubitTransformMatrix& translate (double x, double y, double z);
      29                 :            :   
      30                 :            :   CubitTransformMatrix& rotate(double degrees, const CubitVector& vector);
      31                 :            :   CubitTransformMatrix& rotate(double degrees, char axis);
      32                 :            :   CubitTransformMatrix& rotate(double degrees, const CubitVector& axis_from,
      33                 :            :                         const CubitVector& axis_to);
      34                 :            : 
      35                 :            :   void get_rotation_axis_and_angle(CubitVector &rotation_axis, double &angle);
      36                 :            :   
      37                 :            :   CubitTransformMatrix& reflect(const CubitVector& vector);
      38                 :            : 
      39                 :            :   CubitTransformMatrix& scale_about_origin (const CubitVector& scale);
      40                 :            :   CubitTransformMatrix& scale_about_origin (double x, double y, double z);
      41                 :            :   CubitTransformMatrix& scale_about_origin (double scale);
      42                 :            :   CubitTransformMatrix& inverse();
      43                 :            :   
      44                 :            :   CubitVector operator* (const CubitVector& point) const;
      45                 :            :   friend CUBIT_UTIL_EXPORT CubitVector operator* (const CubitVector& point,
      46                 :            :                                 const CubitTransformMatrix& matrix);
      47                 :            :   
      48                 :            :   CubitTransformMatrix operator*(const CubitTransformMatrix& matrix) const;
      49                 :            :   CubitMatrix operator*(const CubitMatrix& matrix) const;
      50                 :            :   CubitTransformMatrix operator*(double val) const;
      51                 :            :     
      52                 :            :   //! return the origin of this system
      53                 :            :   CubitVector origin() const;
      54                 :            :   //! return the x-axis
      55                 :            :   CubitVector x_axis() const;
      56                 :            :   //! return the y-axis
      57                 :            :   CubitVector y_axis() const;
      58                 :            :   //! return the z-axis
      59                 :            :   CubitVector z_axis() const;
      60                 :            :   
      61                 :            :   // convenience helper for making transform matrices
      62                 :            :   static CubitTransformMatrix construct_matrix(const CubitVector& origin,
      63                 :            :                                                const CubitVector& x_axis,
      64                 :            :                                                const CubitVector& y_axis);
      65                 :            : 
      66                 :            :   void print_me() const;
      67                 :            : };
      68                 :            : 
      69                 :            : #endif
      70                 :            : 

Generated by: LCOV version 1.11