Sébastien Loriot
7ecfe2a1c0
update concept name
2013-04-12 17:07:43 +02:00
iyaz
2581657045
Merge branch 'Surface_modeling-new_package-GF' of ssh://scm.cgal.org/var/git/cgal into Surface_modeling-new_package-GF
2013-04-10 19:33:39 +03:00
iyaz
785aea21c6
A new model of SVDHelper_3 is added in order to test SVD in http://pages.cs.wisc.edu/~sifakis/project_pages/svd.html
...
To activate new model define USE_FAST_SVD_EXPERIMENTAL in/before Deform_mesh.h
As far as I test, it is ~3x faster than EigenSVD, and you notice speed-up in demo easily (since it makes whole deformation ~2x fast)
-- not sure about possible compilation problems
2013-04-10 19:31:45 +03:00
Sébastien Loriot
a14a4812a2
update doc of Eigen_SVD_helper_3
...
all the public member should be hidden as it's just the implementation
of the concept
2013-04-10 17:59:47 +02:00
iyaz
664a4e9aa7
Transfer Eigen_SVD_helper_3.h to include/CGAL
2013-04-10 17:57:24 +03:00
iyaz
5de0a8b598
Including default parameters for linear solver and SVD solver.
...
Related changes in demo, and test case.
Also removed Property_maps_for_edit_plugin.h which was somewhat useless.
-- Going to update examples, once API becomes more certain.
2013-04-10 16:56:17 +03:00
iyaz
45f170b9a6
change in SVDHelper concept (and model):
...
separate smallest singular value index calculation from 'compute'
2013-04-10 00:44:54 +03:00
iyaz
4805f2bfc4
New concept introduced for SVD computations: SVDHelper_3 and model of it Eigen_SVD_helper_3
...
For now I places Eigen_SVD_helper_3 under internal directory of Surface_modeling
2013-04-09 22:23:06 +03:00
Sébastien Loriot
18f2bd74c5
update copyright date and author list
2013-04-09 10:43:08 +02:00
Andreas Fabri
2dc9e77e2b
typos,wording,LaTeX
2013-04-09 10:06:22 +02:00
iyaz
52fbbdf049
Mixim upper case, fixed
2013-04-07 17:10:11 +03:00
iyaz
596f93f85a
Small refinements on ref-man.
2013-04-07 17:08:08 +03:00
iyaz
60286aa952
Reference manual refinements
2013-04-04 18:18:52 +03:00
iyaz
c7547ce8ee
fix member initialization order
2013-04-04 00:44:32 +03:00
iyaz
ba0a0f52e9
tag -> TAG in documentation
2013-04-04 00:41:45 +03:00
Sébastien Loriot
ce6ed9b51f
fix initialization order of member objects
2013-04-03 14:31:42 +02:00
iyaz
4bca660454
Separating preprocess into two sub-preprocess: region_of_solution and factorization
...
Main reason is that some parts only need one of them to be ready to work, but we were preprocessing both two subs.
2013-04-03 14:48:33 +03:00
iyaz
b3d624e3f5
Fixing warnings
2013-04-03 14:04:52 +03:00
Sébastien Loriot
c102838776
enhance the description of translate, rotate and deform
2013-04-03 11:18:19 +02:00
Sébastien Loriot
cc356eb368
hide default weight calculator
2013-04-03 09:39:13 +02:00
Sébastien Loriot
cb031439f1
shorten template parameter names to prettify the documentation
2013-04-03 09:21:27 +02:00
Sébastien Loriot
f0423d555f
fix order initialization warnings
2013-04-03 09:03:46 +02:00
Sébastien Loriot
52de2d5d08
change override to overwrite
2013-04-03 08:51:26 +02:00
Sébastien Loriot
1cd2687e41
add missing typename
2013-04-03 08:27:59 +02:00
iyaz
671b0c4bcb
return last result in preprocess
2013-04-03 02:06:54 +03:00
iyaz
11b69e0104
Introducing override function.
2013-04-03 02:01:41 +03:00
iyaz
abafa5efc1
Adding last_preprocess_successful
...
(deliberately created a new bool and not used need_preprocess because it will not be clear)
2013-04-02 22:55:05 +03:00
iyaz
c631f0a9f2
Documentation improvement (rotate & translate) and renaming (deformation_type)
2013-04-02 17:49:44 +03:00
iyaz
db1ac5c975
Changes according to API discussion 2
2013-04-02 15:38:06 +03:00
iyaz
acfc6bb9f8
a typo fixed
2013-04-02 13:18:41 +03:00
Sébastien Loriot
338c019dcd
make a pass on the reference manual
2013-04-02 11:45:31 +02:00
iyaz
3393f262a2
returning std::pair instead of boost::tuple
2013-04-01 13:30:58 +03:00
iyaz
411a1f21e5
Fixing spelling errors in comments
2013-04-01 02:22:23 +03:00
iyaz
22087f0770
make priv member comments doxygen style
2013-04-01 02:04:58 +03:00
iyaz
2e02eb5afd
Fixing names of template parameters and their typedefs
2013-03-31 16:23:57 +03:00
iyaz
e58d84f0c4
Remove storing all original positions
2013-03-30 18:51:45 +02:00
iyaz
800ec349fb
Fixin iterator names and comments
2013-03-29 19:35:24 +02:00
iyaz
093038bc8b
Ref manual refinements
2013-03-29 03:56:24 +02:00
iyaz
2e1b6601aa
Mostly documentation/code improvements.
2013-03-28 03:32:36 +02:00
iyaz
2166d7d6ce
API changes,
...
now edge weights are computed for all edges in constructor,
original positions of vertices are saved in constructor,
Documentation is coming tomorrow
2013-03-27 02:28:23 +02:00
iyaz
87676dbbbe
Reintroduce roi vector
2013-03-22 02:27:37 +02:00
iyaz
971dba606f
Added functions returning iterators for handles and handle groups
2013-03-20 23:01:17 +02:00
iyaz
189106307c
Make deformation type (spokes_rims or original) template parameter,
...
a few refinements on documentation
2013-03-20 13:46:05 +02:00
iyaz
e77910c423
Making preprocess call optional (it is called if there is any need to)
...
Make the copy constructor private
2013-03-19 16:18:30 +02:00
Sébastien Loriot
3e02fc24b9
add example file and document parameters
2013-03-18 18:11:46 +01:00
iyaz
32830d90cc
WeightCalculator is now just a part of preprocess function
2013-03-18 16:30:35 +02:00
iyaz
a290b93c31
Change SurfaceModelingWeightCalculator concept
2013-03-18 13:35:44 +02:00
iyaz
927cbc2c6e
Documentation refinements,
...
Unused functions are removed
2013-03-18 02:09:13 +02:00
iyaz
fc14a32566
Removed previous version of rims,
...
For simplifying code, Cgal vector + Eigen matrix arithmetics are changes to Eigen Vector + Matrix, now at least code is more readable & short,
Completed the new version of rims (include energy function),
Clean the code (parts which corresponds to Eq.s are commented in this way)
Previous version assumes ros vertices are sorted according to their ids, now it is not an issue (order of vertices in ros std::vector can be any).
2013-03-13 22:43:04 +02:00
iyaz
708162cf79
Put rims iterator into namespace
2013-03-13 01:40:57 +02:00
iyaz
e11568810b
Change weight computation of rims
...
(also compute opp edges)
2013-03-12 01:10:02 +02:00
iyaz
bae5971dd1
Added a new spokes and rims version
2013-03-12 00:44:00 +02:00
iyaz
e638fe19ae
In SVD calculation, removed unnecessary search of minimum eigenvalue, since they are sorted already
2013-03-11 15:08:22 +02:00
iyaz
71c652538f
Merge branch 'Surface_modeling-new_package-GF' of ssh://scm.cgal.org/var/git/cgal into Surface_modeling-new_package-GF
2013-03-11 12:10:47 +02:00
iyaz
ca54dfe303
Code & documentation improvement
2013-03-11 12:08:57 +02:00
Sébastien Loriot
571ea185b4
fix compilation error and warnings
2013-03-09 09:49:03 +01:00
iyaz
4ccc5b8690
Remove forgotten debug related code
2013-03-09 03:22:02 +02:00
iyaz
c206dcd6fb
Removed forgotten debug related code
2013-03-09 03:19:29 +02:00
iyaz
de332821bc
Added a new function assign
...
A few documentation improvements
-- Need to write test cases for each function soon
2013-03-09 03:13:52 +02:00
Sébastien Loriot
c8deb29d63
fix copmilation issue in the demo and remove a initialization order warning
2013-03-08 11:41:38 +01:00
iyaz
5986e4c351
Added a simple function move(handles, target positions)
2013-03-07 19:21:45 +02:00
iyaz
bb19e3d809
Introduced spoke-rim iterator to eliminate code duplication
...
Documentation improved
Energy function for rims added
2013-03-07 00:36:27 +02:00
iyaz
b75edcad9c
A minor naming change
2013-02-28 19:21:06 +02:00
iyaz
60e5fac453
Removing zero initialization requirement on index maps,
...
Now index maps can be read write maps (whether initialized with some value or not does not matter)
2013-02-28 19:05:21 +02:00
iyaz
19cd8e2104
Documenetation changes
2013-02-28 14:59:56 +02:00
Sébastien Loriot
60cf501f98
add missing typename
2013-02-28 12:32:36 +01:00
iyaz
2540ec136d
Moving internal class to its own directory
2013-02-28 12:15:47 +02:00
iyaz
fcd8d1f3c4
API related improvements, doxygen style commenting (will be improved)
2013-02-28 02:01:12 +02:00
iyaz
6f15306ce4
Simple precondition for checking whether 'preprocess' is called before deformation is added
2013-02-27 01:19:02 +02:00
iyaz
949d0ca112
Spokes and rims implementation is added,
...
A clamped version of cotangent weight and uniform weight are added.
2013-02-27 00:52:28 +02:00
iyaz
b725285b29
Added rims part again (previous version had a bug, corrected it).
...
On weights, added cotangent weight implementation which is invariant under edge orientation (a->b vs b->a returns the same weight which is expected), (previous version was returning slightly different weights), and some more improvements (added an alternative (most prob faster) implementation for tan(Q/2))
2013-02-23 04:20:03 +02:00
iyaz
9a5b5f22d5
Separating weight calculation. Added a new weight (with small modifications) called from [Mullen08].
2013-02-21 18:14:12 +02:00
Sébastien Loriot
ab27458311
add documentation canvas for surface modeling
2013-02-20 08:44:32 +01:00
Sébastien Loriot
f52883dd55
boost property_map put and get functions don't need to be in boost namespace
...
if the global functions are in a namespace, the property map needs to
be in the same namespace
2013-02-18 17:11:34 +01:00
Ilker O. Yaz
5a815504a3
Removing spokes_and_rims related code.
2013-02-18 17:17:45 +02:00
Ilker O. Yaz
618720782b
Changing implementation to work with asymmetric weights,
...
Solving asymmetric result problem.
2013-02-18 15:26:19 +02:00
Ilker O. Yaz
9b73580829
Added implementation for spokes and rims.
...
More work on ROI friendly implementation.
2013-02-14 00:39:20 +02:00
Ilker O. Yaz
fa35e8506b
Making implementation ROI friendly,
...
Adding a custom pmap which can be useful for deforming large polys with small ROIs,
-------
Main change is now internal storage size only depends on ROI.
We pass on all vertices/edges for once in constructor to initialize index pmaps.
This part should be removed since it iterates over all vertices, we can achieve that by a requiring that supplied vertex_index_map, and edge_index_map should be filled by 0.
So the question is how can it be different than looping over all vertices ?
The user might provide a custom pmap, such as Polyhedron_vertex_zero_default_index_map, (added in demo Property_maps_for_edit_plugin.h) which use an internal map and returns 0 for not found keys (so no actual initialization takes place).
2013-02-13 18:00:55 +02:00
Andreas Fabri
1c1ade6579
put parenthesis around max for VC++
2013-02-11 19:36:45 +01:00
Sébastien Loriot
600fed1a54
initialize a std::size_t to max() instead of -1
...
follow up of b641753c0c
2013-02-11 10:42:27 +01:00
Sébastien Loriot
0fd82df3a9
do not write twice the coefficient
2013-02-11 10:26:10 +01:00
Sébastien Loriot
2d456057f6
accomodate changes due to merging from next
2012-03-26 15:22:16 +00:00
Sébastien Loriot
b641753c0c
change int to std::size_t
2012-03-26 10:56:26 +00:00
Sébastien Loriot
d52b803ef3
dos2unix
2012-03-26 10:55:12 +00:00
Andreas Fabri
ac17a0175d
Rename in the API of Deform_mesh; Removal of the k-neighborhhod function
2011-09-15 14:39:00 +00:00
Andreas Fabri
1624c25ad0
Add a rotational deformation; Cleanup of propertymaps; Pass polyhedrin as reference and not as pointer
2011-09-15 14:03:07 +00:00
Andreas Fabri
41707d2265
Conditionally add code for rotational deformations
2011-09-15 13:23:40 +00:00
Andreas Fabri
a8c7965d79
Bugfix in unused code
2011-09-09 08:24:02 +00:00
Andreas Fabri
8982e98bb5
The matrix is not necessarily symmetric
2011-09-06 16:40:35 +00:00
Andreas Fabri
d5110f746a
Pull variable out of a loop, and avoid construction of intermediate Vector
2011-09-05 13:51:51 +00:00
Andreas Fabri
f0acf7daad
-1.0 * becomes -
2011-09-05 09:43:09 +00:00
Andreas Fabri
ba1b84482e
Avoid a copy of the polyhedron
2011-09-05 09:41:04 +00:00
Sébastien Loriot
26c2a15055
warning signed vs unsigned int
2011-09-02 14:16:41 +00:00
Sébastien Loriot
26e04f1bac
unqualified called to get and put (use Koening lookup)
2011-09-02 14:09:30 +00:00
Andreas Fabri
a484a1c132
Remove dead code
2011-08-31 10:06:31 +00:00
Andreas Fabri
50acd0120b
Use Matrix3::setIdentity()
2011-08-31 09:19:05 +00:00
Andreas Fabri
5467cfd6be
Use Matrix3D::setZero() ; Eliminate dead code
2011-08-31 08:36:22 +00:00
Andreas Fabri
05fda9254a
Remove dead code
2011-08-30 16:36:06 +00:00
Andreas Fabri
b67843d628
Add const&
2011-08-30 16:05:44 +00:00
Andreas Fabri
e2e3f9e6dc
Compute mean_value for opposite edge directly to avoid another call to cot_weight
2011-08-30 15:24:56 +00:00
Andreas Fabri
67f94d83fe
Add const and/or const&
2011-08-30 15:18:19 +00:00
Andreas Fabri
20be1c6ddc
Add license header
2011-08-30 15:02:28 +00:00
Andreas Fabri
95d0a14bcf
rename class Deform_mesh_BGL to Deform_mesh
2011-08-30 14:56:54 +00:00
Andreas Fabri
c817936c75
rename Deform_mesh_BGL.h to Deform_mesh.h
2011-08-30 14:55:58 +00:00
Andreas Fabri
19031f1b51
remove outdated file
2011-08-30 14:55:11 +00:00
Andreas Fabri
57d62e3471
reindent
2011-08-30 13:52:20 +00:00
Andreas Fabri
c0b5304844
Removed code review comments
2011-08-22 11:28:02 +00:00
Andreas Fabri
9b6c73950b
reindent
2011-08-22 10:52:29 +00:00
Andreas Fabri
f2ad344e59
reindent
2011-08-22 10:51:09 +00:00
Andreas Fabri
74389075e6
Remove code-review comments
2011-08-22 10:39:51 +00:00
Andreas Fabri
fb80f36221
Remove #undef
2011-08-22 10:34:09 +00:00
Andreas Fabri
f5f2576e58
Remove #undef; cleanup of EXPERIMENTAL
2011-08-22 10:33:28 +00:00
Yin Xu
5fd8a4df2a
fixed the bug of polar decomposition method
2011-08-20 08:44:13 +00:00
Yin Xu
ea91c4e984
code consolidation
2011-08-19 08:12:54 +00:00
Yin Xu
f5419ffe4e
code consolidation
2011-08-13 14:50:50 +00:00
Yin Xu
d40a7827a9
stable version up to benchmark of optimal rotations
2011-08-08 14:44:52 +00:00
Yin Xu
6d0646dd9c
tiny fix
2011-08-05 14:17:46 +00:00
Yin Xu
b746da91f2
update usage scenario and benchmark of optimal rotations
2011-08-05 14:02:14 +00:00
Yin Xu
e8e095bd95
using Eigen to do polar decomposition for optimal rotations
2011-08-04 06:48:36 +00:00
Yin Xu
9966c8ae66
sharp feature detection
2011-08-03 14:22:06 +00:00
Yin Xu
83aec55093
benchmark for polar decomposition using Newton's method with warm start, also added into header file.
2011-07-28 14:08:13 +00:00
Yin Xu
203b7f9eab
significantly improve the code structure and GUI design; add combo box that allows user to select usage scenarios
2011-07-26 14:41:15 +00:00
Yin Xu
d99ea6b658
code consolidation for handles/ROI selection by geodesic distances
2011-07-26 06:09:57 +00:00
Yin Xu
49a11bfc60
adding a benchmark for optimal rotations
2011-07-21 11:49:38 +00:00
Yin Xu
e9db72ed5f
add a new usage scenario
2011-07-20 14:45:50 +00:00
Yin Xu
7b8e66f88d
remove Eigen from svn
2011-07-18 10:53:27 +00:00
Yin Xu
b79e774eb5
remove eigen from svn
2011-07-18 10:39:46 +00:00
Yin Xu
5c304e5f73
deleted
2011-07-18 10:37:23 +00:00
Yin Xu
09ef4d646a
tiny fix
2011-07-15 14:09:55 +00:00
Yin Xu
4f16a9f79b
modification of GUI
2011-07-14 07:50:21 +00:00
Yin Xu
466c149ce2
replace svd by Eigen; some modification on UI
2011-07-13 14:44:19 +00:00
Yin Xu
ea5d430e94
using mean-value coordinate to replace negative cotangent weights
2011-07-12 11:49:25 +00:00
Yin Xu
46a4f3f9bd
another round of consolidation: adding new threshold for convergence; modify rotation matrix when negative
2011-07-11 12:49:11 +00:00
Andreas Fabri
82c2fb7016
Add comments
2011-07-11 03:30:46 +00:00
Yin Xu
68205da8da
add template parameters for property maps in mesh deformation API
2011-07-10 08:28:56 +00:00
Yin Xu
aa47b30a0a
using property map instead of std::map
2011-07-08 09:24:23 +00:00
Laurent Rineau
a7c5cb5d65
Fix portability issues.
...
There were missing "typename" keywords.
2011-07-07 09:43:43 +00:00
Yin Xu
ac60cbfd1a
starting to add a button for preprocessing
2011-07-07 09:07:31 +00:00
Yin Xu
cbc5c309be
Solved all the comments.
2011-07-06 08:55:07 +00:00
Yin Xu
2b57a7fdc7
replace std::map by std::vector; add index maps
2011-07-05 09:44:08 +00:00
Yin Xu
c692c27fbd
restrict deform region on ROI
2011-07-04 14:35:27 +00:00
Andreas Fabri
43b84a6b38
Added comments and questions
2011-07-04 01:20:00 +00:00
Yin Xu
6ac2a8c273
executable version of arap modeling
2011-07-01 13:06:32 +00:00
Yin Xu
ab0a535046
first full version of arap modeling
2011-06-30 14:43:10 +00:00
Yin Xu
82d3b48389
adding the computation of cotangent Laplacian for trianular polyhedron
2011-06-10 05:43:34 +00:00
Yin Xu
04a9df6249
a new header file, using BGL template
2011-06-09 07:45:45 +00:00
Yin Xu
c31e927c17
template of solver
2011-06-08 09:01:13 +00:00
Yin Xu
92cf920bd2
using s2t to access target mesh from source mesh. The source mesh is always vertex_const_handle, while target mesh useing vertex_handle.
2011-06-01 06:31:02 +00:00
Yin Xu
af573b76a5
write an access function from source to target mesh
2011-05-27 14:22:29 +00:00
Yin Xu
53c7d0b3d2
another cleanup:
...
Another cleanup is to only #include what you need in this file.
For example fstream is not needed here.
Removed all the unrelated header files.
Avoid using statements.
Removed "using namespace *** ".
Note that you make a copy of the polyhedron,
that is you deform the copy not the original.
Not sure that this is your intention.
Yes this is my intention.
Also intialize the data member in the initialization section
of the constructor
Do you mean add the initialization of roi, hld and dsplc into constructor function?
I have no idea if #pragma once compiles with g++.
Replaced it by #ifndef....
2011-05-27 13:23:00 +00:00