You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
1015 B
40 lines
1015 B
// COORD.H
|
|
#ifndef COORD_H
|
|
#define COORD_H
|
|
#include "vtr.h"
|
|
#include "tensor.h"
|
|
#include "../dgtd-performance.hpp"
|
|
|
|
class Coordinate {
|
|
friend class portMesh;
|
|
|
|
private:
|
|
vtr O, x_axis, y_axis, z_axis;
|
|
public:
|
|
Coordinate();
|
|
void setO(const vtr &);
|
|
void setO(const fp_t &, const fp_t &, const fp_t &);
|
|
void setx_axis(const vtr &);
|
|
void setx_axis(const fp_t &, const fp_t &, const fp_t &);
|
|
void sety_axis(const vtr &);
|
|
void sety_axis(const fp_t &, const fp_t &, const fp_t &);
|
|
void setz_axis(const vtr &);
|
|
void setz_axis(const fp_t &, const fp_t &, const fp_t &);
|
|
|
|
// accessors
|
|
vtr& getO(){return O;}
|
|
vtr& getXAxis(){return x_axis;}
|
|
vtr& getYAxis(){return y_axis;}
|
|
vtr& getZAxis(){return z_axis;}
|
|
|
|
vtr Transform(const vtr &) const;
|
|
vtr invTransform(const vtr &) const;
|
|
tensor Transform(const tensor &) const;
|
|
tensor invTransform(const tensor &) const;
|
|
vtr SphereToXYZ(fp_t, fp_t, fp_t);
|
|
|
|
void print();
|
|
};
|
|
|
|
#endif
|
|
|
|
|