diff --git a/vcg/complex/trimesh/update/bounding.h b/vcg/complex/trimesh/update/bounding.h new file mode 100644 index 00000000..28d27a49 --- /dev/null +++ b/vcg/complex/trimesh/update/bounding.h @@ -0,0 +1,82 @@ +/**************************************************************************** +* VCGLib o o * +* Visual and Computer Graphics Library o o * +* _ O _ * +* Copyright(C) 2004 \/)\/ * +* Visual Computing Lab /\/| * +* ISTI - Italian National Research Council | * +* \ * +* All rights reserved. * +* * +* This program is free software; you can redistribute it and/or modify * +* it under the terms of the GNU General Public License as published by * +* the Free Software Foundation; either version 2 of the License, or * +* (at your option) any later version. * +* * +* This program is distributed in the hope that it will be useful, * +* but WITHOUT ANY WARRANTY; without even the implied warranty of * +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +* GNU General Public License (http://www.gnu.org/licenses/gpl.txt) * +* for more details. * +* * +****************************************************************************/ +/**************************************************************************** + History + +$Log: not supported by cvs2svn $ +Revision 1.2 2004/03/12 15:22:19 cignoni +Written some documentation and added to the trimes doxygen module + +Revision 1.1 2004/03/05 10:59:24 cignoni +Changed name from plural to singular (normals->normal) + +Revision 1.1 2004/03/04 00:05:50 cignoni +First working version! + +Revision 1.1 2004/02/19 13:11:06 cignoni +Initial commit + + +****************************************************************************/ +#ifndef __VCG_TRI_UPDATE_BOUNDING +#define __VCG_TRI_UPDATE_BOUNDING + +namespace vcg { +namespace tri { + +/** \addtogroup trimesh */ +/*@{*/ + +/// Management, updating and computation of per-vertex and per-face normals. +/// This class is used to compute or update the normals that can be stored in the vertex or face component of a mesh. +template +class UpdateBounding +{ + +public: +typedef ComputeMeshType MeshType; +typedef typename MeshType::VertexType VertexType; +typedef typename MeshType::VertexPointer VertexPointer; +typedef typename MeshType::VertexIterator VertexIterator; +typedef typename MeshType::FaceType FaceType; +typedef typename MeshType::FacePointer FacePointer; +typedef typename MeshType::FaceIterator FaceIterator; + +/// Calculates the vertex normal (if stored in the current face type) +static void Box(ComputeMeshType &m) +{ + m.bbox.SetNull(); + VertexIterator vi; + for(vi=m.vert.begin();vi!=m.vert.end();++vi) + if( !(*vi).IsD() ) m.bbox.Add((*vi).P()); + +} + + +}; // end class + +} // End namespace +} // End namespace + + +#endif diff --git a/vcg/simplex/face/with/fnva.h b/vcg/simplex/face/with/fnva.h new file mode 100644 index 00000000..940a4204 --- /dev/null +++ b/vcg/simplex/face/with/fnva.h @@ -0,0 +1,16 @@ +#ifndef __VCGLIB_FACE_FNVA_TYPE +#define __VCGLIB_FACE_FNVA_TYPE + +#define FACE_TYPE FaceFNVA + +#define __VCGLIB_FACE_FN +#define __VCGLIB_FACE_VA + +#include + +#undef FACE_TYPE + +#undef __VCGLIB_FACE_FN +#undef __VCGLIB_FACE_VA + +#endif diff --git a/vcg/simplex/face/with/va.h b/vcg/simplex/face/with/va.h new file mode 100644 index 00000000..64e23691 --- /dev/null +++ b/vcg/simplex/face/with/va.h @@ -0,0 +1,14 @@ +#ifndef __VCGLIB_FACE_VA_TYPE +#define __VCGLIB_FACE_VA_TYPE + +#define FACE_TYPE FaceVA + +#define __VCGLIB_FACE_VA + +#include + +#undef FACE_TYPE + +#undef __VCGLIB_FACE_VA + +#endif diff --git a/wrap/gl/space.h b/wrap/gl/space.h new file mode 100644 index 00000000..d7a8861e --- /dev/null +++ b/wrap/gl/space.h @@ -0,0 +1,73 @@ +/**************************************************************************** +* VCGLib o o * +* Visual and Computer Graphics Library o o * +* _ O _ * +* Copyright(C) 2004 \/)\/ * +* Visual Computing Lab /\/| * +* ISTI - Italian National Research Council | * +* \ * +* All rights reserved. * +* * +* This program is free software; you can redistribute it and/or modify * +* it under the terms of the GNU General Public License as published by * +* the Free Software Foundation; either version 2 of the License, or * +* (at your option) any later version. * +* * +* This program is distributed in the hope that it will be useful, * +* but WITHOUT ANY WARRANTY; without even the implied warranty of * +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +* GNU General Public License (http://www.gnu.org/licenses/gpl.txt) * +* for more details. * +* * +****************************************************************************/ +/**************************************************************************** + History + +$Log: not supported by cvs2svn $ + +****************************************************************************/ + +#ifndef VCG_GL_SPACE_H +#define VCG_GL_SPACE_H + +#include +#include +#ifdef WIN32 +#include +#endif +#include + +namespace vcg { + + inline void glVertex(Point2 const & p) { glVertex2iv(p.V());} + inline void glVertex(Point2 const & p) { glVertex2sv(p.V());} + inline void glVertex(Point2 const & p) { glVertex2fv(p.V());} + inline void glVertex(Point2 const & p){ glVertex2dv(p.V());} + inline void glTexCoord(Point2 const & p) { glTexCoord2iv(p.V());} + inline void glTexCoord(Point2 const & p) { glTexCoord2sv(p.V());} + inline void glTexCoord(Point2 const & p) { glTexCoord2fv(p.V());} + inline void glTexCoord(Point2 const & p){ glTexCoord2dv(p.V());} + inline void glTranslate(Point2 const & p) { glTranslatef(p.X(),p.Y(),0);} + inline void glTranslate(Point2 const & p){ glTranslated(p.X(),p.Y(),0);} + inline void glScale(Point2 const & p) { glScalef(p.X(),p.Y(),0);} + inline void glScale(Point2 const & p){ glScaled(p.X(),p.Y(),0);} + + inline void glVertex(Point3 const & p) { glVertex3iv(p.V());} + inline void glVertex(Point3 const & p) { glVertex3sv(p.V());} + inline void glVertex(Point3 const & p) { glVertex3fv(p.V());} + inline void glVertex(Point3 const & p){ glVertex3dv(p.V());} + inline void glNormal(Point3 const & p) { glNormal3iv(p.V());} + inline void glNormal(Point3 const & p) { glNormal3sv(p.V());} + inline void glNormal(Point3 const & p) { glNormal3fv(p.V());} + inline void glNormal(Point3 const & p){ glNormal3dv(p.V());} + inline void glTexCoord(Point3 const & p) { glTexCoord3iv(p.V());} + inline void glTexCoord(Point3 const & p) { glTexCoord3sv(p.V());} + inline void glTexCoord(Point3 const & p) { glTexCoord3fv(p.V());} + inline void glTexCoord(Point3 const & p){ glTexCoord3dv(p.V());} + inline void glTranslate(Point3 const & p) { glTranslatef(p.X(),p.Y(),p.Z());} + inline void glTranslate(Point3 const & p){ glTranslated(p.X(),p.Y(),p.Z());} + inline void glScale(Point3 const & p) { glScalef(p.X(),p.Y(),p.Z());} + inline void glScale(Point3 const & p){ glScaled(p.X(),p.Y(),p.Z());} + +}//namespace +#endif