FrontISTR  5.7.0
Large-scale structural analysis program with finit element method
cconv_mat.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * Copyright (c) 2019 FrontISTR Commons
3  * This software is released under the MIT License, see LICENSE.txt
4  *****************************************************************************/
5 /* matrix for converting ver.1.0 */
6 
7 #ifndef cconv_matH
8 #define cconv_matH
9 
10 #include <math.h>
11 
13 
14 class cconv_mat {
15  public:
16  double e[4][4];
18 
21  cconv_mat& operator=(const cconv_mat& m);
22  cconv_mat& operator*=(const cconv_mat& m);
23 
24  void zero();
25  void unit();
26  void transfer(double x, double y, double z);
27  void rotate(char axis, double angle);
28 
29  void convert(double x, double y, double z, double& X, double& Y, double& Z);
30 
31  double& operator()(int i, int j) { return e[i][j]; }
32  double operator()(int i, int j) const { return e[i][j]; }
33 
34  void cartesian_convert(double x, double y, double z, double& X, double& Y,
35  double& Z);
36  void cylinder2cartesian(double r, double a, double h, double& x, double& y,
37  double& z);
38  void sphere2cartesian(double r, double a, double b, double& x, double& y,
39  double& z);
40 };
41 
43 
44 #endif
cconv_mat::e
double e[4][4]
Definition: cconv_mat.h:16
cconv_mat::cylinder2cartesian
void cylinder2cartesian(double r, double a, double h, double &x, double &y, double &z)
Definition: cconv_mat.cpp:150
cconv_mat::transfer
void transfer(double x, double y, double z)
Definition: cconv_mat.cpp:64
cconv_mat
Definition: cconv_mat.h:14
coord_t_cartesian
@ coord_t_cartesian
Definition: cconv_mat.h:15
cconv_mat::convert
void convert(double x, double y, double z, double &X, double &Y, double &Z)
Definition: cconv_mat.cpp:119
cconv_mat::operator()
double & operator()(int i, int j)
Definition: cconv_mat.h:31
cconv_mat::cartesian_convert
void cartesian_convert(double x, double y, double z, double &X, double &Y, double &Z)
Definition: cconv_mat.cpp:143
coord_t_sphere
@ coord_t_sphere
Definition: cconv_mat.h:15
cconv_mat::type
coord_type type
Definition: cconv_mat.h:17
cconv_mat::zero
void zero()
Definition: cconv_mat.cpp:44
cconv_mat::operator()
double operator()(int i, int j) const
Definition: cconv_mat.h:32
coord_t_cylinder
@ coord_t_cylinder
Definition: cconv_mat.h:15
cconv_mat::sphere2cartesian
void sphere2cartesian(double r, double a, double b, double &x, double &y, double &z)
Definition: cconv_mat.cpp:157
cconv_mat::cconv_mat
cconv_mat(coord_type t=coord_t_cartesian)
Definition: cconv_mat.cpp:10
cconv_mat::unit
void unit()
Definition: cconv_mat.cpp:52
operator*
cconv_mat operator*(cconv_mat &a, cconv_mat &b)
Definition: cconv_mat.cpp:165
cconv_mat::rotate
void rotate(char axis, double angle)
Definition: cconv_mat.cpp:71
cconv_mat::operator=
cconv_mat & operator=(const cconv_mat &m)
Definition: cconv_mat.cpp:20
coord_type
coord_type
Definition: cconv_mat.h:12
cconv_mat::operator*=
cconv_mat & operator*=(const cconv_mat &m)
Definition: cconv_mat.cpp:32