MRPT  1.9.9
CEllipsoidInverseDepth2D.cpp
Go to the documentation of this file.
1 /* +------------------------------------------------------------------------+
2  | Mobile Robot Programming Toolkit (MRPT) |
3  | https://www.mrpt.org/ |
4  | |
5  | Copyright (c) 2005-2019, Individual contributors, see AUTHORS file |
6  | See: https://www.mrpt.org/Authors - All rights reserved. |
7  | Released under BSD License. See: https://www.mrpt.org/License |
8  +------------------------------------------------------------------------+ */
9 
10 #include "opengl-precomp.h" // Precompiled header
11 
12 #include <mrpt/math/matrix_serialization.h> // for << >> ops of matrices
15 #include <Eigen/Dense>
16 
17 using namespace mrpt;
18 using namespace mrpt::opengl;
19 
20 using namespace mrpt::math;
21 using namespace std;
22 
25 
26 /*---------------------------------------------------------------
27  transformFromParameterSpace
28  ---------------------------------------------------------------*/
30  const std::vector<BASE::array_parameter_t>& in_pts,
31  std::vector<BASE::array_point_t>& out_pts) const
32 {
34 
35  // (inv_range,yaw) --> (x,y)
36  const size_t N = in_pts.size();
37  out_pts.resize(N);
38  for (size_t i = 0; i < N; i++)
39  {
40  const double inv_range = in_pts[i][0];
41  const double yaw = in_pts[i][1];
42  const double range = inv_range < 0
43  ? m_underflowMaxRange
44  : (inv_range != 0 ? 1. / inv_range : 0);
45  out_pts[i][0] = range * cos(yaw);
46  out_pts[i][1] = range * sin(yaw);
47  }
48 
49  MRPT_END
50 }
51 
55 {
56  writeToStreamRender(out);
57  BASE::thisclass_writeToStream(out);
58 
59  out << m_underflowMaxRange;
60 }
63 {
64  switch (version)
65  {
66  case 0:
67  {
68  readFromStreamRender(in);
69  BASE::thisclass_readFromStream(in);
70 
71  in >> m_underflowMaxRange;
72  }
73  break;
74  default:
76  };
78 }
GLsizei range
Definition: glext.h:5993
void notifyChange() const
Must be called to notify that the object has changed (so, the display list must be updated) ...
#define MRPT_START
Definition: exceptions.h:241
IMPLEMENTS_SERIALIZABLE(CEllipsoidInverseDepth2D, CRenderizableDisplayList, mrpt::opengl) void CEllipsoidInverseDepth2D
STL namespace.
An especial "ellipsoid" in 3D computed as the uncertainty iso-surfaces of a (inv_range,yaw) variable.
void serializeTo(mrpt::serialization::CArchive &out) const override
Pure virtual method for writing (serializing) to an abstract archive.
unsigned char uint8_t
Definition: rptypes.h:44
A renderizable object suitable for rendering with OpenGL&#39;s display lists.
#define MRPT_THROW_UNKNOWN_SERIALIZATION_VERSION(__V)
For use in CSerializable implementations.
Definition: exceptions.h:97
This base provides a set of functions for maths stuff.
void serializeFrom(mrpt::serialization::CArchive &in, uint8_t serial_version) override
Pure virtual method for reading (deserializing) from an abstract archive.
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.
Virtual base class for "archives": classes abstracting I/O streams.
Definition: CArchive.h:53
This file implements matrix/vector text and binary serialization.
#define MRPT_END
Definition: exceptions.h:245
GLuint in
Definition: glext.h:7391
The namespace for 3D scene representation and rendering.
Definition: CGlCanvasBase.h:15
uint8_t serializeGetVersion() const override
Must return the current versioning number of the object.
void transformFromParameterSpace(const std::vector< BASE::array_parameter_t > &in_pts, std::vector< BASE::array_point_t > &out_pts) const override
To be implemented by derived classes: maps, using some arbitrary space transformation, a list of points defining an ellipsoid in parameter space into their corresponding points in 2D/3D space.



Page generated by Doxygen 1.8.14 for MRPT 1.9.9 Git: 8fe78517f Sun Jul 14 19:43:28 2019 +0200 at lun oct 28 02:10:00 CET 2019