Paolo Cignoni
12c61c4622
Added ByLine() method, which initializes the quadric as the squared distance from a given line.
...
This works with a vcg::Ray() too, but the caller should be aware that the distance "before" the ray origin is computed as if the ray were a line.
2009-03-31 09:17:39 +00:00
Paolo Cignoni
19ae359bf1
Added unified interface for open and close 0,1 intervals and
...
extern boxmuller gaussian generator.
2009-02-04 12:06:58 +00:00
Paolo Cignoni
3d5ccb47f9
compilation fixes with eigen (norm2=>squaredNorm, a*b => a.dot(b))
2009-01-23 16:58:47 +00:00
Paolo Cignoni
9a47677ed2
compilation fixes with eigen
2009-01-22 23:10:24 +00:00
granzuglia
de75285ed0
added const qualifier to transpose function
2009-01-22 10:18:40 +00:00
Paolo Cignoni
91968941c8
removed abs and sqrt ambiguities
2009-01-18 23:56:28 +00:00
Paolo Cignoni
07fd44359d
Added Distribution Class, a more safe and slower class for managing distribution of scalar values that has the same interface of Histogram
2009-01-15 23:54:00 +00:00
Federico Ponchio
d0ad7cbacc
fabs -> math::Abs
2009-01-15 14:29:05 +00:00
granzuglia
72eb2f753e
added GetColumn3,GetColumn4,SetColumn
2009-01-15 13:42:30 +00:00
Paolo Cignoni
0b15c9b4b4
added a few const, and a default value for the generate(int) call
2008-12-18 00:29:03 +00:00
Marco Callieri
7548c5e2ac
corrected a pow argument casting
2008-12-16 09:52:04 +00:00
Paolo Cignoni
0f0ac756e4
Polar Functor is now templatized
2008-12-15 13:16:00 +00:00
Paolo Cignoni
a9a17a0713
Aligned with current implementation of RandomGenerator
2008-12-15 08:49:02 +00:00
Paolo Cignoni
13e5060688
Re-added the original constructor with the seed. Very useful for using custom static generators.
2008-11-27 21:04:17 +00:00
Massimiliano Corsini
b73fba8706
refactoring
2008-11-27 16:39:05 +00:00
Paolo Cignoni
46b3024de6
Changed as to include new Random methods
2008-11-27 15:05:36 +00:00
Massimiliano Corsini
c13722fd54
minor changes
2008-11-27 11:49:17 +00:00
Massimiliano Corsini
67d185c384
other bugs fixed
2008-11-27 11:37:23 +00:00
Massimiliano Corsini
7b8d3a07f0
first fixes
2008-11-27 11:31:01 +00:00
Massimiliano Corsini
50a436594e
re-styled and improved uniform random number generator
2008-11-27 11:27:54 +00:00
Paolo Cignoni
5ee16ee977
Removed unused static field max_band
2008-11-20 13:27:50 +00:00
Federico Ponchio
a9e5756eda
Distortion parameter zeroed on creation!
2008-11-06 15:36:44 +00:00
Paolo Cignoni
0927eaf2fb
sounds like I forgot to commit the addition of Transpose compatibility + fix related to recent Eigen change
2008-11-04 12:33:47 +00:00
mtarini
b3620bb320
implemented ToEulerAngles + minor changes and fixes.
2008-11-01 15:54:13 +00:00
Paolo Cignoni
dfc97ba1f2
fix Matrix44 infinite product, make glGetv not allocate temporary
2008-10-30 10:47:08 +00:00
Paolo Cignoni
60eb470c6c
of course fixing msvc breaked gcc... not anymore... spoke too fast gcc 4.0.1 had troubles
2008-10-29 15:52:07 +00:00
Paolo Cignoni
e90fd9ca16
of course fixing msvc breaked gcc... not anymore
2008-10-29 15:36:08 +00:00
Paolo Cignoni
0414cbc2f3
Fixed includes, new interface to specify polar functions
2008-10-29 15:26:45 +00:00
Paolo Cignoni
c8506daaff
fixed a couple of MSVC issues, meshlab compile, the plugins soon...
2008-10-29 14:01:44 +00:00
Paolo Cignoni
7b075b3905
mvsc does not like #warning
2008-10-29 13:17:32 +00:00
Paolo Cignoni
69a82d6174
fix the is "inaccessible" issue with g++-4.0.1 - more fixes ;)
2008-10-29 11:29:57 +00:00
Paolo Cignoni
696f763c3d
fix the is "inaccessible" issue with g++-4.0.1
2008-10-29 11:28:51 +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
0361427bc0
big cleaning in Point* and Matrix*, now they are very closed to be simple typedef of
...
Eigen's Matrix. Now the dilema is how to mimic those typedefs, using inheritence ?
or using the classic workaround: typename Point3<float>::Type; with Point3<T>::Type defined
to Eigen::Matrix<T,3,1>. Anyway currently I support both (and the inheritence scheme has
to be preserved for compatibility). The advantage of the second approach is that when
eigen has to evaluate an expression it uses an Eigen::Matrix<>, so it is probably better
to only use Eigen::Matrix but I'm not 100% sure that makes a big difference especially if
we add some automatic reinterpret_cast between Eigen::Matrix and vcg::Point*....
2008-10-28 20:06:17 +00:00
Paolo Cignoni
c1551eddfd
make Point derive Eigen's Matrix and some cleanning
2008-10-28 11:47:37 +00:00
Paolo Cignoni
977ddb9623
some cleaning
2008-10-28 10:16:43 +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
5394003338
Fixed small error in documentation
2008-10-24 18:49:40 +00:00
Paolo Cignoni
8a8eb6fb65
add the possiblity to sort eigenvalues/vectors according to their absolute values
2008-10-24 17:21:53 +00:00
Paolo Cignoni
24ea4251a9
Matrix33: make const the binary operators
2008-10-24 12:20:44 +00:00
Paolo Cignoni
39e2cf2b3e
Spherical Harmonics are templatized on the number of coefficients
2008-10-08 14:01:34 +00:00
ganovelli
d0d580c4ae
Changed GetIntrinsics into:
...
GetExtrinsicsToWorldMatrix and
GetWorldToExtrinsicsMatrix
2008-10-07 10:57:09 +00:00
ganovelli
e16d065e93
[Namespaces changes]
...
vert->vertex
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 (extended namespaces):
order 0 (vertex) :vertex
order 1 (edge) :edge
order 2 (triangle) :triangle (temporarily it remains "face")
order 3 (tetrahedron) :tetrahedron
2008-09-30 11:41:58 +00:00
ganovelli
bb741600ca
<limits.h> to <limit>
2008-09-30 11:41:04 +00:00
ganovelli
a2e3e5b725
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:07:32 +00:00
Federico Ponchio
e5258c6aa3
Attempting to make similarity compatible with both quaternions and matrix44
2008-09-26 15:37:53 +00:00
ganovelli
3d8400f86e
added a missing templatization od Point3 in Decompose (thanks Oscar Barney)
2008-09-22 13:49:15 +00:00
ganovelli
efd69c8291
qualifier Camera<S>:: removed in inline definition (thanks Oscar Barney)
2008-09-22 13:42:49 +00:00
ganovelli
889b2ddaa3
chamged " to < in the #include
2008-09-22 09:35:01 +00:00
ganovelli
f2ed76753c
added inclusion of functional
2008-09-22 09:10:58 +00:00
granzuglia
b9ce07204e
Minor changes according to new Point<N,S> definition.
2008-09-10 14:06:13 +00:00
Paolo Cignoni
e8c7472dca
Corrected name of template type S in UndistortedToDistorted() to avoid the shadowing between S as type and S as variable name.
2008-09-09 17:41:33 +00:00
matteodelle
c94dbdfdaf
2008-09-09 09:22:55 +00:00
matteodelle
0c2491e1b4
new functions to handle distortion: should not affect previous stuff. tested but still error prone...
2008-09-09 09:20:48 +00:00
Federico Ponchio
12d5a0e322
Removed compile warning by initializing imax to 0 in Decompose().
2008-08-27 14:33:20 +00:00
Paolo Cignoni
7c66288207
changed a RotateRad to the new SetRotateRad
2008-08-14 10:02:07 +00:00
ganovelli
3462f6a8c2
changed from Rotate (in degrees) to SetRotateRad and SetRotateDeg (the same as in Matrix44.h)
...
Added return type to the functions SetXXX
2008-08-12 17:31:11 +00:00
Paolo Cignoni
9e214da6ff
Re-inserted the return statement in the Invert() function that was erroneously removed with the previous commit.
2008-08-11 12:56:37 +00:00
Paolo Cignoni
65320e40a7
Added a clarifying comment on the Invert versus Inverse issue
2008-08-11 08:04:19 +00:00
ganovelli
1e94f7cf46
Add covariance matrix of a set of points
2008-08-07 18:33:23 +00:00
Paolo Cignoni
dde42be7ea
Added new line at the end of file
2008-08-04 15:55:53 +00:00
Paolo Cignoni
e4e5507757
Added missing includes
2008-08-04 15:38:10 +00:00
Paolo Cignoni
c46f5f2435
removed a version of the ComputeRigidMatchMatrix that take in input a weight vector. User should use ComputeWeightRigidMatchMatrix directly
2008-07-23 22:50:15 +00:00
Paolo Cignoni
f61a69c94f
in "ComputeRigidMatchMatrix(std::vector<ScalarType> weights,Matrix44x &res,std::vector<Point3x> &Pfix,std::vector<Point3x> &Pmov)" I changed:
...
Quaterniond qtmp; ----->to------> Quaternionx qtmp;
Point3d tr; ----->to------> Point3x tr;
2008-07-23 17:30:30 +00:00
Paolo Cignoni
6a4631b94b
1) in "ComputeWeightedRigidMatchMatrix" I changed:
...
std::vector<double> weights ----->to------> std::vector<ScalarType> weights
tmp.Trasp(); ----->to------> tmp.Transpose();
QQ.Zero(); ----->to------> QQ.SetZero();
RM.Zero(); ----->to------> RM.SetZero();
ccm.Trasp(); ----->to------> ccm.Transpose();
QQ.Jacobi(d,v,nrot); ----->to------> Jacobi(QQ,d,v,nrot);
q.RotMatrix(Rot); ----->to------> q.ToMatrix(Rot);
tr= (bfix - Rot.Apply(bmov)); ----->to------> tr= (bfix - Rot *bmov);
Trn.Translate(tr); ----->to------> Trn.SetTranslate(tr);
2) in "ComputeRigidMatchMatrix" I changed:
return ComputeRigidMatchMatrix(res,Pfix,Pmov,qtmp,tr); ----->to------> return ComputeWeightedRigidMatchMatrix(res,Pfix,Pmov,weights,qtmp,tr);
2008-07-23 17:19:51 +00:00
Federico Ponchio
825483d177
Rationalized ToMatrix and FromMatrix (and improved algorithm).
2008-07-21 13:38:55 +00:00
Federico Ponchio
89973a1a14
Extrinsics in Shot use Matrix44 not Quaternion. therefore ToMatrix was correct.
...
Rolling back.... sigh.
2008-07-14 13:42:22 +00:00
Federico Ponchio
844be84004
GetCol3 -> GetColumn3 (this part needs to be tested!)
2008-07-14 13:28:27 +00:00
Paolo Cignoni
a20902efd8
VERY IMPORTANT CHANGE - Could break the compilation of a lot of code around.
...
SetRotate of matrix44 has gone. Now only the explicit version SetRotateDeg and SetRotateRad are available. It was too error prone having something with the OpenGL syntax but using radiant instead the OpenGL degrees
2008-07-13 05:37:00 +00:00
ganovelli
3d21fcba1d
removed dependency on qt
2008-06-23 14:20:52 +00:00
Paolo Cignoni
8a6dbded39
Corrected wrong license information in the header
2008-05-28 23:29:23 +00:00
Paolo Cignoni
45ed8cb000
Capital f in Factorial
2008-05-28 08:59:40 +00:00
Paolo Cignoni
a152d0e208
First release
2008-05-28 08:55:04 +00:00
Paolo Cignoni
0a0436a13c
Removed $Log$ macro
2008-05-28 08:54:33 +00:00
Paolo Cignoni
4ee18ed103
First release
2008-05-28 08:53:30 +00:00
Paolo Cignoni
2caf6034f3
Added SQRT_TWO
2008-05-28 08:51:32 +00:00
Paolo Cignoni
399277570b
First release
2008-05-16 10:36:35 +00:00
Federico Ponchio
9cb9c1dace
Fixed Axis. Due to quaternion changes.
2008-04-11 12:22:32 +00:00
ganovelli
b457b0c978
removed printf
2008-03-17 11:36:37 +00:00
Paolo Cignoni
04d00284a5
added missing include limits
2008-03-06 10:45:39 +00:00
Paolo Cignoni
051c612aba
Heavily refactored the whole structure.
...
Some interfaces have been changed. Be careful.
2008-03-05 11:21:49 +00:00
Paolo Cignoni
d14283e619
added maxcount
2008-02-29 12:15:06 +00:00
Federico Ponchio
82635287c7
Returrned to s*r*t decomposition.
2008-02-24 18:03:03 +00:00
Federico Ponchio
6b3726ef90
Removed a Transpose due to change in quaternions.h ToMatrix
2008-02-22 18:10:39 +00:00
Federico Ponchio
8cc9a085a7
Changed to reflect quaternion toMatrix inversion.
2008-02-22 17:41:48 +00:00
Federico Ponchio
84760ee1f2
Fixed determinantt problem and quaternion problem.
2008-02-22 17:40:27 +00:00
Federico Ponchio
2b19c6c313
ToMatrix returned the inverse matrix. OUCH.
...
This affects trackball and shot.h
Added a const also.
2008-02-22 17:39:59 +00:00
Federico Ponchio
e4c62fec6d
refixed bug in FromMatrix
2008-02-21 11:34:08 +00:00
Federico Ponchio
a32c8842ef
fixed bug in FromMatrix
2008-02-21 10:57:59 +00:00
Paolo Cignoni
652f27f40f
corrected bug in FromMatrix
2008-02-21 10:30:18 +00:00
ganovelli
7ddf584fac
useless matrix multiplication removed
2008-01-03 17:42:03 +00:00
ganovelli
a7e016e1ef
added RandomRotation
2008-01-03 17:40:17 +00:00
Paolo Cignoni
224e50a2bd
Added missing include guards
2007-12-02 10:06:47 +00:00
Marco Di Benedetto
da56c33f36
Added missing #include <algorithm>
2007-11-24 20:41:00 +00:00
Paolo Cignoni
3f18e449dc
added ComputeSimilarityMatchMatrix
2007-11-17 15:41:42 +00:00
Paolo Cignoni
68effd0f7a
Added IsNAN
2007-07-24 07:09:17 +00:00
Paolo Cignoni
787cfbe93f
first version, ported from the internal lib to the open one.
2007-07-13 14:23:56 +00:00
Paolo Cignoni
c26a1aa94b
added a static (unefficient!) identity member
2007-07-13 00:01:47 +00:00
Paolo Cignoni
4dd3dbdbfb
added the missing static Construct() member
2007-07-12 06:42:01 +00:00
Massimiliano Corsini
a522bf6595
add DCM to Euler Angles method (to implement)
2007-07-03 16:07:09 +00:00
Massimiliano Corsini
c99138926d
add DCM to Euler Angles conversion
2007-07-03 16:06:48 +00:00
Paolo Cignoni
7b85798562
added bestmachting normal
2007-05-29 14:01:24 +00:00
Paolo Cignoni
63dccc011a
Moved here from shadevis
2007-05-22 21:21:27 +00:00
Nico Pietroni
85175e7dc4
added RotationMatrix method to calculate rotation matrix along an axis
2007-04-19 14:30:26 +00:00
Nico Pietroni
ac5e8a2143
Added function RotationMatrix
2007-04-07 23:06:47 +00:00
Paolo Cignoni
ae9d8a8535
Solved an issue related to different casting double-float between gcc 3 and gcc 4
2007-03-22 11:07:16 +00:00
Massimiliano Corsini
488287610f
final fix to euler angles transformation
2007-03-08 14:39:27 +00:00
mtarini
c2dcc2798f
added a missing "Quaternion<S>::" in "FromEulerAngles"
2007-02-06 12:24:07 +00:00
Massimiliano Corsini
9659b702f8
fix euler angles computation
2007-02-06 09:57:40 +00:00
Massimiliano Corsini
8b60f2cc35
fix names
2007-02-06 08:54:07 +00:00
Massimiliano Corsini
961c1dfff0
add new ctor (build similarity from euler angles)
2007-02-05 14:17:48 +00:00
Massimiliano Corsini
0bb019d92e
add extrinsic parameters accessors
2007-02-05 14:17:21 +00:00
Massimiliano Corsini
4b5533971a
add from euler angles to rotation matrix conversion
2007-02-05 14:16:33 +00:00
Massimiliano Corsini
fbf770bd7b
add euler angle to quaternion conversion
2007-02-05 13:55:21 +00:00
Nico Pietroni
2d7c1bbdd2
-Used scalar type passed as template argument istead of double to prevent warnings.. in Rotate function
2007-01-29 00:20:25 +00:00
Nico Pietroni
09acf65187
-added some explicit CASTs in order to avoid warning if one use float instead of double as ScalarType
2007-01-29 00:18:20 +00:00
matteodelle
cd277247cc
*** empty log message ***
2007-01-10 17:25:18 +00:00
Nico Pietroni
f8eeaae81f
added explicit cast in function inline float Sqrt(const int v) in order to avoid warnings
2007-01-08 09:23:49 +00:00
Paolo Cignoni
01695ba1d5
Corrected a syntax error detected only by gcc.
...
Corrected the order of initialization in the constructor to match the declaration order
2006-12-21 00:13:27 +00:00
matteodelle
17ebec98c6
minor eroor correction on variable names
2006-12-18 16:02:57 +00:00
Marco Callieri
a344d59446
camera+shot revamp: changed field names to something with more sense, cleaning of various functions, correction of minor bugs/incongruences, removal of the infamous reference in shot.
2006-12-18 09:46:39 +00:00
Paolo Cignoni
5af2209678
Re added typedef Histogramf and Histogramd
2006-11-28 21:29:21 +00:00
Massimiliano Corsini
d179389424
add documentation
...
fix typo
2006-11-28 09:47:42 +00:00
Federico Ponchio
613dcafe3b
just added an #include <matrix33>
2006-11-13 12:53:40 +00:00
Paolo Cignoni
642158fc32
many gcc compiling issues
2006-11-07 17:22:53 +00:00
Paolo Cignoni
e2733d55df
Necessary changes for compilation with gcc 3.4.6. Especially the hash function is a problem
2006-11-07 15:13:57 +00:00
Paolo Cignoni
06047a697d
gcc compiling issues
2006-11-07 11:47:14 +00:00
Paolo Cignoni
ebc0ac52c0
Added two sqrt templates for resolving ambiguity of sqrt(int)
2006-10-13 13:14:50 +00:00
Paolo Cignoni
605c4d2f04
Added a minimum method that uses SVD. Unfortunately it is much much slower.
2006-10-09 20:23:00 +00:00
Paolo Cignoni
a927c50c8d
Added missing typedef for gcc compiing
2006-09-29 08:36:10 +00:00
Paolo Cignoni
4e76390661
Removed some warnings
2006-09-28 22:49:49 +00:00
ganovelli
d1eea25504
added constructor from matrix44 excluding a row and colum
2006-09-25 23:05:29 +00:00
Paolo Cignoni
ac4efc84ef
initial commit
2006-09-21 18:10:05 +00:00
Paolo Cignoni
d8b56cedb1
Added SetIdentity method
2006-09-21 18:09:34 +00:00
Paolo Cignoni
8d63662955
Added const to declarations of the overloaded (operators *).
...
Otherwise the * operator would always attempt to convert any type of data passed as an argument to Point3<TYPE>
2006-09-11 16:11:39 +00:00
Paolo Cignoni
6cc1fb0753
Copy constructor : faster memcpy instead of slow 'for' cycle
...
empty constructor
2006-08-23 15:24:45 +00:00
Paolo Cignoni
5905c197b6
added some typename directives
2006-07-28 12:39:05 +00:00
Paolo Cignoni
68b176d276
Changed the template argument in JacobiRotate and added method for sorting eigenvalues and eigenvectors (SortEigenvaluesAndEigenvectors)
2006-07-24 07:26:47 +00:00
ganovelli
bd2e84521b
toMatrix with matrix33 added
2006-06-22 08:00:26 +00:00
ganovelli
9587cc0350
bug in operator + with MatrixxDig
2006-06-22 08:00:05 +00:00
Paolo Cignoni
3d8bbcc87f
added missing internal prototype to Sort function
2006-05-25 09:35:55 +00:00
Paolo Cignoni
1e8fb101d5
Added initial disclaimer
2006-05-17 09:26:35 +00:00
Paolo Cignoni
179d96b098
Added enum for the sorting strategy of the result in SVD.
2006-05-15 07:36:50 +00:00
Paolo Cignoni
4273322f65
minor change: removed unused vars
2006-05-04 00:09:53 +00:00
Paolo Cignoni
10c513dad8
Added some utility methods (swapping of columns and rows, matrix-vector multiplication)
2006-04-29 10:26:04 +00:00
Paolo Cignoni
26ce24dec3
Added method for sorting the singular values computed by the SingularValueDecomposition procedure
2006-04-29 10:20:52 +00:00
Paolo Cignoni
3ddd189349
changes necessary for gcc 3.4.5 on linux 64bit. Please take note of case-sensitivity of filenames
2006-04-11 08:09:35 +00:00