Subversion Repositories gelsvn

Rev

Rev 441 | Rev 594 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
167 jab 1
#ifndef __GLGRAPHICS_DRAW_H_
2
#define __GLGRAPHICS_DRAW_H_
3
 
4
#include "Geometry/TriMesh.h"
299 jrf 5
#include "Geometry/AABox.h"
6
#include "Geometry/OBox.h"
7
#include "Geometry/BoundingINode.h"
8
#include "Geometry/BoundingLNode.h"
9
#include "Geometry/BoundingTree.h"
331 jab 10
#include "HMesh/Manifold.h"
167 jab 11
 
299 jrf 12
namespace GLGraphics
13
{
432 jab 14
	/// Draw an indexed face set (just a triangle list) with normals computed on the fly.
15
	void draw(const Geometry::IndexedFaceSet& geometry);
16
 
396 jab 17
	/// Draw a triangles mesh. Inefficient function that should be compiled into a display list.
18
	void draw(const Geometry::TriMesh& tm, bool per_vertex_norms=true);
19
 
441 jab 20
	/// Load textures if available
21
	void load_textures(Geometry::TriMesh& tm);	
22
 
396 jab 23
	/// Draw a HMesh Manifold. Inefficient and should be compiled into display list
24
	void draw(HMesh::Manifold& m, bool per_vertex_norms=true);
368 jrf 25
 
396 jab 26
 
27
	/// Draw an axis aligned bounding box
28
	void draw(const Geometry::AABox& box);
29
 
30
	/// Draw an oriented bounding box
31
	void draw(const Geometry::OBox& box);
32
 
400 jab 33
	/// Draw an object of type T which contains only triangles as wireframe. In practice T = Manifold or TriMesh.
396 jab 34
	template<typename T>
492 jrf 35
	inline void draw_triangles_in_wireframe(T& m, bool per_vertex_norms, const CGLA::Vec3f& line_color);
36
 
37
  /// Draw an object of type T as wireframe.  In practice T = Manifold or TriMesh.
396 jab 38
	template<class T>
39
	void draw_wireframe_oldfashioned(T& m, bool per_vertex_norms, const CGLA::Vec3f& line_color);
40
 
41
 
42
	template<class BoxType>
299 jrf 43
	void draw(const Geometry::BoundingINode<BoxType>& node, int level, int max_level);
396 jab 44
	template<class BoxType>
299 jrf 45
    void draw(const Geometry::BoundingLNode<BoxType>& node, int level, int max_level);
396 jab 46
	template<class BoxType>
299 jrf 47
    void draw(const Geometry::BoundingTree<BoxType>& tree, int max_level = 1e6);
396 jab 48
 
299 jrf 49
}
167 jab 50
#endif