Image Component Library (ICL)
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
GridSceneObject.h
Go to the documentation of this file.
00001 /********************************************************************
00002 **                Image Component Library (ICL)                    **
00003 **                                                                 **
00004 ** Copyright (C) 2006-2013 CITEC, University of Bielefeld          **
00005 **                         Neuroinformatics Group                  **
00006 ** Website: www.iclcv.org and                                      **
00007 **          http://opensource.cit-ec.de/projects/icl               **
00008 **                                                                 **
00009 ** File   : ICLGeom/src/ICLGeom/GridSceneObject.h                  **
00010 ** Module : ICLGeom                                                **
00011 ** Authors: Christof Elbrechter                                    **
00012 **                                                                 **
00013 **                                                                 **
00014 ** GNU LESSER GENERAL PUBLIC LICENSE                               **
00015 ** This file may be used under the terms of the GNU Lesser General **
00016 ** Public License version 3.0 as published by the                  **
00017 **                                                                 **
00018 ** Free Software Foundation and appearing in the file LICENSE.LGPL **
00019 ** included in the packaging of this file.  Please review the      **
00020 ** following information to ensure the license requirements will   **
00021 ** be met: http://www.gnu.org/licenses/lgpl-3.0.txt                **
00022 **                                                                 **
00023 ** The development of this software was supported by the           **
00024 ** Excellence Cluster EXC 277 Cognitive Interaction Technology.    **
00025 ** The Excellence Cluster EXC 277 is a grant of the Deutsche       **
00026 ** Forschungsgemeinschaft (DFG) in the context of the German       **
00027 ** Excellence Initiative.                                          **
00028 **                                                                 **
00029 ********************************************************************/
00030 
00031 #pragma once
00032 
00033 #ifndef ICL_HAVE_OPENGL
00034 #if WIN32
00035 #pragma WARNING("this header must not be included if ICL_HAVE_OPENGL is not defined")
00036 #else
00037 #warning "this header must not be included if ICL_HAVE_OPENGL is not defined"
00038 #endif
00039 #else
00040 
00041 #include <ICLUtils/CompatMacros.h>
00042 #include <ICLGeom/SceneObject.h>
00043 
00044 
00045 namespace icl{
00046   namespace geom{
00047     
00049 
00052     class ICLGeom_API GridSceneObject : public SceneObject{
00053       int nXCells; 
00054       int nYCells; 
00055       
00057       void init(int nXCells, int nYCells, const std::vector<Vec> &allGridPoints, bool lines, bool quads) throw (utils::ICLException);
00058       
00059       public:
00061 
00063       GridSceneObject(int nXCells, int nYCells, const std::vector<Vec> &allGridPoints,
00064                       bool lines=true, bool quads=true) throw (utils::ICLException);
00065   
00067 
00068       GridSceneObject(int nXCells, int nYCells, const Vec &origin, const Vec &dx, const Vec &dy,
00069                       bool lines=true, bool quads=true)throw (utils::ICLException);
00070       
00072       inline int getIdx(int x, int y) const { return x+nXCells*y; }
00073       
00075       Vec &getNode(int x, int y){ return m_vertices[getIdx(x,y)]; }
00076       
00078       const Vec &getNode(int x, int y) const { return m_vertices[getIdx(x,y)]; }
00079       
00081       Vec &getNode(const utils::Point &p) { return getNode(p.x,p.y); }
00082   
00084       const Vec &getNode(const utils::Point &p) const { return getNode(p.x,p.y); }
00085       
00087       inline utils::Size getSize() const { return utils::Size(nXCells,nYCells); }
00088       
00090       inline int getWidth() const { return nXCells; }
00091   
00093       inline int getHeight() const { return nYCells; }
00094     };
00095   
00096   
00097   } // namespace geom
00098 }
00099 
00100 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines