Commit Graph

423 Commits

Author SHA1 Message Date
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 f8a16135bf User manual - added API section (not completed) 2013-03-09 03:14:53 +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 5759d588eb Start off user manual,
It is not that much readable, but sectioning (structure) can be checked out.

Note: in order to activate equation numbering and referring append:
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
  TeX: { equationNumbers: { autoNumber: "AMS" } }
});
</script>

to generated html page, above the script which loads MathJax.js
2013-03-07 00:42:24 +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
Andreas Fabri debddb6409 more standard CMakeLists.txt 2013-03-05 21:28:34 +01:00
Andreas Fabri 3d1fd9709e put Ilker's Eigen Test under version control 2013-03-05 21:05:57 +01:00
iyaz c0e1b345f6 New test for sequential deformation (handle displacements are read from file, and target mesh is deformed accordingly) 2013-03-02 02:55:26 +02:00
iyaz 6c3ed29744 Required data for deformation session testing 2013-03-02 02:53:14 +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 bcdb975a2e Removal of forgotten precompiled header include 2013-02-21 18:27:20 +02:00
iyaz 6f29e03497 Test data, added a symmetry test. 2013-02-21 18:15:20 +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 fadb9c6083 Convert all CRLF files to LF 2012-12-04 16:13:45 +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
Sébastien Loriot dea74fc71d remove exe property 2011-09-02 08:11:42 +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 80d7740ea7 new bugs found 2011-08-08 12:40:10 +00:00
Yin Xu 2bd1b2d7e6 bugs of computeDirect() found 2011-08-08 05:24:15 +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 c27cabb0d3 benckmark of polar decomposition using Eigen 2011-08-04 06:29:03 +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 757a043aa6 add a random selection of covariance matrix 2011-07-21 12:12:08 +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
Yin Xu 38ba9fe2cb change the indentation to 2 spaces for a tab;
merge Deform_mesh.cpp with Deform_mesh.h, moving Deform_mesh.h to include/CGAL directory;
using CGAL::Timer for timing;
2011-05-27 12:00:24 +00:00
Yin Xu da12ab35d1 Forgot to add this part of code to svn previously. 2011-05-27 09:06:44 +00:00
Yin Xu 0290395074 the code of example 2011-05-27 08:03:12 +00:00
Yin Xu 0590793d20 Write a new example as mentioned in mail;
Add pre-factor function into taucs so that it can do pre-computation and matrix multiplication seperately.
2011-05-27 08:01:31 +00:00
Yin Xu 94547b9bd2 new version of k-ring function using BGL 2011-05-23 13:57:57 +00:00
Yin Xu 02228c5481 update LoadOFF function by simply using >> operator 2011-05-20 09:07:04 +00:00
Yin Xu e64ddeea58 update k_ring function, using Halfedge_around_vertex_const_circulator 2011-05-20 08:01:30 +00:00
Andreas Fabri a51b952e9d Add Andreas' k-ring implementation 2011-05-19 20:59:45 +00:00
Yin Xu 25f4cce22c update: k_ring function that is used to extract k-ring information of any vertices. 2011-05-17 14:01:15 +00:00
Yin Xu 77070320f9 small program that reads an off file and extracts its one-ring information 2011-05-17 12:35:23 +00:00
Andreas Fabri 7d5572e127 Add CmakeLists.txt 2011-04-29 14:41:23 +00:00
Andreas Fabri acc73c1cdd Empty directory structure for the new package 2011-04-29 14:39:22 +00:00