Commit Graph

418 Commits

Author SHA1 Message Date
Lingjie Zhu a34d2e651c fix error rounding up
code and document
2018-11-30 15:30:08 +08:00
Lingjie Zhu 9db2720d6f fix reference manual 2018-11-30 15:30:08 +08:00
Lingjie Zhu b66c35aa83 remove get_ in member functions 2018-11-30 15:30:08 +08:00
Lingjie Zhu b593ef4622 fix proxy error update
should subtract error fitted to the original proxy not the new one
fix demo run m_iso_approx
2018-11-30 15:30:08 +08:00
Lingjie Zhu ae08e9a152 fix unused parameter warning 2018-11-30 15:30:08 +08:00
Lingjie Zhu b3a891e220 update demo cmake scripts
cmake version required update
optional verbose
get rid of include xx.cpp
fix duplicate optimize_anchor_location parameter and function name
2018-11-30 15:30:08 +08:00
Pierre Alliez bb0f671fa2 rename optimization option 2018-11-30 15:30:08 +08:00
Lingjie Zhu 522df74309 remove redundant fit function 2018-11-30 15:30:08 +08:00
Lingjie Zhu 9c0de51b79 optional tbb concurrency 2018-11-30 15:29:18 +08:00
Lingjie Zhu 8ea905adcd add TBB parallelism in fit
Can't find tbb on Windows10 with TBB from 44_20150728 to 2018_20171205.
Seems like FindTBB module is outdated.
cgal-discuss.949826.n4.nabble.com/how-to-enable-TBB-td4659985.html
2018-11-30 15:29:18 +08:00
Lingjie Zhu b17ca72645 fix split
modify proxy map before add_one_proxy_at
2018-11-30 15:28:00 +08:00
Lingjie Zhu e4f08cb18e remove preconditions
facet proxy map and proxy error are always valid
2018-11-30 15:28:00 +08:00
Lingjie Zhu d1bf782a2e fit_proxy_from_facet update error and proxy map
this maitain the proxy map and proxy error always valid
even if the number of iteration is 0
connected component fitted from patch
need error/vector degeneracy handeling
2018-11-30 15:28:00 +08:00
Lingjie Zhu 4750ea9328 add_one_proxy_at 2018-11-30 15:28:00 +08:00
Lingjie Zhu d7f7369416 random pick non-seed facets
without proxies clear which invalidates existing proxy map
2018-11-30 15:28:00 +08:00
Lingjie Zhu a693b2d928 compute_fitting_error -> compute_total_error
proxy error has already been computed in fit_proxy_from_patch
2018-11-30 15:28:00 +08:00
Lingjie Zhu f951b81e62 fit proxy from patch & seed facet 2018-11-30 15:28:00 +08:00
Lingjie Zhu 27d4485393 proxy_wrapper constructor with error 2018-11-30 15:28:00 +08:00
Lingjie Zhu fc6788b9b4 use Vector and CGAL::ORIGIN to compute anchor location 2018-11-30 15:28:00 +08:00
Lingjie Zhu e69d136e13 add optional anchor location optimization 2018-11-30 15:28:00 +08:00
Lingjie Zhu ba2ef67904 check forced teleportation 2018-11-30 15:28:00 +08:00
Lingjie Zhu f81c885a69 approximate on geometry with disconnected component
random shuffle on non seed facets
2018-11-30 15:24:16 +08:00
Lingjie Zhu 888ebfd4ea add connected component detection 2018-11-30 15:24:16 +08:00
Lingjie Zhu c07b7daf3a fix naming
fit_error -> m_perror_metric
proxy_fitting -> m_pproxy_fitting
2018-11-30 15:24:16 +08:00
Lingjie Zhu 59e314ce21 fix naming
m_borders -> m_bcycles
2018-11-30 15:24:16 +08:00
Lingjie Zhu 4fc49c26c7 fix naming
Chord_vector -> Boundary_chord
Border -> Boundary_cycle
2018-11-30 15:24:16 +08:00
Lingjie Zhu 97fdfd2965 prefix data member with m_ 2018-11-30 15:24:16 +08:00
Lingjie Zhu 48086ed3f0 fix naming and spacing 2018-11-30 15:24:16 +08:00
Lingjie Zhu e7945764a5 fix manifold test
forgot to compute average_edge_length when algorithm
instance is constructed from (tm, vpmap)
2018-11-30 15:24:16 +08:00
Lingjie Zhu 66458af0bd consistent naming and spacing 2018-11-30 15:24:16 +08:00
Lingjie Zhu f1a5f76f00 fix dynamic_property_map compiling issue 2018-11-30 15:24:16 +08:00
Pierre Alliez 958477c466 ref manual 2018-11-30 15:24:16 +08:00
Andreas Fabri 0cb55dfd8d Use dynamic_property_map 2018-11-30 15:24:16 +08:00
Lingjie Zhu 22661170f8 remove unnecessary get_ helper functions 2018-11-30 15:24:16 +08:00
Lingjie Zhu 05bcc6b0c6 rebase: fix named parameter compile error
error c2953: class template has already been defined
after rebase: property_map_selector/get_property_map/get_const_property_map
has already been defined in CGAL/boost/graph/named_function_params.h
2018-11-30 15:24:16 +08:00
Lingjie Zhu a3c5432ad0 doc: add workflow figure
rename relaxation.png to iterations.png
clarify relaxation in seeding
fix typos
2018-11-30 15:24:16 +08:00
Lingjie Zhu 52da6dbb12 subdivision with relative/absolute error options 2018-11-30 15:24:16 +08:00
Lingjie Zhu 30351b0bbb doc: update named parameters 2018-11-30 15:24:16 +08:00
Lingjie Zhu 2540672e3d doc: update operations 2018-11-30 15:24:16 +08:00
Lingjie Zhu 2d939eb2be fix fit
partition always writes to global facet proxy map
fit takes input proxies and write back, maybe not the global proxies(in split)
2018-11-30 15:24:16 +08:00
Lingjie Zhu 5734237ced split in confined area 2018-11-30 15:24:16 +08:00
Lingjie Zhu ca22427e42 partition and fitting tagged area
use tag to stop the partition flooding
partition/fitting range of proxies
2018-11-30 15:24:16 +08:00
Lingjie Zhu 58f5a58eb5 add proxy wrapper with index
mantain the index when addding/refitting/merging/teleporting
2018-11-30 15:24:16 +08:00
Lingjie Zhu 7d06955b2b make partition and fitting private
because they are always used together --> run(nb_iterations)
2018-11-30 15:24:16 +08:00
Lingjie Zhu 1a94e743ad vertex anchor map int -> std::size_t
anchor map value type int to std::size_t
general invalid tag
2018-11-30 15:24:16 +08:00
Lingjie Zhu e4ad5e4490 add number of proxies curve
add nb_proxies - error curve
curve description
error debug output
2018-11-30 15:24:16 +08:00
Lingjie Zhu 255e107942 remove init from named parameters 2018-11-30 15:24:16 +08:00
Lingjie Zhu 9c9cfc8f53 pulic compute_fitting_error 2018-11-30 15:24:16 +08:00
Lingjie Zhu af6a8a5df2 replace init with seeding 2018-11-30 15:24:16 +08:00
Lingjie Zhu b11b32e35e remove init_by_ interfaces 2018-11-30 15:24:16 +08:00
Lingjie Zhu fb794ec591 add reasonable default number of iterations 2018-11-30 15:24:16 +08:00
Lingjie Zhu fa81af898f named parameter
iterations -> nb_of_iterations
inner_iterations -> nb_of_relaxations
2018-11-30 15:24:16 +08:00
Pierre Alliez ed053b5f2c Minor improvement on comments. 2018-11-30 15:24:16 +08:00
Lingjie Zhu 8a1c9f9323 add vsa_mesh_segmentation with explicit segment map output 2018-11-30 15:24:16 +08:00
Lingjie Zhu 35f3cc6052 minor fixes 2018-11-30 15:24:16 +08:00
Lingjie Zhu 37b8d0fb0e patch 2018-11-30 15:24:16 +08:00
Lingjie Zhu 12f93c4beb better init 2018-11-30 15:24:16 +08:00
Lingjie Zhu 1880c3b517 better init
init_random with iterations
strict control of max_nb_proxies
2018-11-30 15:24:16 +08:00
Pierre Alliez a74afd3d2c minor changes in doc
adding TOFIX comments
2018-11-30 15:24:16 +08:00
Pierre Alliez e1f984c3bf named param anchor_vertex -> vertices 2018-11-30 15:24:16 +08:00
Lingjie Zhu 43dbe443aa delegate init_by_ to unified init 2018-11-30 15:24:16 +08:00
Lingjie Zhu eb0725afa1 use unified init in free function API 2018-11-30 15:24:16 +08:00
Lingjie Zhu b815906e14 unified init with two stop criteria
either/both/neither max_nb_proxies and/or min_error_drop specified
parameter check
implicit max number of proxies allowed num_faces/3
2018-11-30 15:24:16 +08:00
Andreas Fabri 82f429ee30 Replace std::map by boost::unordered_map to speed up. We can even do better with Dynamic_property_map 2018-11-30 15:24:16 +08:00
Lingjie Zhu 408bd0c1bd add private utility functions
surface facets shuffling
init from first facet
2018-11-30 15:24:16 +08:00
Lingjie Zhu 54a8a88e5d class API init
with max_nb_proxies and min_error_drop
better init_random
TODO: needs general init when both specified
2018-11-30 15:24:16 +08:00
Lingjie Zhu 7b6e1d2020 named parameter: both stop criteria can apply 2018-11-30 15:24:16 +08:00
Lingjie Zhu e09a512f36 named parameter
init_by_number/refine_until_proxies -> max_nb_proxies
init_by_error -> min_error_drop
2018-11-30 15:24:16 +08:00
Lingjie Zhu 2e6818e08c named parameter chord_subdivide to mesh_chord_error 2018-11-30 15:24:16 +08:00
Lingjie Zhu e42a120c8c add get_proxy_region 2018-11-30 15:24:16 +08:00
Lingjie Zhu 4e81f58d84 fix demo
cgal class naming convention
coherent if/for block style
new API
2018-11-30 15:24:16 +08:00
Lingjie Zhu 8f578ebd54 fix demo and test
to the new class/free function interface
scoped class/function/enum name
CGAL class naming convention
2018-11-30 15:24:16 +08:00
Lingjie Zhu 618891c53c fix scoped metric and class naming 2018-11-30 15:24:16 +08:00
Lingjie Zhu 9e4a7a98e2 fix class interface
scoped seeding enum
scoped class name
run_one_step to run
indexed triangle triplet representation
named parameter output_mesh() expects polyhedron pointer
2018-11-30 15:24:16 +08:00
Lingjie Zhu c8f38f2766 add separate mesh segmentation API 2018-11-30 15:24:16 +08:00
Lingjie Zhu e97786a4ea clarify examples of free function interface 2018-11-30 15:24:16 +08:00
Lingjie Zhu 362d61da87 ignore non-manifold in output polyhedron 2018-11-30 15:24:16 +08:00
Lingjie Zhu 950a0f3ca7 rename meshing to extract_mesh 2018-11-30 15:24:16 +08:00
Pierre Alliez a11d1b5bf1 VSA example: simpler naming 2018-11-30 15:24:16 +08:00
Lingjie Zhu 4bcb44f1d9 fix headers, c++11 scoped enum and cgal return 2018-11-30 15:24:16 +08:00
Lingjie Zhu 60ebaf8348 fix typos and headers 2018-11-30 15:24:16 +08:00
Pierre Alliez 915adc5060 VSA
horse mesh deleted
uniformize capitalization of file names
2018-11-30 15:24:16 +08:00
Lingjie Zhu dca5d62a26 replace in-class method enum with out-of-class enum 2018-11-30 15:24:16 +08:00
Lingjie Zhu 30340e9b74 update doc 2018-11-30 15:24:16 +08:00
Lingjie Zhu f7ddca3b07 free function API init with explicit method 2018-11-30 15:24:16 +08:00
Lingjie Zhu 7cbf80b02b rename initialization from seeding_by_x to init_by_x 2018-11-30 15:24:16 +08:00
Lingjie Zhu 523f2035a1 add run_to_converge with average interval 2018-11-30 15:24:16 +08:00
Lingjie Zhu f28ee88b70 add num_iterations parameter to teleportation 2018-11-30 15:24:16 +08:00
Lingjie Zhu 7f3e3818fd teleport by replacing instead of 'push and merge' 2018-11-30 15:24:16 +08:00
Lingjie Zhu 8ddf98ff93 change indexed triangle type to unsigned 2018-11-30 15:24:16 +08:00
Lingjie Zhu a4ef69a631 add package license 2018-11-30 15:24:16 +08:00
Lingjie Zhu f64968de0c fix warnings 2018-11-30 15:24:16 +08:00
Lingjie Zhu cbacf07fe6 improve named parameters 2018-11-30 15:24:16 +08:00
Lingjie Zhu 5db214812d uniform get functions 2018-11-30 15:24:16 +08:00
Lingjie Zhu 9270e88bb9 demo set metric and rebuild 2018-11-30 15:24:16 +08:00
Lingjie Zhu b1673ae350 add with area weighing template parameter to l21 metric 2018-11-30 15:24:16 +08:00
Lingjie Zhu 62bf713a35 demo with proxy debug 2018-11-30 15:24:16 +08:00
Lingjie Zhu 1dabf87cfe fix add proxy furthest 2018-11-30 15:24:16 +08:00
Lingjie Zhu 1c2da84e8c fix add proxies with zero error diffusion 2018-11-30 15:24:16 +08:00
Lingjie Zhu 3fd408f437 typo 2018-11-30 15:24:16 +08:00
Lingjie Zhu 9fd77a904f fix compute fitting error 2018-11-30 15:24:16 +08:00
Lingjie Zhu b4eead5e7b rename seeding method enumeration 2018-11-30 15:24:16 +08:00
Lingjie Zhu 27da4147c7 explicit proxy adding API 2018-11-30 15:24:16 +08:00
Lingjie Zhu c0313150c8 rename seeding by error 2018-11-30 15:24:16 +08:00
Lingjie Zhu bcb59d7db4 rearrange seeding by number 2018-11-30 15:24:16 +08:00
Lingjie Zhu e4428e2dd7 cleanup seeding by target error drop 2018-11-30 15:24:16 +08:00
Lingjie Zhu 8e1cd3a2df change enumeration swith to explicit seeding API 2018-11-30 15:24:16 +08:00
Lingjie Zhu bd3dcc8ebc simplify self-defined metric 2018-11-30 15:24:16 +08:00
Lingjie Zhu 8a923bcc8b rename facet proxy index map 2018-11-30 15:24:16 +08:00
Lingjie Zhu 2f6e3be1d8 remove Proxy template parameter in main class 2018-11-30 15:24:16 +08:00
Lingjie Zhu d7bb0e1a68 remove seed requirement from Proxy concept 2018-11-30 15:24:16 +08:00
Lingjie Zhu 1247d7dd86 add ProxyWrapper with seed and error, bundled ProxyPlane 2018-11-30 15:24:16 +08:00
Lingjie Zhu ce2db9860a fix demo meshing crash caused by duplicate insertion 2018-11-30 15:24:16 +08:00
Lingjie Zhu 2765827c5f add default and VertexPointMap type parameter 2018-11-30 15:24:16 +08:00
Lingjie Zhu e17de031de rename file and debug verbose 2018-11-30 15:24:16 +08:00
Lingjie Zhu 2f15e2fc13 fix named parameters doc 2018-11-30 15:24:16 +08:00
Lingjie Zhu a8b86837fb update doc 2018-11-30 15:24:16 +08:00
Lingjie Zhu 0c493de7fb fix MSVS warning 2018-11-30 15:24:16 +08:00
Lingjie Zhu f1644829da fix subdivide chord parameter 2018-11-30 15:24:16 +08:00
Lingjie Zhu dd46cf820f fix initializer list order warning 2018-11-30 15:24:16 +08:00
Lingjie Zhu b749a57a40 fix teleport 2018-11-30 15:24:16 +08:00
Lingjie Zhu 77a7ba0b94 fix missing header 2018-11-30 15:24:16 +08:00
Lingjie Zhu 5348557e74 fix merge return 2018-11-30 15:24:16 +08:00
Lingjie Zhu cbcac2c8d8 fix split test 2018-11-30 15:24:16 +08:00
Lingjie Zhu 47fdf5e3e3 ouput polyhedron mesh 2018-11-30 15:24:16 +08:00
Lingjie Zhu 8665e5d830 rename file 2018-11-30 15:24:16 +08:00
Lingjie Zhu 480a254889 fix free function to new metrics 2018-11-30 15:24:16 +08:00
Lingjie Zhu 24bf94f576 add VertexPointMap parameter to built in metrics 2018-11-30 15:24:16 +08:00
Lingjie Zhu 45fae1b300 reduce build-in metric template parameters 2018-11-30 15:24:16 +08:00
Lingjie Zhu 9cef351b45 partition candidate with constructor 2018-11-30 15:24:16 +08:00
Lingjie Zhu 6556f504a2 move plane fitting into main class 2018-11-30 15:24:16 +08:00
Lingjie Zhu aef32f37a4 fix compile issues 2018-11-30 15:24:16 +08:00
Lingjie Zhu 85a026f0a7 fix init_proxies_error proxies clear 2018-11-30 15:24:16 +08:00
Lingjie Zhu bdd2d19626 make find best merge public 2018-11-30 15:24:16 +08:00
Lingjie Zhu faf86f642e add get proxy size function 2018-11-30 15:24:16 +08:00
Lingjie Zhu 4659c7bb08 add init proxies from target error drop 2018-11-30 15:24:16 +08:00
Lingjie Zhu 0e7918b9b8 fix run until convergence 2018-11-30 15:24:16 +08:00
Lingjie Zhu aaf59f7066 remove VSA.h 2018-11-30 15:24:16 +08:00
Lingjie Zhu 55fff6149d add named parameters 2018-11-30 15:24:16 +08:00
Lingjie Zhu 345d6de1f8 add output named parameters 2018-11-30 15:24:16 +08:00
Lingjie Zhu 0b843c805f use output iterator to get output 2018-11-30 15:24:16 +08:00
Lingjie Zhu 099d52d792 add named params helper 2018-11-30 15:24:16 +08:00
Lingjie Zhu 495683a786 add simple named parameter test 2018-11-30 15:24:16 +08:00
Lingjie Zhu 22f6cc5ea9 add free function api 2018-11-30 15:24:16 +08:00
Lingjie Zhu 68044a6ede add named function parameters 2018-11-30 15:24:16 +08:00
Lingjie Zhu c137f3c832 subdivide_chord cleanup 2018-11-30 15:24:16 +08:00
Lingjie Zhu 27a384ec96 fix compute anchor position 2018-11-30 15:24:16 +08:00
Lingjie Zhu cd44aa6d5a fix trivial circular chord subdivision crash 2018-11-30 15:24:16 +08:00
Lingjie Zhu 703513cef2 main class cleanup 2018-11-30 15:24:16 +08:00
Lingjie Zhu b8f10eaee2 fix class interface meshing clear 2018-11-30 15:24:16 +08:00
Lingjie Zhu 456a46fbb1 main class default constructor and functer pointer member 2018-11-30 15:24:16 +08:00
Lingjie Zhu 963a91c00c ErrorMetric/ProxyFitting default constructable and mesh pointer member 2018-11-30 15:24:16 +08:00
Lingjie Zhu 67bd91e81d demo algorithm instance member 2018-11-30 15:24:16 +08:00
Lingjie Zhu 11af8197a2 class interface add inner iteration 2018-11-30 15:24:16 +08:00
Lingjie Zhu b965ad45ca class interface keeps a pointer to const mesh 2018-11-30 15:24:16 +08:00
Lingjie Zhu b7870fb39c add class interface get functions 2018-11-30 15:24:16 +08:00
Lingjie Zhu 8cdd5ab192 fix class interface example 2018-11-30 15:24:16 +08:00
Lingjie Zhu 48af7be987 add class interface example 2018-11-30 15:24:16 +08:00
Lingjie Zhu 64fe7ceec8 class interface mesh extraction 2018-11-30 15:24:16 +08:00
Lingjie Zhu 6e35c861fd class interface insert_proxy_furthest 2018-11-30 15:24:16 +08:00
Lingjie Zhu 1c6493e0d9 class interface teleport_proxies 2018-11-30 15:24:16 +08:00
Lingjie Zhu 21cbdfacaf add initial class interface 2018-11-30 15:24:16 +08:00
Lingjie Zhu b5525e73cb work on documentation 2018-11-30 15:24:16 +08:00
Lingjie Zhu 86e5adeb0a work on documentation 2018-11-30 15:24:16 +08:00
Lingjie Zhu 96180101ac fix concepts 2018-11-30 15:24:16 +08:00
Lingjie Zhu 4cf7bf4e4b fix local class as template parameter 2018-11-30 15:24:16 +08:00
Lingjie Zhu 2fb094809e remove redundtant template parameter 2018-11-30 15:24:16 +08:00
Lingjie Zhu 7f3bd4ee60 add default VertexPointMap 2018-11-30 15:24:16 +08:00
Lingjie Zhu 3bf0bdf07f remove explicit proxy template parameter 2018-11-30 15:24:16 +08:00
Lingjie Zhu 1cc9c4ab8b change metric and fitting template parameters 2018-11-30 15:24:16 +08:00
Lingjie Zhu 475b329b70 remove ApproximationTraits 2018-11-30 15:24:16 +08:00
Lingjie Zhu 07ce5d46dd remove ApproximationTraits in API 2018-11-30 15:24:16 +08:00
Lingjie Zhu 3bdf6528e7 remote ApproximationTraits from vsa_approximate 2018-11-30 15:24:16 +08:00
Lingjie Zhu 5036a77e85 add Proxy typename in ErrorMetric and ProxyFitting 2018-11-30 15:24:16 +08:00
Lingjie Zhu 6eb9659b83 add const qualifier to functors 2018-11-30 15:24:16 +08:00
Lingjie Zhu b2ce689f7f remove approximation traits from main class 2018-11-30 15:24:16 +08:00
Lingjie Zhu 86a8970d83 add teleport to random initialization 2018-11-30 15:24:16 +08:00
Lingjie Zhu d7e0aca3a3 add overload of fit_new_proxy function 2018-11-30 15:24:16 +08:00
Lingjie Zhu 5cd4066bb9 fix missing typename 2018-11-30 15:24:16 +08:00
Lingjie Zhu 15d3e9d6eb add defaults to VSA_mesh_extraction 2018-11-30 15:24:16 +08:00
Lingjie Zhu 6a95dce604 remove point map in L21 approximation traits 2018-11-30 15:24:16 +08:00
Lingjie Zhu 2bd26c93fe remove redundant template parameters 2018-11-30 15:24:16 +08:00
Lingjie Zhu 0f604cd58d remove seed update in proxy fitting 2018-11-30 15:24:16 +08:00
Lingjie Zhu afc8fadd33 cleanup compact metric 2018-11-30 15:24:16 +08:00
Lingjie Zhu f4c40b1244 separate plane fitting from approximation traits 2018-11-30 15:24:16 +08:00
Lingjie Zhu f958f5616b simplify PCAPlaneFitting 2018-11-30 15:24:16 +08:00
Lingjie Zhu c0b84cd0b8 simplify PlaneFitting 2018-11-30 15:24:16 +08:00
Lingjie Zhu 92c479921b add default L21 metric API 2018-11-30 15:24:16 +08:00
Lingjie Zhu e07db9f714 rename API 2018-11-30 15:24:16 +08:00
Lingjie Zhu cd4cb878c8 use dependent overload 2018-11-30 15:24:16 +08:00
Lingjie Zhu b456bd596f fix indent 2018-11-30 15:24:16 +08:00
Lingjie Zhu 0342f1ec5b add overload simplified API 2018-11-30 15:24:16 +08:00
Lingjie Zhu afedf5dd04 remove facet area map in API 2018-11-30 15:24:16 +08:00
Lingjie Zhu 46c1b5e520 remove proxy dependency of mesh extraction 2018-11-30 15:24:16 +08:00
Lingjie Zhu 7ddfeb5c72 remove irrelevant typedefs 2018-11-30 15:24:16 +08:00
Lingjie Zhu cc88b2bc36 remove GeomTraits template parameter 2018-11-30 15:24:16 +08:00
Lingjie Zhu e0317d4678 rename 2018-11-30 15:24:16 +08:00
Lingjie Zhu f708fe81c1 separate approximation and mesh extraction class 2018-11-30 15:24:16 +08:00
Lingjie Zhu 75d0b80288 add VSA_mesh_extraction class 2018-11-30 15:24:16 +08:00
Lingjie Zhu 3a67c0081c cleanup main class VSA header 2018-11-30 15:24:16 +08:00