MRPT  1.9.9
CEllipsoidInverseDepth2D.cpp
Go to the documentation of this file.
1 /* +------------------------------------------------------------------------+
2  | Mobile Robot Programming Toolkit (MRPT) |
3  | http://www.mrpt.org/ |
4  | |
5  | Copyright (c) 2005-2018, Individual contributors, see AUTHORS file |
6  | See: http://www.mrpt.org/Authors - All rights reserved. |
7  | Released under BSD License. See details in http://www.mrpt.org/License |
8  +------------------------------------------------------------------------+ */
9 
10 #include "opengl-precomp.h" // Precompiled header
11 
13 #include <mrpt/math/matrix_serialization.h> // for << >> ops of matrices
15 
16 using namespace mrpt;
17 using namespace mrpt::opengl;
18 
19 using namespace mrpt::math;
20 using namespace std;
21 
24 
25 /*---------------------------------------------------------------
26  transformFromParameterSpace
27  ---------------------------------------------------------------*/
29  const std::vector<BASE::array_parameter_t>& in_pts,
30  std::vector<BASE::array_point_t>& out_pts) const
31 {
33 
34  // (inv_range,yaw) --> (x,y)
35  const size_t N = in_pts.size();
36  out_pts.resize(N);
37  for (size_t i = 0; i < N; i++)
38  {
39  const double inv_range = in_pts[i][0];
40  const double yaw = in_pts[i][1];
41  const double range = inv_range < 0
42  ? m_underflowMaxRange
43  : (inv_range != 0 ? 1. / inv_range : 0);
44  out_pts[i][0] = range * cos(yaw);
45  out_pts[i][1] = range * sin(yaw);
46  }
47 
48  MRPT_END
49 }
50 
54 {
55  writeToStreamRender(out);
56  BASE::thisclass_writeToStream(out);
57 
58  out << m_underflowMaxRange;
59 }
62 {
63  switch (version)
64  {
65  case 0:
66  {
67  readFromStreamRender(in);
68  BASE::thisclass_readFromStream(in);
69 
70  in >> m_underflowMaxRange;
71  }
72  break;
73  default:
75  };
77 }
GLsizei range
Definition: glext.h:5907
#define MRPT_START
Definition: exceptions.h:262
IMPLEMENTS_SERIALIZABLE(CEllipsoidInverseDepth2D, CRenderizableDisplayList, mrpt::opengl) void CEllipsoidInverseDepth2D
EIGEN_STRONG_INLINE void notifyChange() const
Must be called to notify that the object has changed (so, the display list must be updated) ...
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.
virtual 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.
unsigned char uint8_t
Definition: rptypes.h:41
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:90
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:52
This file implements matrix/vector text and binary serialization.
#define MRPT_END
Definition: exceptions.h:266
GLuint in
Definition: glext.h:7274
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.



Page generated by Doxygen 1.8.14 for MRPT 1.9.9 Git: 7d5e6d718 Fri Aug 24 01:51:28 2018 +0200 at lun nov 2 08:35:50 CET 2020