Commit Graph

704 Commits

Author SHA1 Message Date
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 3745e4db1f changed the main strategy, now the loading is done internally in a custom typed mesh, that at the end is appended to the input one. 2009-04-05 23:30:29 +00:00
Paolo Cignoni 03eb1cfadb Improved management of collada meshes composed by polylistmesh 2009-04-04 17:25:57 +00:00
Paolo Cignoni 3bf343c31b gcc compilation issue 2009-04-02 07:56:38 +00:00
Paolo Cignoni 0c5aefb278 Added ClearModes() method to trackball to avoid leaking and corruptions due to double deletion of modes. 2009-04-01 14:53:20 +00:00
Paolo Cignoni b22077f200 added picking of visible faces 2009-04-01 14:51:49 +00:00
ganovelli d016806729 added case vertSize or faceSize are 0 2009-03-31 13:36:32 +00:00
Paolo Cignoni efde1babe5 Sorry, corrected a mistake in the Matrix() method due to a temporary local library change. Won't do that again. 2009-03-31 09:23:20 +00:00
Paolo Cignoni a353708f16 Added Matrix)() and InverseMatrix() methods, which respectively return the direct and inverse matrices that describe how the trackball similarity is applied with respect to the trackball center.
Corrected ToAscii() and SetFromAscii() methods, which should work with 8 values instead of 9 (well, in effect they are implemantation dependent methods, so...).
2009-03-31 09:03:18 +00:00
Paolo Cignoni 3447c82e88 Removed a few harmless warnings 2009-03-30 20:58:18 +00:00
Marco Di Benedetto 8a454d266c added detection of wedge normal in LoadMask. 2009-03-24 17:14:54 +00:00
Paolo Cignoni c5ad3694bd Corrected small bug inserted during the add of pervertexradius ply elements 2009-03-19 10:29:24 +00:00
Paolo Cignoni 666b0996ff Added support for PLY saving and reading of the radius property (useful for point clouds) 2009-03-18 14:39:02 +00:00
Paolo Cignoni 946ae834b8 Changed the include guard. Added comment to remember that the View class is used only by the trackball 2009-03-11 09:32:12 +00:00
Paolo Cignoni 90d7a087bc added possibility of skipping header 2009-03-03 23:41:00 +00:00
Paolo Cignoni 1a4c19c69f removed harmless warnings 2009-03-03 23:39:27 +00:00
Paolo Cignoni 06dbbfec33 Added support for the Stanford range map ply repository (that are raw gridded range maps) 2009-02-16 01:03:11 +00:00
Paolo Cignoni 8a53c7a836 Fixed memory leak 2009-01-23 13:58:20 +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
Paolo Cignoni 3d14df75e4 corrected small bug that prevented the loading of tristripped ply files 2009-01-07 14:54:22 +00:00
Paolo Cignoni 6f533063ae uint are not a standard type... 2009-01-07 08:58:00 +00:00
Paolo Cignoni 28c13b2037 removed harmless gcc warnings 2009-01-03 22:44:49 +00:00
Paolo Cignoni fe715961f3 added support of binaries ply files with indices stored as short 2009-01-03 22:42:22 +00:00
Paolo Cignoni 5e1ccc4cfc added missing std:: 2008-12-19 15:52:20 +00:00
ganovelli 70ea5c2057 added support for loading directly polygon meshes.
If you are not using polygon mesh this commit does not change anything.
2008-12-18 18:02:44 +00:00
Paolo Cignoni f644a496ec Removed harmless warnings 2008-12-11 13:56:09 +00:00
Paolo Cignoni 928c8dd997 Removed harmless warnings 2008-11-28 14:55:45 +00:00
Paolo Cignoni a54582a3d2 Strings for element name and properties in ply descriptors should be const char *. 2008-11-27 23:54:50 +00:00
ganovelli 7b64489526 added Alloc to support polygon meshes 2008-11-26 17:59:29 +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
Paolo Cignoni b5d3a085a8 removed references to a MeshModel type that was leaked here from meshlab... 2008-11-13 10:45:39 +00:00
Paolo Cignoni 16e51c9d75 Corrected long standing bug of double deletion of trackmodes. New safer destructor 2008-11-13 09:33:43 +00:00
mtarini 80f1fa2396 Added NavigatorWasdMode: doom-like navigation around/inside objects (see samples/SDL_trackball for an example) 2008-11-12 16:36:55 +00:00
mtarini 1ad548c24c Added animations and keys (so far, only used by the Navigator Mode) 2008-11-12 16:33:40 +00:00
mtarini 5704acea18 Added handling of a few more keys. 2008-11-12 16:32:18 +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 0f2d864e05 remove a trailing print() 2008-10-30 11:31:28 +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
Federico Ponchio 632f4842f1 Polar mode now working. 2008-10-28 16:43:56 +00:00
Paolo Cignoni c0c76bc5b8 added Polarmode prototype (doesn't work yet) 2008-10-28 15:55:40 +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
Massimiliano Corsini e98422ee49 fix tokenizeNextLine 2008-10-27 15:19:28 +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
Paolo Cignoni 9947006682 Heavy refactoring of the SVG writing code. Now it is much much shorter and hopefully more clear. 2008-10-23 16:51:58 +00:00
Paolo Cignoni 3c79fae752 Improved robustness of parsing of malformed off 2008-10-16 14:32:37 +00:00
Paolo Cignoni 8f77d3cbaa removed non-portable inclusion of GL.h (on mac gl.h is in stupid places) 2008-10-15 10:11:39 +00:00
Paolo Cignoni a3dbc3168b fix a typo in Program::Uniform() 2008-10-15 09:28:15 +00:00
Paolo Cignoni 64ce68dac0 * make EmptyRadius::HasRadius returns false
* make gl/Shader and gl/Program* a bit easier to use:
 - automatic object creation
 - add Uniform() overloads for vcg::Point*f types
2008-10-15 08:02:14 +00:00
Paolo Cignoni fc98a34972 Add an optional per vertex radius property in occ, ocf, and IO mask.
Extend derivation_chain from 10 to 12
2008-10-14 14:58:09 +00:00
Paolo Cignoni a7a400b40e Changed an old FaceType::HasFaceQuality() into the tempory aware version HasPerFaceQuality(mesh) 2008-10-14 06:39:04 +00:00
Paolo Cignoni d944271c2a Removed a few warnings 2008-10-09 16:16:49 +00:00
Paolo Cignoni 117c2a06de New Parameter function to setup glsl programs that use geometry shaders 2008-10-09 08:58:57 +00:00
Paolo Cignoni 7722469c4f Public keyword missing 2008-10-08 14:30:56 +00:00
Paolo Cignoni 2da37bd5f7 Geometri shader, initial support 2008-10-08 14:00:32 +00:00
Paolo Cignoni b6d7e548b2 Commented out filename after final endif 2008-10-08 14:00:01 +00:00
ganovelli ca01052454 Chamged MatrixGL to comply renaming in wrap/gl/shot.h 2008-10-07 10:58:18 +00:00
Paolo Cignoni 40a149964f made the absence of faces in a ply file a "non critical" error. 2008-10-02 21:46:29 +00:00
ganovelli b2758bcb39 [Namespaces changes]
edge->edg

clean up of some namespaces to comply the following naming:

Complexes (3 letters namespaces):
order 0 (point cloud    ) :vrt
order 1 (edge meshes)     :edg
order 2 (triangle meshes) :tri
order 3 (triangle meshes) :tet

Simplexes (4 letters namespaces):
order 0 (vertex)      :vert 
order 1 (edge)        :edge 
order 2 (triangle)    :triangle
order 3 (tetrahedron) :tetrahedron
2008-09-30 10:15:51 +00:00
ganovelli 86597ca595 added typename and
[Namespaces changes]
edge->edg

clean up of some namespaces to comply the following naming:

Complexes (3 letters namespaces):
order 0 (point cloud    ) :vrt
order 1 (edge meshes)     :edg
order 2 (triangle meshes) :tri
order 3 (triangle meshes) :tet

Simplexes (4 letters namespaces):
order 0 (vertex)      :vert 
order 1 (edge)        :edge 
order 2 (triangle)    :triangle
order 3 (tetrahedron) :tetrahedron
2008-09-30 10:15:29 +00:00
ganovelli 5e24bf99ce removed useless inclusion of edge.h 2008-09-30 10:14:52 +00:00
ganovelli 8acc6a4e2c Removed Similarity from Shot
Problem: Shot was using similarity merely to store
rotation and translation. 
There was an incompatibility in that Similarity::ToMatrix
gives scale*rotation*translation while in Shot
the translation stores the viewpoint and the rotation the orientation of the Shot.

In this version, a small class ReferenceFrame was done to play the role of similarity and MultMatrix and MultSimilarity functions were added to transform the frame by multiplying it for a Matrix44 (or applying a similarity).

NOTE: the file export_ply.ply and import_ply.h must also be updated.

-- only compiled with .net ---
2008-09-26 17:05:49 +00:00
Paolo Cignoni dcbb7456ac Added by default rotation on middle + alt, (almost a standard on various 3d packages). Kind patch submitted by Sebastian Herholz. 2008-09-22 23:10:00 +00:00
Paolo Cignoni d49e84fb9c fixed a bug 2008-08-27 14:04:38 +00:00
Paolo Cignoni 78ef9230ee Added modifications sent in by Julien Couet for better saving of computed slices. 2008-08-07 07:24:52 +00:00
ganovelli c69c140e0a minor changes for gcc compiler 2008-08-04 14:49:02 +00:00
ganovelli cff47a9ac3 Extended comment, changed load and save replacing dangerous write and read of the object mesh as whole with saving of its few members 2008-08-01 10:03:05 +00:00
ganovelli b4fa6b9c97 -missing template type added in CameraDistance
-bug in DrawPoints removed
2008-07-24 12:37:18 +00:00
Marco Callieri 74be2a6f67 revised PTX importer, lot of unused code deleted. new import paramenter structure 2008-07-22 10:00:12 +00:00
Paolo Cignoni ce62053b9c Added correct management of binding material in controller nodes 2008-07-21 13:25:32 +00:00
Paolo Cignoni 0b6af20c93 Corrected texture loading. Now symbolic material binding are respected during the traversal. Still to be cleaned up. 2008-07-20 21:25:09 +00:00
Paolo Cignoni 966d98da5a added management of optional quality 2008-07-19 05:25:55 +00:00
Paolo Cignoni c1c51913d3 Started the restructuring of the Collada parser. Now it is correctly recursive and it is able to get geometry also from controller. 2008-07-15 07:27:08 +00:00
Paolo Cignoni d3ac368bd5 Updated references of SetRotate to the new SetRotateDeg/SetRotateRad interface 2008-07-13 07:41:20 +00:00
Paolo Cignoni 51dde5296f Corrected the broken ParseRotationMatrix. It had two bugs: it did not correctly parsed sequence of rotations and it exchanged degree with radians 2008-07-13 05:39:13 +00:00
Paolo Cignoni 86c16f8245 Added missing license information 2008-07-12 06:12:46 +00:00
Paolo Cignoni 637dd26b2b removed duplicated file (same file and more recent was in wrap/dae) 2008-07-12 06:11:47 +00:00
Paolo Cignoni 29ad822941 Added missing std namespace qualifier to min and max 2008-07-04 07:30:49 +00:00
Paolo Cignoni 9ca56690ae remove harmless warnings 2008-07-02 13:31:00 +00:00
Paolo Cignoni 9135ed578c exposed binary/ascii support and added progress bar support in the save 2008-07-02 13:30:21 +00:00
Paolo Cignoni 0a712cbbcb removed harmless warnings and added better support for transp materials 2008-07-02 13:28:37 +00:00
Paolo Cignoni bafcd1768e remove harmless warnings 2008-07-02 13:26:25 +00:00
Paolo Cignoni 700b8cd26e Removed annoying unsigned vs signed warnings.
Thanks to Alain Boyer for the kind bug submission!
2008-06-29 22:44:44 +00:00
Paolo Cignoni ab71949274 Changed a line in a switch case in the void PlyFile::compile function
p->cb = cb_skip_list_bin8 
Thanks to Alain Boyer for the kind bug submission!
2008-06-29 22:32:09 +00:00
Paolo Cignoni 75e3cc2a18 added a safeness assert 2008-06-29 07:48:48 +00:00
ganovelli e91db31568 first draft of the wrapper for cminpack (see http://devernay.free.fr/hacks/cminpack.html).
It only wraps the lmdif function (non linear minimization 
of Sum_{i=0}^{M} ( F(x0,..,xN)_i ) ^2 ) with F:R^N->R^M
2008-06-28 16:14:18 +00:00
Federico Ponchio 8494ace467 Fixed some bug and move to QVariant. 2008-06-27 18:54:18 +00:00
Paolo Cignoni e5572b4f05 added support of internal edge bit for keeping track of triangulated polygonal faces 2008-06-26 08:41:11 +00:00
Paolo Cignoni 17369b521b Matrix transformations corrected in glCylinder and glArrow. 2008-06-23 14:33:51 +00:00
Paolo Cignoni bd784fabaa Corrected a small bug in the management of negative indexes of obj on non triangular faces 2008-06-14 07:29:31 +00:00
Paolo Cignoni e5857b7925 corrected a small bug causing crashes when loading bad-formed mtl files 2008-06-13 07:05:59 +00:00
Paolo Cignoni 67ce430991 Added point drawing using vertex arrays and distance attenuation for large points 2008-06-10 00:57:46 +00:00
Federico Ponchio 634697dd8f Some documentation added 2008-05-30 10:45:33 +00:00