vcsl_cylindrical_to_cartesian_3d.h
Go to the documentation of this file.
1 // This is core/vcsl/vcsl_cylindrical_to_cartesian_3d.h
2 #ifndef vcsl_cylindrical_to_cartesian_3d_h_
3 #define vcsl_cylindrical_to_cartesian_3d_h_
4 //:
5 // \file
6 // \brief Convert 3D cartesian coordinates to cylindrical coordinates
7 // \author Francois BERTEL
8 //
9 // \verbatim
10 // Modifications
11 // 2000/06/28 Francois BERTEL Creation. Adapted from IUE
12 // 2002/01/22 Peter Vanroose - return type of execute() and inverse() changed to non-ptr
13 // 2004/09/17 Peter Vanroose - made "instance_" a local static variable of method instance()
14 // \endverbatim
15 
18 
19 //: Convert 3D cartesian coordinates to cylindrical coordinates
22 {
23  //***************************************************************************
24  // Constructors/Destructor
25  //***************************************************************************
26 
27  // Default constructor
29 
30  public:
31  // Destructor
32  ~vcsl_cylindrical_to_cartesian_3d() override = default;
33 
34  //***************************************************************************
35  // Status report
36  //***************************************************************************
37 
38  //: Is `this' invertible at time `time'?
39  // REQUIRE: valid_time(time)
40  // Pure virtual function of vcsl_spatial_transformation
41  bool is_invertible(double time) const override;
42 
43  //: Is `this' correctly set ?
44  // Always true.
45  // Virtual function of vcsl_spatial_transformation
46  bool is_valid() const override { return true; }
47 
48  //***************************************************************************
49  // Basic operations
50  //***************************************************************************
51 
52  //: Image of `v' by `this'
53  // REQUIRE: is_valid()
54  // REQUIRE: v.size()==3
55  // Pure virtual function of vcsl_spatial_transformation
57  double time) const override;
58 
59  //: Image of `v' by the inverse of `this'
60  // REQUIRE: is_valid()
61  // REQUIRE: is_invertible(time)
62  // REQUIRE: v.size()==3
63  // Pure virtual function of vcsl_spatial_transformation
65  double time) const override;
66 
67  //***************************************************************************
68  // Singleton pattern
69  //***************************************************************************
70 
71  //: Return the reference to the unique vcsl_length object
73 };
74 
75 #endif // vcsl_cylindrical_to_cartesian_3d_h_
~vcsl_cylindrical_to_cartesian_3d() override=default
Transformation between 2 spatial coordinate systems.
Transformation between 2 spatial coordinate systems.
static vcsl_cylindrical_to_cartesian_3d_sptr instance()
Return the reference to the unique vcsl_length object.
vnl_vector< double > execute(const vnl_vector< double > &v, double time) const override
Image of ‘v’ by ‘this’.
Convert 3D cartesian coordinates to cylindrical coordinates.
bool is_invertible(double time) const override
Is ‘this’ invertible at time ‘time’?.
vnl_vector< double > inverse(const vnl_vector< double > &v, double time) const override
Image of ‘v’ by the inverse of ‘this’.
bool is_valid() const override
Is ‘this’ correctly set ?.