Subversion Repositories gelsvn

Rev

Rev 331 | Rev 368 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

#ifndef __GLGRAPHICS_DRAW_H_
#define __GLGRAPHICS_DRAW_H_

#include "Geometry/TriMesh.h"
#include "Geometry/AABox.h"
#include "Geometry/OBox.h"
#include "Geometry/BoundingINode.h"
#include "Geometry/BoundingLNode.h"
#include "Geometry/BoundingTree.h"
#include "HMesh/Manifold.h"

namespace GLGraphics
{
  /// Draw a triangles mesh. Inefficient function that should be compiled into a display list.
  void draw(const Geometry::TriMesh& tm, bool per_vertex_norms=true);
  
  /// Draw an axis aligned bounding box
  void draw(const Geometry::AABox& box);
  
  /// Draw an oriented bounding box
  void draw(const Geometry::OBox& box);
  
  /// Draw a HMesh Manifold
  void draw(HMesh::Manifold& m, bool per_vertex_norms=true);

  
  template<class BoxType>
        void draw(const Geometry::BoundingINode<BoxType>& node, int level, int max_level);
  template<class BoxType>
    void draw(const Geometry::BoundingLNode<BoxType>& node, int level, int max_level);
  template<class BoxType>
    void draw(const Geometry::BoundingTree<BoxType>& tree, int max_level = 1e6);

}
#endif