Commit Graph

285 Commits

Author SHA1 Message Date
granzuglia 80babdb68e - removed the GLMeshAttributesFeeder classes from the old trimesh.h file 2015-06-04 00:19:46 +00:00
granzuglia b5a8f57137 - added gl_mesh_attributes_feeder.h file 2015-06-04 00:18:35 +00:00
granzuglia 62208a4fd2 - fixed "not allocated vertex buffer array" bug 2015-06-03 14:08:22 +00:00
granzuglia c8004cf4ad - removed clang compiler errors 2015-06-03 13:45:41 +00:00
granzuglia a2efddf456 - added new opengl attributes feeder 2015-06-03 13:06:35 +00:00
Nico Pietroni 7a6aa07201 minor changes 2015-04-12 06:08:20 +00:00
granzuglia 1f721c1507 - added small conversion function from DramMode to NormalMode 2014-11-28 13:07:14 +00:00
Paolo Cignoni fb2ad3f323 Changed a few GL_TYPE -> GL_TYPE_NM to remove ambiguity 2014-11-12 00:22:24 +00:00
Nico Pietroni 0a597d4682 did several changes in the function calls 2014-11-05 19:26:54 +00:00
granzuglia 5c809dc701 - renamed GL_TYPE with GL_TYPE_NM in order to avoid names conflict 2014-08-28 08:59:24 +00:00
granzuglia 8cebfaf679 pick.h:
- added support for double scalar type (the changes have been validated by Paolo)
- there is still a bug on the PickClosestFace function.
2014-08-09 10:00:09 +00:00
granzuglia 558fcd784a trimesh.h:
- added ScalarType typedef to GL_TYPE structure
2014-08-09 09:54:43 +00:00
Paolo Cignoni ffb02815a8 Added a static class GL_TYPE with a memenber SCALAR that returns the correct GLenum (GL_FLOAT or GL_DOUBLE) according to the template type. Needed to make this class works also with double... 2014-08-09 00:06:15 +00:00
Paolo Cignoni 9b6833e521 added templated glLoadMatrix that automatically choose the right OpenGL call according the matrix type 2014-08-06 22:37:55 +00:00
Paolo Cignoni 5e910a0058 Improved float/double consistency removing some wrong Point3f and substitued with MeshType::CoordType 2014-07-01 10:08:30 +00:00
Paolo Cignoni 1491037631 Improved float/double consistency removing some wrong Point3f and substitued with MeshType::CoordType 2014-06-27 15:09:08 +00:00
Paolo Cignoni 4fc33e2e95 Improved float/double consistency removing some wrong Point3f and substitued with MeshType::CoordType 2014-06-19 11:42:23 +00:00
Paolo Cignoni b605d04d26 Improved float/double consistency removing some wrong Point3f and substitued with MeshType::CoordType 2014-06-19 11:41:55 +00:00
Paolo Cignoni 9f6d5f1d84 Completed the rewriting all the picking stuff. Now the default is NOT using OpenGL. And it is actually faster on all the machines I have tested... 2014-04-08 09:37:44 +00:00
Paolo Cignoni 306c334877 Added PickFaceSW for selecting faces in a rectangular region. 2014-04-07 14:49:07 +00:00
Paolo Cignoni adfa6dde12 Added PickVertSW to offer an alternative for selection for hw that does not support opengl selection 2014-04-07 12:32:21 +00:00
Nico Pietroni 6071372992 some minor changes 2014-04-07 06:29:56 +00:00
Nico Pietroni 4b15067dd1 minor modifications 2014-02-16 16:37:39 +00:00
Paolo Cignoni 94540d3ca6 float -> GLdouble for better compliance... 2013-12-12 21:09:22 +00:00
Paolo Cignoni d44d6e6f41 changed int -> size_t to remove warnings 2013-12-12 20:52:07 +00:00
Paolo Cignoni ecf5bfeeb2 Added a if(!TMId.empty()) before attempting to bind a texture id from an empty vector... 2013-12-06 10:16:59 +00:00
Nico Pietroni d4eb599a66 resolved 1 warning on cast 2013-11-24 15:08:27 +00:00
granzuglia 6ec773c50a - added missing upper bound control on vector access by index 2013-10-17 17:22:16 +00:00
granzuglia 6b7ca162ce - fixed compile time errors with qt 5.0 2013-05-24 16:31:16 +00:00
Paolo Cignoni b473bebdd3 added another style of rendering to the opengl addon.
Imprpved customizability of arrows
2012-12-21 15:34:32 +00:00
Paolo Cignoni e04a37bf60 removed harmless warnings 2012-12-02 14:57:08 +00:00
Paolo Cignoni 7540b29cf5 Added a few missing const specifiers 2012-11-28 11:23:51 +00:00
Nico Pietroni 70b2cd1d25 removed several functions and moved to the gl wrapper of mixed integer 2012-11-18 18:07:39 +00:00
Nico Pietroni 52648c58ad used per vertex and per face optional attributes 2012-10-15 01:13:30 +00:00
Nico Pietroni 45633b841e added initial define to avoid multiple inclusions 2012-10-08 11:53:07 +00:00
Paolo Cignoni 194d9eb4d7 Removed two old useless wrong stupid functions that have been left into wrap/trimesh.h for unforgivable lazyness... 2012-10-08 05:30:34 +00:00
Paolo Cignoni 98fd61970e added missing par 2012-10-07 17:20:54 +00:00
Paolo Cignoni 1aa2c374e1 corrected useless test for an ancient opengl extension (glPointParameterfv). no more needed and creating problems to new compilers... 2012-10-05 16:45:25 +00:00
Nico Pietroni e6cc513cae minor changes in singularity drawing 2012-09-22 13:40:56 +00:00
Nico Pietroni 62b1a26ecf changes drawing of cross field to show the 2 main directions 2012-09-05 23:27:10 +00:00
Nico Pietroni a4ee21d5d7 added GLDrawSeams function 2012-09-03 15:58:38 +00:00
Nico Pietroni c469b5b948 major modifications 2012-05-25 13:22:07 +00:00
Paolo Cignoni 80363d2ff0 added to these two gl-related files the system independent inclusion of GLU.
IT is necessary since the last version of QT does not include anymore glu when including QGL stuff
2012-05-23 08:50:03 +00:00
Nico Pietroni 2413b12724 switched to the new version of tangent directions component per face 2012-03-29 16:35:15 +00:00
Nico Pietroni 9d37776dd6 first release version 2012-03-16 13:50:45 +00:00
Paolo Cignoni 8a8f48ac85 Changed all the MeshType::HasSomething() into the now standard tri::HasSomething(MeshType &m) 2012-01-25 10:21:59 +00:00
Nico Pietroni 36b4d6eeab added inclusion of point2.h 2012-01-23 13:13:24 +00:00
Paolo Cignoni fbe0b23839 corrected bug in the allocation of the result of multiple connected triangulations (poligons with holes, and added parameter to revert the order of outlines) 2012-01-18 16:48:06 +00:00
Paolo Cignoni 34cb93552c added glloadmatrix that takes in input a matrix44 (just like glmultmatrix) 2011-12-14 08:53:56 +00:00
Federico Ponchio 4400d8dd2d added multithreading 2011-12-09 16:06:08 +00:00
Massimiliano Corsini da98ec18f1 2011-10-12 07:52:07 +00:00
Paolo Cignoni 2fe129645b Rolled back 2011-10-05 15:04:40 +00:00
Paolo Cignoni ca28591e69 Made the boundary capper based on the glu tessellator interface more robust to deleted stuff 2011-05-31 08:40:02 +00:00
Paolo Cignoni 7ff3b08e5f updated to use pos instead explicit topology 2011-05-24 09:42:10 +00:00
Paolo Cignoni 2239cbd747 added simple boundary capper. Takes a edge mesh and caps its boundaries. 2011-05-11 10:04:33 +00:00
Paolo Cignoni f0a5d17759 Added a hint that you NEED opengl definition before including this file 2011-05-11 10:03:28 +00:00
Paolo Cignoni 384ea891dc added drawing of edges in wireframe if meshes has no faces 2011-05-10 21:57:01 +00:00
matteodelle 49a15ebd82 mozione ponchio per rimozione codice inutile 2011-04-27 13:02:30 +00:00
Paolo Cignoni 214904b312 Ongoing corrections of include paths to comply the new folder arrangement 2011-04-03 22:50:59 +00:00
ganovelli f7d8e31056 minor (missing include, left CMeshO) 2011-01-23 22:28:39 +00:00
Paolo Cignoni 71bdb18e07 Added more hints for better controlling point rendering (smoothnes and distance attenuation) 2011-01-18 11:11:19 +00:00
ganovelli bd03229989 patch to force immediate mode (bug with vbo to be solved)
bug in call glTexCoordPointer fixed
2010-11-08 11:03:18 +00:00
Paolo Cignoni 343493ef11 Moved the ORTHO, PERSPECTIVE enums from the vcg namespace to the camera class namespace. 2010-10-31 13:19:09 +00:00
ganovelli 42c69abccf first working commit for the apss (from Algebraic point set surfaces
Gaël Guennebaud and Markus Gross, SIG07)
2010-10-29 17:18:29 +00:00
Nico Pietroni ce779c0082 added if(tm==TMPerWedge) glEnable(GL_TEXTURE_2D); on line 543 2010-07-15 13:29:31 +00:00
Nico Pietroni 26709cae6c cahnged WIN32 define to _WIN32 2010-07-15 13:27:18 +00:00
granzuglia 8f2c1d543d fixed small visualization bugs (dereferenced empty vertex attributes) 2010-05-24 14:53:54 +00:00
Paolo Cignoni 4cfffc32f2 corrected managment of per-mesh color for point clouds 2010-04-28 15:02:05 +00:00
Paolo Cignoni aa04a96264 Never try to make a glwrap DrawFill over an empty mesh... 2010-04-27 09:50:55 +00:00
Paolo Cignoni c095f8efe6 added pushattrib/popattrib in the point rendering code of gl trimesh wrapper 2010-04-20 01:01:13 +00:00
Paolo Cignoni 0f221f2d99 added suppor for per vertex tex coord rendering 2010-04-08 16:52:23 +00:00
Nico Pietroni d32ed18e1d corrected one bug in FromTrackball function 2010-04-07 21:43:24 +00:00
Nico Pietroni 1438c44f5f - Allowed the usage of per vertex coordinate , uncommented tm==TMPerVert options
- corrected cast warning on line 721
2010-04-05 15:29:19 +00:00
Paolo Cignoni c2456526fd added vertex picking 2010-02-26 16:20:15 +00:00
Nico Pietroni 66ae917613 commented "int _t2=clock();" call in Crease function, it is unuseful and requires to include time.h 2009-07-17 17:44:40 +00:00
Paolo Cignoni 67ce5b52ce Added glColor and glClearColor for both Color4f (missing) and Color4d (just added) 2009-07-10 13:24:29 +00:00
Paolo Cignoni 2d3d9bd13f corrected wrong test on the use of faux edges when drawing in wireframe 2009-05-21 22:59:16 +00:00
granzuglia 5811240f92 added GPL incipit 2009-05-18 14:10:59 +00:00
granzuglia 9ef1804d3a added GPL incipit 2009-05-18 14:08:04 +00:00
Nico Pietroni 147817f6ea line 795 changed DrawWire<NMPerVert,CMNone>(); -> DrawWire<nm,CMNone>(); 2009-04-22 15:22:48 +00:00
Paolo Cignoni af6a963f41 corrected returned number of PickFaceVisible function 2009-04-22 10:28:52 +00:00
granzuglia 17d5caeed1 fixed compiler's errors 2009-04-21 05:58:08 +00:00
mtarini 97b5d83721 Now all wireframes mode hide "faux" edges
(those inside a polygon face), 
IFF you do SetHint(HNIsPolygonal).
2009-04-20 22:57:42 +00:00
mtarini 935b2e102b added a test on existence of glPointParameterfv before its use in point-based mesh rendering to avoid crashes. 2009-04-20 16:30:35 +00:00
Paolo Cignoni 3bf343c31b gcc compilation issue 2009-04-02 07:56:38 +00:00
Paolo Cignoni b22077f200 added picking of visible faces 2009-04-01 14:51:49 +00:00
Paolo Cignoni 7c9aa1c99f Crude, yet functional, custom attribute implementation 2009-01-23 09:22:38 +00:00
Paolo Cignoni 8627c95678 Added Attribute support 2009-01-12 13:57:48 +00:00
Federico Ponchio 6d2363d10a There was a bug in TransformGL for perspective matrix.
The function worked as intended only if near == focal.
2008-11-21 17:22:58 +00:00
Paolo Cignoni 818eb2b61d remove an ifdef for compiling with older apple compiler. no more needed under leopard (thanks to Iacopo Peri) 2008-11-18 09:37:23 +00:00
Federico Ponchio 01c0bc106f Added function to get near and far plane for a box (exact). 2008-11-07 15:15:06 +00:00
Paolo Cignoni dfc97ba1f2 fix Matrix44 infinite product, make glGetv not allocate temporary 2008-10-30 10:47:08 +00:00
Paolo Cignoni 3d43483497 one more fix gcc 4.0.1 issue in wrap/gl/math 2008-10-29 13:04:11 +00:00
Paolo Cignoni 0d9795d163 fix gcc 4.0.1 issue in wrap/gl 2008-10-29 12:56:32 +00:00
Paolo Cignoni e587581275 add transposeInPlace and duplicate V(int) 2008-10-29 11:17:11 +00:00
Paolo Cignoni 07f2e976ea * change all remaining Transpose to transpose,
* update the gl/math wrappers to make them more Eigen friendly
  (and remove the useless, and not used, and somehow dangerous
   *Direct and *E functions)
* add automatic reinterpret_casting from Eigen::Matrix to vcg
  specialized types
2008-10-29 00:05:44 +00:00
Paolo Cignoni 7befff7bec make point2 derived Eigen's Matrix, and a set of minimal fixes to make meshlab compile
with both old and new version. The fixes include:
- dot product: vec0 * vec1 => vec0.dot(vec1) (I added .dot() to the old Point classes too)
- Transpose: Transpose is an Eigen type, so we cannot keep it if Eigen is used. Therefore
  I added a .tranpose() to old matrix classes, and modified most of the Transpose() to transpose()
  both in vcg and meshlab. In fact, transpose() are free with Eigen, it simply returns a transpose
  expression without copies. On the other be carefull:  m = m.transpose() won't work as expected,
  here me must evaluate to a temporary: m = m.transpose().eval(); However, this operation in very
  rarely needed: you transpose at the same sime you set m, or you use m.transpose() directly.
- the last issue is Normalize which both modifies *this and return a ref to it. This behavior
  don't make sense anymore when using expression template, e.g., in (a+b).Normalize(), the type
  of a+b if not a Point (or whatever Vector types), it an expression of the addition of 2 points,
  so we cannot modify the value of *this, since there is no value. Therefore I've already changed
  all those .Normalize() of expressions to the Eigen's version .normalized().
- Finally I've changed the Zero to SetZero in the old Point classes too.
2008-10-28 00:59:46 +00:00
Paolo Cignoni ab200fc950 Port to eigen2: state of the mess:
* curently nothing change if you don't define VCG_USE_EIGEN
* make Matrix*, Point3 and Point4 derive Eigen::Matrix (still ugly)
* now catching all the dot products to replace them by .dot()
  note that most of meshlab already compile
2008-10-27 19:35:17 +00:00
Paolo Cignoni 4db69febbe big replacement .Zero => .SetZero, and start of Eigen's compatibilities (currently disabled by default) 2008-10-27 14:48:14 +00:00
Federico Ponchio fe59b6ad4d Extrinsics.tra is now private, using Tra() 2008-10-24 16:37:24 +00:00