28 #ifndef opengl_COpenGLViewport_H
29 #define opengl_COpenGLViewport_H
41 namespace utils {
class CStringList;
class CImage; }
45 using namespace mrpt::math;
85 void setCloneView( const std::
string &clonedViewport );
93 void setImageView(const mrpt::utils::
CImage &img);
98 void setImageView_fast(mrpt::utils::
CImage &img);
103 inline
void resetCloneView() { setNormalMode(); }
110 void setNormalMode();
121 inline std::string
getName() {
return m_name; }
137 void setViewportPosition(
141 const double height );
150 void getViewportPosition(
159 void setViewportClipDistances(
const double clip_min,
const double clip_max);
164 void getViewportClipDistances(
double &clip_min,
double &clip_max)
const;
168 inline void setBorderSize(
unsigned int lineWidth ) { m_borderWidth = lineWidth; }
204 inline const_iterator
begin()
const {
return m_objects.begin(); }
205 inline const_iterator
end()
const {
return m_objects.end(); }
206 inline iterator
begin() {
return m_objects.begin(); }
207 inline iterator
end() {
return m_objects.end(); }
234 template <
typename T>
235 typename T::SmartPtr getByClass(
const size_t &ith = 0 )
const
238 size_t foundCount = 0;
241 if ( (*it).present() && (*it)->GetRuntimeClass()->derivedFrom( class_ID ) )
242 if (foundCount++ == ith)
243 return typename T::SmartPtr(*it);
251 if (o.present())
return o;
254 return typename T::SmartPtr();
263 inline size_t size()
const {
return m_objects.size(); }
265 inline bool empty()
const {
return m_objects.empty(); }
286 void initializeAllTextures();
293 void render(
const int render_width,
const int render_height )
const;
304 double m_view_x,
m_view_y,m_view_width,m_view_height;
314 TLastProjectiveMatrixInfo() : is_projective(true),
eye(0,0,0),pointing(0,0,0),up(0,0,0), FOV(30), viewport_width(640), viewport_height(480), azimuth(0), elev(0), zoom(1)
347 inline COpenGLViewportPtr &operator<<(COpenGLViewportPtr &s,const std::vector<CRenderizablePtr> &v) {