fc tel meeting

This commit is contained in:
Marc Pouget 2006-10-27 14:37:28 +00:00
parent 4ab92e6bda
commit 0f75ee17eb
10 changed files with 92 additions and 607 deletions

2
.gitattributes vendored
View File

@ -724,7 +724,7 @@ Jet_fitting_3/demo/Jet_fitting_3/data/ellipe0.003.off -text svneol=unset#applica
Jet_fitting_3/doc_tex/AIDE -text Jet_fitting_3/doc_tex/AIDE -text
Jet_fitting_3/doc_tex/Jet_fitting_3/Maple_formula.mw -text svneol=unset#application/octet-stream Jet_fitting_3/doc_tex/Jet_fitting_3/Maple_formula.mw -text svneol=unset#application/octet-stream
Jet_fitting_3/doc_tex/Jet_fitting_3/david-dirmaxkmin-jpg-white-back.eps -text svneol=unset#application/postscript Jet_fitting_3/doc_tex/Jet_fitting_3/david-dirmaxkmin-jpg-white-back.eps -text svneol=unset#application/postscript
Jet_fitting_3/doc_tex/Jet_fitting_3/david-dirmaxkmin-jpg-white-back.pdf -text svneol=unset#application/pdf Jet_fitting_3/doc_tex/Jet_fitting_3/david-dirmaxkmin-jpg-white-back.png -text svneol=unset#image/png
Jet_fitting_3/doc_tex/Jet_fitting_3/david-dirmaxkmin-white-back.jpg -text svneol=unset#image/jpeg Jet_fitting_3/doc_tex/Jet_fitting_3/david-dirmaxkmin-white-back.jpg -text svneol=unset#image/jpeg
Jet_fitting_3/doc_tex/Jet_fitting_3/jet_fitting_basis.eps -text svneol=unset#application/postscript Jet_fitting_3/doc_tex/Jet_fitting_3/jet_fitting_basis.eps -text svneol=unset#application/postscript
Jet_fitting_3/doc_tex/Jet_fitting_3/jet_fitting_basis.gif -text svneol=unset#image/gif Jet_fitting_3/doc_tex/Jet_fitting_3/jet_fitting_basis.gif -text svneol=unset#image/gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 826 KiB

View File

@ -37,8 +37,6 @@ Surfaces via Polynomial Fitting}
\ccRequirements \ccRequirements
This has no meaning if we do the nest!!!!!!!!!
The two classes \ccc{Monge_form} and The two classes \ccc{Monge_form} and
\ccc{Monge_via_jet_fitting} are designed to be used \ccc{Monge_via_jet_fitting} are designed to be used
simultaneously. simultaneously.

View File

@ -258,10 +258,10 @@ int main(int argc, char *argv[])
{std::cerr << "not enough pts for fitting this vertex" << in_points.size() << std::endl; {std::cerr << "not enough pts for fitting this vertex" << in_points.size() << std::endl;
continue;} continue;}
// run the main fct : perform the fitting // perform the fitting
My_Monge_via_jet_fitting do_it(in_points.begin(), in_points.end(), My_Monge_via_jet_fitting monge_fit;
d_fitting, d_monge, monge_form); monge_form = monge_fit(in_points.begin(), in_points.end(),
d_fitting, d_monge);
//switch min-max ppal curv/dir wrt the mesh orientation //switch min-max ppal curv/dir wrt the mesh orientation
const DVector normal_mesh = Poly_facet_ops::compute_vertex_average_unit_normal(v, fpm); const DVector normal_mesh = Poly_facet_ops::compute_vertex_average_unit_normal(v, fpm);
monge_form.comply_wrt_given_normal(normal_mesh); monge_form.comply_wrt_given_normal(normal_mesh);

View File

@ -39,52 +39,25 @@ int main(int argc, char *argv[])
//initalize the in_points container //initalize the in_points container
double x, y, z; double x, y, z;
std::vector<DPoint> in_points; std::vector<DPoint> in_points;
while (inFile) { while (inFile >> x) {
inFile >> x >> y >> z; inFile >> y >> z;
DPoint p(x,y,z); DPoint p(x,y,z);
in_points.push_back(p); in_points.push_back(p);
} }
in_points.pop_back();//the last point is inserted twice.. to fix!
inFile.close(); inFile.close();
for (size_t j=0;j<in_points.size();j++)
std::cout << in_points[j] << std::endl ;
// fct parameters // fct parameters
size_t d_fitting = std::atoi(argv[2]); size_t d_fitting = std::atoi(argv[2]);
size_t d_monge = std::atoi(argv[3]); size_t d_monge = std::atoi(argv[3]);
My_Monge_form monge_form;
//run the main fct
// My_Monge_via_jet_fitting monge_fit(in_points.begin(), in_points.end(),
// d_fitting, d_monge,
// monge_form);
My_Monge_via_jet_fitting monge_fit; My_Monge_form monge_form;
// monge_form = monge_fit()(in_points.begin(), in_points.end(), d_fitting, d_monge); My_Monge_via_jet_fitting monge_fit;
//monge_form = monge_fit.run(in_points.begin(), in_points.end(), d_fitting, d_monge); monge_form = monge_fit(in_points.begin(), in_points.end(), d_fitting, d_monge);
monge_form = monge_fit(in_points.begin(), in_points.end(), d_fitting, d_monge);
//OUTPUT on std::cout //OUTPUT on std::cout
CGAL::set_pretty_mode(std::cout); CGAL::set_pretty_mode(std::cout);
std::cout << "vertex : " << in_points[0] << std::endl std::cout << "vertex : " << in_points[0] << std::endl
<< "number of points used : " << in_points.size() << std::endl << "number of points used : " << in_points.size() << std::endl
<< monge_form; << monge_form;
std::cout << "check new access fct" << std::endl;
if ( monge_form.coefficients().size() >= 2)
std::cout << "d1 : " << monge_form.maximal_principal_direction() << std::endl
<< "d2 : " << monge_form.minimal_principal_direction() << std::endl
<< "k1 : " << monge_form.principal_curvatures(0) << std::endl
<< "k2 : " << monge_form.principal_curvatures(1) << std::endl;
if ( monge_form.coefficients().size() >= 6)
std::cout << "b0 : " << monge_form.third_order_coefficients(0) << std::endl
<< "b1 : " << monge_form.third_order_coefficients(1) << std::endl
<< "b2 : " << monge_form.third_order_coefficients(2) << std::endl
<< "b3 : " << monge_form.third_order_coefficients(3) << std::endl;
if ( monge_form.coefficients().size() >= 11)
std::cout << "c0 : " << monge_form.fourth_order_coefficients(0) << std::endl
<< "c1 : " << monge_form.fourth_order_coefficients(1) << std::endl
<< "c2 : " << monge_form.fourth_order_coefficients(2) << std::endl
<< "c3 : " << monge_form.fourth_order_coefficients(3) << std::endl
<< "c4 : " << monge_form.fourth_order_coefficients(4) << std::endl;
std::cout << "condition_number : " << monge_fit.condition_number() << std::endl std::cout << "condition_number : " << monge_fit.condition_number() << std::endl
<< "pca_eigen_vals and associated pca_eigen_vecs :" << std::endl; << "pca_eigen_vals and associated pca_eigen_vecs :" << std::endl;
for (int i=0; i<3; i++) for (int i=0; i<3; i++)

View File

@ -25,15 +25,15 @@ CXXFLAGS = \
# linker flags # linker flags
#---------------------------------------------------------------------# #---------------------------------------------------------------------#
#this gives linking problems?? so i use the other #this gives linking problems?? so i use the other
LAPACK_LDLIBS = -L$(LAPACK_DIR) -L$(LAPACK_DIR)/F2CLIBS \ #LAPACK_LDLIBS = -L$(LAPACK_DIR) -L$(LAPACK_DIR)/F2CLIBS \
-llapack_LINUX \ # -llapack_LINUX \
-lblas_LINUX -ltmglib_LINUX \ # -lblas_LINUX -ltmglib_LINUX \
-lF77 -lI77 -lm -lc # -lF77 -lI77 -lm -lc
F2CDIR = $(LAPACK_DIR)/F2CLIBS F2CDIR = $(LAPACK_DIR)/F2CLIBS
#LAPACK_LDLIBS = $(LAPACK_DIR)/lapack_LINUX.a \ LAPACK_LDLIBS = $(LAPACK_DIR)/lapack_LINUX.a \
# $(LAPACK_DIR)/blas_LINUX.a \ $(LAPACK_DIR)/blas_LINUX.a \
# $(F2CDIR)/libF77.a $(F2CDIR)/libI77.a -lm -lc $(F2CDIR)/libF77.a $(F2CDIR)/libI77.a -lm -lc
## it should not be needed $(LAPACK_DIR)/tmglib_LINUX.a \ ## it should not be needed $(LAPACK_DIR)/tmglib_LINUX.a \
LIBPATH = \ LIBPATH = \
@ -76,440 +76,15 @@ depend:
# DO NOT DELETE # DO NOT DELETE
blind_1pt.o: /usr/include/stdio.h /usr/include/features.h PolyhedralSurf.o: /usr/include/stdlib.h /usr/include/sys/cdefs.h
blind_1pt.o: /usr/include/sys/cdefs.h /usr/include/gnu/stubs.h PolyhedralSurf.o: /usr/include/_types.h /usr/include/sys/_types.h
blind_1pt.o: /usr/lib/gcc/i386-redhat-linux/3.4.4/include/stddef.h PolyhedralSurf.o: /usr/include/machine/_types.h /usr/include/i386/_types.h
blind_1pt.o: /usr/include/bits/types.h /usr/include/bits/wordsize.h PolyhedralSurf.o: /usr/include/sys/wait.h /usr/include/sys/signal.h
blind_1pt.o: /usr/include/bits/typesizes.h /usr/include/libio.h PolyhedralSurf.o: /usr/include/sys/appleapiopts.h
blind_1pt.o: /usr/include/_G_config.h /usr/include/wchar.h PolyhedralSurf.o: /usr/include/machine/signal.h /usr/include/i386/signal.h
blind_1pt.o: /usr/include/bits/wchar.h /usr/include/gconv.h PolyhedralSurf.o: /usr/include/sys/resource.h /usr/include/machine/endian.h
blind_1pt.o: /usr/lib/gcc/i386-redhat-linux/3.4.4/include/stdarg.h PolyhedralSurf.o: /usr/include/i386/endian.h /usr/include/sys/_endian.h
blind_1pt.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h PolyhedralSurf.o: /usr/include/stdint.h /usr/include/libkern/OSByteOrder.h
blind_1pt.o: /usr/include/stdlib.h PolyhedralSurf.o: /usr/include/libkern/i386/OSByteOrder.h
blind.o: /usr/include/stdio.h /usr/include/features.h PolyhedralSurf.o: /usr/include/alloca.h /usr/include/machine/types.h
blind.o: /usr/include/sys/cdefs.h /usr/include/gnu/stubs.h PolyhedralSurf.o: /usr/include/i386/types.h /usr/include/stdio.h
blind.o: /usr/lib/gcc/i386-redhat-linux/3.4.4/include/stddef.h
blind.o: /usr/include/bits/types.h /usr/include/bits/wordsize.h
blind.o: /usr/include/bits/typesizes.h /usr/include/libio.h
blind.o: /usr/include/_G_config.h /usr/include/wchar.h
blind.o: /usr/include/bits/wchar.h /usr/include/gconv.h
blind.o: /usr/lib/gcc/i386-redhat-linux/3.4.4/include/stdarg.h
blind.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h
blind.o: /usr/include/stdlib.h /usr/include/boost/property_map.hpp
blind.o: /usr/include/boost/config.hpp /usr/include/boost/config/user.hpp
blind.o: /usr/include/boost/config/select_compiler_config.hpp
blind.o: /usr/include/boost/config/compiler/gcc.hpp
blind.o: /usr/include/boost/config/select_stdlib_config.hpp
blind.o: /usr/include/boost/config/select_platform_config.hpp
blind.o: /usr/include/boost/config/suffix.hpp /usr/include/limits.h
blind.o: /usr/lib/gcc/i386-redhat-linux/3.4.4/include/limits.h
blind.o: /usr/include/boost/pending/cstddef.hpp
blind.o: /usr/include/boost/detail/iterator.hpp /usr/include/boost/config.hpp
blind.o: /usr/include/boost/concept_check.hpp /usr/include/boost/iterator.hpp
blind.o: /usr/include/boost/type_traits/conversion_traits.hpp
blind.o: /usr/include/boost/type_traits/is_convertible.hpp
blind.o: /usr/include/boost/type_traits/detail/yes_no_type.hpp
blind.o: /usr/include/boost/type_traits/config.hpp
blind.o: /usr/include/boost/type_traits/is_array.hpp
blind.o: /usr/include/boost/type_traits/detail/bool_trait_def.hpp
blind.o: /usr/include/boost/type_traits/detail/template_arity_spec.hpp
blind.o: /usr/include/boost/mpl/int.hpp /usr/include/boost/mpl/int_fwd.hpp
blind.o: /usr/include/boost/mpl/aux_/adl_barrier.hpp
blind.o: /usr/include/boost/mpl/aux_/config/adl.hpp
blind.o: /usr/include/boost/mpl/aux_/config/msvc.hpp
blind.o: /usr/include/boost/mpl/aux_/config/intel.hpp
blind.o: /usr/include/boost/mpl/aux_/config/gcc.hpp
blind.o: /usr/include/boost/mpl/aux_/config/workaround.hpp
blind.o: /usr/include/boost/detail/workaround.hpp
blind.o: /usr/include/boost/mpl/aux_/nttp_decl.hpp
blind.o: /usr/include/boost/mpl/aux_/config/nttp.hpp
blind.o: /usr/include/boost/preprocessor/cat.hpp
blind.o: /usr/include/boost/preprocessor/config/config.hpp
blind.o: /usr/include/boost/mpl/aux_/integral_wrapper.hpp
blind.o: /usr/include/boost/mpl/integral_c_tag.hpp
blind.o: /usr/include/boost/mpl/aux_/config/static_constant.hpp
blind.o: /usr/include/boost/mpl/aux_/static_cast.hpp
blind.o: /usr/include/boost/mpl/aux_/template_arity_fwd.hpp
blind.o: /usr/include/boost/mpl/aux_/preprocessor/params.hpp
blind.o: /usr/include/boost/mpl/aux_/config/preprocessor.hpp
blind.o: /usr/include/boost/preprocessor/comma_if.hpp
blind.o: /usr/include/boost/preprocessor/punctuation/comma_if.hpp
blind.o: /usr/include/boost/preprocessor/control/if.hpp
blind.o: /usr/include/boost/preprocessor/control/iif.hpp
blind.o: /usr/include/boost/preprocessor/logical/bool.hpp
blind.o: /usr/include/boost/preprocessor/facilities/empty.hpp
blind.o: /usr/include/boost/preprocessor/punctuation/comma.hpp
blind.o: /usr/include/boost/preprocessor/repeat.hpp
blind.o: /usr/include/boost/preprocessor/repetition/repeat.hpp
blind.o: /usr/include/boost/preprocessor/debug/error.hpp
blind.o: /usr/include/boost/preprocessor/detail/auto_rec.hpp
blind.o: /usr/include/boost/preprocessor/tuple/eat.hpp
blind.o: /usr/include/boost/preprocessor/inc.hpp
blind.o: /usr/include/boost/preprocessor/arithmetic/inc.hpp
blind.o: /usr/include/boost/mpl/aux_/config/lambda.hpp
blind.o: /usr/include/boost/mpl/aux_/config/ttp.hpp
blind.o: /usr/include/boost/mpl/aux_/config/ctps.hpp
blind.o: /usr/include/boost/mpl/aux_/config/overload_resolution.hpp
blind.o: /usr/include/boost/mpl/bool.hpp /usr/include/boost/mpl/bool_fwd.hpp
blind.o: /usr/include/boost/mpl/aux_/lambda_support.hpp
blind.o: /usr/include/boost/type_traits/detail/bool_trait_undef.hpp
blind.o: /usr/include/boost/type_traits/add_reference.hpp
blind.o: /usr/include/boost/type_traits/is_reference.hpp
blind.o: /usr/include/boost/type_traits/detail/type_trait_def.hpp
blind.o: /usr/include/boost/type_traits/detail/type_trait_undef.hpp
blind.o: /usr/include/boost/type_traits/ice.hpp
blind.o: /usr/include/boost/type_traits/detail/ice_or.hpp
blind.o: /usr/include/boost/type_traits/detail/ice_and.hpp
blind.o: /usr/include/boost/type_traits/detail/ice_not.hpp
blind.o: /usr/include/boost/type_traits/detail/ice_eq.hpp
blind.o: /usr/include/boost/static_assert.hpp
blind.o: /usr/include/boost/mpl/identity.hpp
blind.o: /usr/include/boost/mpl/aux_/na_spec.hpp
blind.o: /usr/include/boost/mpl/lambda_fwd.hpp
blind.o: /usr/include/boost/mpl/void_fwd.hpp
blind.o: /usr/include/boost/mpl/aux_/na.hpp
blind.o: /usr/include/boost/mpl/aux_/na_fwd.hpp
blind.o: /usr/include/boost/mpl/aux_/lambda_arity_param.hpp
blind.o: /usr/include/boost/mpl/aux_/arity.hpp
blind.o: /usr/include/boost/mpl/aux_/config/dtp.hpp
blind.o: /usr/include/boost/mpl/aux_/preprocessor/enum.hpp
blind.o: /usr/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp
blind.o: /usr/include/boost/mpl/limits/arity.hpp
blind.o: /usr/include/boost/preprocessor/logical/and.hpp
blind.o: /usr/include/boost/preprocessor/logical/bitand.hpp
blind.o: /usr/include/boost/preprocessor/identity.hpp
blind.o: /usr/include/boost/preprocessor/facilities/identity.hpp
blind.o: /usr/include/boost/preprocessor/empty.hpp
blind.o: /usr/include/boost/preprocessor/arithmetic/add.hpp
blind.o: /usr/include/boost/preprocessor/arithmetic/dec.hpp
blind.o: /usr/include/boost/preprocessor/control/while.hpp
blind.o: /usr/include/boost/preprocessor/list/fold_left.hpp
blind.o: /usr/include/boost/preprocessor/list/detail/fold_left.hpp
blind.o: /usr/include/boost/preprocessor/control/expr_iif.hpp
blind.o: /usr/include/boost/preprocessor/list/adt.hpp
blind.o: /usr/include/boost/preprocessor/detail/is_binary.hpp
blind.o: /usr/include/boost/preprocessor/detail/check.hpp
blind.o: /usr/include/boost/preprocessor/logical/compl.hpp
blind.o: /usr/include/boost/preprocessor/list/fold_right.hpp
blind.o: /usr/include/boost/preprocessor/list/detail/fold_right.hpp
blind.o: /usr/include/boost/preprocessor/list/reverse.hpp
blind.o: /usr/include/boost/preprocessor/control/detail/while.hpp
blind.o: /usr/include/boost/preprocessor/tuple/elem.hpp
blind.o: /usr/include/boost/preprocessor/arithmetic/sub.hpp
blind.o: /usr/include/boost/mpl/aux_/config/eti.hpp
blind.o: /usr/include/boost/concept_archetype.hpp PolyhedralSurf.h
blind.o: /usr/include/boost/graph/properties.hpp
blind.o: /usr/include/boost/pending/property.hpp
blind.o: /usr/include/boost/pending/ct_if.hpp
blind.o: /usr/include/boost/pending/detail/property.hpp
blind.o: /usr/include/boost/type_traits/same_traits.hpp
blind.o: /usr/include/boost/type_traits/is_same.hpp
blind.o: /usr/include/boost/graph/graph_traits.hpp
blind.o: /usr/include/boost/tuple/tuple.hpp /usr/include/boost/ref.hpp
blind.o: /usr/include/boost/utility/addressof.hpp
blind.o: /usr/include/boost/tuple/detail/tuple_basic.hpp
blind.o: /usr/include/boost/type_traits/cv_traits.hpp
blind.o: /usr/include/boost/type_traits/add_const.hpp
blind.o: /usr/include/boost/type_traits/add_volatile.hpp
blind.o: /usr/include/boost/type_traits/add_cv.hpp
blind.o: /usr/include/boost/type_traits/is_const.hpp
blind.o: /usr/include/boost/type_traits/detail/cv_traits_impl.hpp
blind.o: /usr/include/boost/type_traits/is_volatile.hpp
blind.o: /usr/include/boost/type_traits/remove_const.hpp
blind.o: /usr/include/boost/type_traits/broken_compiler_spec.hpp
blind.o: /usr/include/boost/type_traits/remove_volatile.hpp
blind.o: /usr/include/boost/type_traits/remove_cv.hpp
blind.o: /usr/include/boost/type_traits/function_traits.hpp
blind.o: /usr/include/boost/type_traits/is_function.hpp
blind.o: /usr/include/boost/type_traits/detail/false_result.hpp
blind.o: /usr/include/boost/type_traits/detail/is_function_ptr_helper.hpp
blind.o: /usr/include/boost/type_traits/add_pointer.hpp
blind.o: /usr/include/boost/type_traits/remove_reference.hpp
blind.o: /usr/include/boost/iterator/iterator_categories.hpp
blind.o: /usr/include/boost/iterator/detail/config_def.hpp
blind.o: /usr/include/boost/mpl/eval_if.hpp /usr/include/boost/mpl/if.hpp
blind.o: /usr/include/boost/mpl/aux_/value_wknd.hpp
blind.o: /usr/include/boost/mpl/aux_/config/integral.hpp
blind.o: /usr/include/boost/mpl/placeholders.hpp
blind.o: /usr/include/boost/mpl/arg.hpp /usr/include/boost/mpl/arg_fwd.hpp
blind.o: /usr/include/boost/mpl/aux_/na_assert.hpp
blind.o: /usr/include/boost/mpl/aux_/arity_spec.hpp
blind.o: /usr/include/boost/mpl/aux_/arg_typedef.hpp
blind.o: /usr/include/boost/mpl/aux_/config/use_preprocessed.hpp
blind.o: /usr/include/boost/mpl/aux_/include_preprocessed.hpp
blind.o: /usr/include/boost/mpl/aux_/config/compiler.hpp
blind.o: /usr/include/boost/preprocessor/stringize.hpp
blind.o: /usr/include/boost/iterator/detail/config_undef.hpp
blind.o: /usr/include/boost/iterator/iterator_adaptor.hpp
blind.o: /usr/include/boost/iterator/iterator_facade.hpp
blind.o: /usr/include/boost/iterator/interoperable.hpp
blind.o: /usr/include/boost/mpl/or.hpp
blind.o: /usr/include/boost/mpl/aux_/nested_type_wknd.hpp
blind.o: /usr/include/boost/iterator/iterator_traits.hpp
blind.o: /usr/include/boost/iterator/detail/facade_iterator_category.hpp
blind.o: /usr/include/boost/mpl/and.hpp
blind.o: /usr/include/boost/detail/indirect_traits.hpp
blind.o: /usr/include/boost/type_traits/is_pointer.hpp
blind.o: /usr/include/boost/type_traits/is_member_pointer.hpp
blind.o: /usr/include/boost/type_traits/is_member_function_pointer.hpp
blind.o: /usr/include/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp
blind.o: /usr/include/boost/type_traits/is_class.hpp
blind.o: /usr/include/boost/type_traits/is_union.hpp
blind.o: /usr/include/boost/type_traits/intrinsics.hpp
blind.o: /usr/include/boost/type_traits/remove_pointer.hpp
blind.o: /usr/include/boost/mpl/not.hpp
blind.o: /usr/include/boost/iterator/detail/enable_if.hpp
blind.o: /usr/include/boost/type_traits/is_pod.hpp
blind.o: /usr/include/boost/type_traits/is_void.hpp
blind.o: /usr/include/boost/type_traits/is_scalar.hpp
blind.o: /usr/include/boost/type_traits/is_arithmetic.hpp
blind.o: /usr/include/boost/type_traits/is_integral.hpp
blind.o: /usr/include/boost/type_traits/is_float.hpp
blind.o: /usr/include/boost/type_traits/is_enum.hpp
blind.o: /usr/include/boost/mpl/always.hpp /usr/include/boost/mpl/apply.hpp
blind.o: /usr/include/boost/mpl/apply_fwd.hpp
blind.o: /usr/include/boost/mpl/apply_wrap.hpp
blind.o: /usr/include/boost/mpl/aux_/has_apply.hpp
blind.o: /usr/include/boost/mpl/has_xxx.hpp
blind.o: /usr/include/boost/mpl/aux_/type_wrapper.hpp
blind.o: /usr/include/boost/mpl/aux_/yes_no.hpp
blind.o: /usr/include/boost/mpl/aux_/config/arrays.hpp
blind.o: /usr/include/boost/mpl/aux_/config/has_xxx.hpp
blind.o: /usr/include/boost/mpl/aux_/config/msvc_typename.hpp
blind.o: /usr/include/boost/mpl/aux_/config/has_apply.hpp
blind.o: /usr/include/boost/mpl/aux_/msvc_never_true.hpp
blind.o: /usr/include/boost/mpl/lambda.hpp /usr/include/boost/mpl/bind.hpp
blind.o: /usr/include/boost/mpl/bind_fwd.hpp
blind.o: /usr/include/boost/mpl/aux_/config/bind.hpp
blind.o: /usr/include/boost/mpl/next.hpp
blind.o: /usr/include/boost/mpl/next_prior.hpp
blind.o: /usr/include/boost/mpl/aux_/common_name_wknd.hpp
blind.o: /usr/include/boost/mpl/protect.hpp
blind.o: /usr/include/boost/mpl/aux_/full_lambda.hpp
blind.o: /usr/include/boost/mpl/quote.hpp /usr/include/boost/mpl/void.hpp
blind.o: /usr/include/boost/mpl/aux_/has_type.hpp
blind.o: /usr/include/boost/mpl/aux_/template_arity.hpp
blind.o: PolyhedralSurf_operations.h PolyhedralSurf_rings.h options.h
options.o: /usr/include/ctype.h /usr/include/features.h
options.o: /usr/include/sys/cdefs.h /usr/include/gnu/stubs.h
options.o: /usr/include/bits/types.h /usr/include/bits/wordsize.h
options.o: /usr/lib/gcc/i386-redhat-linux/3.4.4/include/stddef.h
options.o: /usr/include/bits/typesizes.h /usr/include/endian.h
options.o: /usr/include/bits/endian.h /usr/include/string.h options.h
PolyhedralSurf.o: PolyhedralSurf.h /usr/include/boost/property_map.hpp
PolyhedralSurf.o: /usr/include/boost/config.hpp
PolyhedralSurf.o: /usr/include/boost/config/user.hpp
PolyhedralSurf.o: /usr/include/boost/config/select_compiler_config.hpp
PolyhedralSurf.o: /usr/include/boost/config/compiler/gcc.hpp
PolyhedralSurf.o: /usr/include/boost/config/select_stdlib_config.hpp
PolyhedralSurf.o: /usr/include/boost/config/select_platform_config.hpp
PolyhedralSurf.o: /usr/include/boost/config/suffix.hpp /usr/include/limits.h
PolyhedralSurf.o: /usr/include/features.h /usr/include/sys/cdefs.h
PolyhedralSurf.o: /usr/include/gnu/stubs.h
PolyhedralSurf.o: /usr/lib/gcc/i386-redhat-linux/3.4.4/include/limits.h
PolyhedralSurf.o: /usr/include/boost/pending/cstddef.hpp
PolyhedralSurf.o: /usr/include/boost/detail/iterator.hpp
PolyhedralSurf.o: /usr/include/boost/config.hpp
PolyhedralSurf.o: /usr/include/boost/concept_check.hpp
PolyhedralSurf.o: /usr/include/boost/iterator.hpp
PolyhedralSurf.o: /usr/include/boost/type_traits/conversion_traits.hpp
PolyhedralSurf.o: /usr/include/boost/type_traits/is_convertible.hpp
PolyhedralSurf.o: /usr/include/boost/type_traits/detail/yes_no_type.hpp
PolyhedralSurf.o: /usr/include/boost/type_traits/config.hpp
PolyhedralSurf.o: /usr/include/boost/type_traits/is_array.hpp
PolyhedralSurf.o: /usr/include/boost/type_traits/detail/bool_trait_def.hpp
PolyhedralSurf.o: /usr/include/boost/type_traits/detail/template_arity_spec.hpp
PolyhedralSurf.o: /usr/include/boost/mpl/int.hpp
PolyhedralSurf.o: /usr/include/boost/mpl/int_fwd.hpp
PolyhedralSurf.o: /usr/include/boost/mpl/aux_/adl_barrier.hpp
PolyhedralSurf.o: /usr/include/boost/mpl/aux_/config/adl.hpp
PolyhedralSurf.o: /usr/include/boost/mpl/aux_/config/msvc.hpp
PolyhedralSurf.o: /usr/include/boost/mpl/aux_/config/intel.hpp
PolyhedralSurf.o: /usr/include/boost/mpl/aux_/config/gcc.hpp
PolyhedralSurf.o: /usr/include/boost/mpl/aux_/config/workaround.hpp
PolyhedralSurf.o: /usr/include/boost/detail/workaround.hpp
PolyhedralSurf.o: /usr/include/boost/mpl/aux_/nttp_decl.hpp
PolyhedralSurf.o: /usr/include/boost/mpl/aux_/config/nttp.hpp
PolyhedralSurf.o: /usr/include/boost/preprocessor/cat.hpp
PolyhedralSurf.o: /usr/include/boost/preprocessor/config/config.hpp
PolyhedralSurf.o: /usr/include/boost/mpl/aux_/integral_wrapper.hpp
PolyhedralSurf.o: /usr/include/boost/mpl/integral_c_tag.hpp
PolyhedralSurf.o: /usr/include/boost/mpl/aux_/config/static_constant.hpp
PolyhedralSurf.o: /usr/include/boost/mpl/aux_/static_cast.hpp
PolyhedralSurf.o: /usr/include/boost/mpl/aux_/template_arity_fwd.hpp
PolyhedralSurf.o: /usr/include/boost/mpl/aux_/preprocessor/params.hpp
PolyhedralSurf.o: /usr/include/boost/mpl/aux_/config/preprocessor.hpp
PolyhedralSurf.o: /usr/include/boost/preprocessor/comma_if.hpp
PolyhedralSurf.o: /usr/include/boost/preprocessor/punctuation/comma_if.hpp
PolyhedralSurf.o: /usr/include/boost/preprocessor/control/if.hpp
PolyhedralSurf.o: /usr/include/boost/preprocessor/control/iif.hpp
PolyhedralSurf.o: /usr/include/boost/preprocessor/logical/bool.hpp
PolyhedralSurf.o: /usr/include/boost/preprocessor/facilities/empty.hpp
PolyhedralSurf.o: /usr/include/boost/preprocessor/punctuation/comma.hpp
PolyhedralSurf.o: /usr/include/boost/preprocessor/repeat.hpp
PolyhedralSurf.o: /usr/include/boost/preprocessor/repetition/repeat.hpp
PolyhedralSurf.o: /usr/include/boost/preprocessor/debug/error.hpp
PolyhedralSurf.o: /usr/include/boost/preprocessor/detail/auto_rec.hpp
PolyhedralSurf.o: /usr/include/boost/preprocessor/tuple/eat.hpp
PolyhedralSurf.o: /usr/include/boost/preprocessor/inc.hpp
PolyhedralSurf.o: /usr/include/boost/preprocessor/arithmetic/inc.hpp
PolyhedralSurf.o: /usr/include/boost/mpl/aux_/config/lambda.hpp
PolyhedralSurf.o: /usr/include/boost/mpl/aux_/config/ttp.hpp
PolyhedralSurf.o: /usr/include/boost/mpl/aux_/config/ctps.hpp
PolyhedralSurf.o: /usr/include/boost/mpl/aux_/config/overload_resolution.hpp
PolyhedralSurf.o: /usr/include/boost/mpl/bool.hpp
PolyhedralSurf.o: /usr/include/boost/mpl/bool_fwd.hpp
PolyhedralSurf.o: /usr/include/boost/mpl/aux_/lambda_support.hpp
PolyhedralSurf.o: /usr/include/boost/type_traits/detail/bool_trait_undef.hpp
PolyhedralSurf.o: /usr/include/boost/type_traits/add_reference.hpp
PolyhedralSurf.o: /usr/include/boost/type_traits/is_reference.hpp
PolyhedralSurf.o: /usr/include/boost/type_traits/detail/type_trait_def.hpp
PolyhedralSurf.o: /usr/include/boost/type_traits/detail/type_trait_undef.hpp
PolyhedralSurf.o: /usr/include/boost/type_traits/ice.hpp
PolyhedralSurf.o: /usr/include/boost/type_traits/detail/ice_or.hpp
PolyhedralSurf.o: /usr/include/boost/type_traits/detail/ice_and.hpp
PolyhedralSurf.o: /usr/include/boost/type_traits/detail/ice_not.hpp
PolyhedralSurf.o: /usr/include/boost/type_traits/detail/ice_eq.hpp
PolyhedralSurf.o: /usr/include/boost/static_assert.hpp
PolyhedralSurf.o: /usr/include/boost/mpl/identity.hpp
PolyhedralSurf.o: /usr/include/boost/mpl/aux_/na_spec.hpp
PolyhedralSurf.o: /usr/include/boost/mpl/lambda_fwd.hpp
PolyhedralSurf.o: /usr/include/boost/mpl/void_fwd.hpp
PolyhedralSurf.o: /usr/include/boost/mpl/aux_/na.hpp
PolyhedralSurf.o: /usr/include/boost/mpl/aux_/na_fwd.hpp
PolyhedralSurf.o: /usr/include/boost/mpl/aux_/lambda_arity_param.hpp
PolyhedralSurf.o: /usr/include/boost/mpl/aux_/arity.hpp
PolyhedralSurf.o: /usr/include/boost/mpl/aux_/config/dtp.hpp
PolyhedralSurf.o: /usr/include/boost/mpl/aux_/preprocessor/enum.hpp
PolyhedralSurf.o: /usr/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp
PolyhedralSurf.o: /usr/include/boost/mpl/limits/arity.hpp
PolyhedralSurf.o: /usr/include/boost/preprocessor/logical/and.hpp
PolyhedralSurf.o: /usr/include/boost/preprocessor/logical/bitand.hpp
PolyhedralSurf.o: /usr/include/boost/preprocessor/identity.hpp
PolyhedralSurf.o: /usr/include/boost/preprocessor/facilities/identity.hpp
PolyhedralSurf.o: /usr/include/boost/preprocessor/empty.hpp
PolyhedralSurf.o: /usr/include/boost/preprocessor/arithmetic/add.hpp
PolyhedralSurf.o: /usr/include/boost/preprocessor/arithmetic/dec.hpp
PolyhedralSurf.o: /usr/include/boost/preprocessor/control/while.hpp
PolyhedralSurf.o: /usr/include/boost/preprocessor/list/fold_left.hpp
PolyhedralSurf.o: /usr/include/boost/preprocessor/list/detail/fold_left.hpp
PolyhedralSurf.o: /usr/include/boost/preprocessor/control/expr_iif.hpp
PolyhedralSurf.o: /usr/include/boost/preprocessor/list/adt.hpp
PolyhedralSurf.o: /usr/include/boost/preprocessor/detail/is_binary.hpp
PolyhedralSurf.o: /usr/include/boost/preprocessor/detail/check.hpp
PolyhedralSurf.o: /usr/include/boost/preprocessor/logical/compl.hpp
PolyhedralSurf.o: /usr/include/boost/preprocessor/list/fold_right.hpp
PolyhedralSurf.o: /usr/include/boost/preprocessor/list/detail/fold_right.hpp
PolyhedralSurf.o: /usr/include/boost/preprocessor/list/reverse.hpp
PolyhedralSurf.o: /usr/include/boost/preprocessor/control/detail/while.hpp
PolyhedralSurf.o: /usr/include/boost/preprocessor/tuple/elem.hpp
PolyhedralSurf.o: /usr/include/boost/preprocessor/arithmetic/sub.hpp
PolyhedralSurf.o: /usr/include/boost/mpl/aux_/config/eti.hpp
PolyhedralSurf.o: /usr/include/boost/concept_archetype.hpp
PolyhedralSurf.o: /usr/include/boost/graph/properties.hpp
PolyhedralSurf.o: /usr/include/boost/pending/property.hpp
PolyhedralSurf.o: /usr/include/boost/pending/ct_if.hpp
PolyhedralSurf.o: /usr/include/boost/pending/detail/property.hpp
PolyhedralSurf.o: /usr/include/boost/type_traits/same_traits.hpp
PolyhedralSurf.o: /usr/include/boost/type_traits/is_same.hpp
PolyhedralSurf.o: /usr/include/boost/graph/graph_traits.hpp
PolyhedralSurf.o: /usr/include/boost/tuple/tuple.hpp
PolyhedralSurf.o: /usr/include/boost/ref.hpp
PolyhedralSurf.o: /usr/include/boost/utility/addressof.hpp
PolyhedralSurf.o: /usr/include/boost/tuple/detail/tuple_basic.hpp
PolyhedralSurf.o: /usr/include/boost/type_traits/cv_traits.hpp
PolyhedralSurf.o: /usr/include/boost/type_traits/add_const.hpp
PolyhedralSurf.o: /usr/include/boost/type_traits/add_volatile.hpp
PolyhedralSurf.o: /usr/include/boost/type_traits/add_cv.hpp
PolyhedralSurf.o: /usr/include/boost/type_traits/is_const.hpp
PolyhedralSurf.o: /usr/include/boost/type_traits/detail/cv_traits_impl.hpp
PolyhedralSurf.o: /usr/include/boost/type_traits/is_volatile.hpp
PolyhedralSurf.o: /usr/include/boost/type_traits/remove_const.hpp
PolyhedralSurf.o: /usr/include/boost/type_traits/broken_compiler_spec.hpp
PolyhedralSurf.o: /usr/include/boost/type_traits/remove_volatile.hpp
PolyhedralSurf.o: /usr/include/boost/type_traits/remove_cv.hpp
PolyhedralSurf.o: /usr/include/boost/type_traits/function_traits.hpp
PolyhedralSurf.o: /usr/include/boost/type_traits/is_function.hpp
PolyhedralSurf.o: /usr/include/boost/type_traits/detail/false_result.hpp
PolyhedralSurf.o: /usr/include/boost/type_traits/detail/is_function_ptr_helper.hpp
PolyhedralSurf.o: /usr/include/boost/type_traits/add_pointer.hpp
PolyhedralSurf.o: /usr/include/boost/type_traits/remove_reference.hpp
PolyhedralSurf.o: /usr/include/boost/iterator/iterator_categories.hpp
PolyhedralSurf.o: /usr/include/boost/iterator/detail/config_def.hpp
PolyhedralSurf.o: /usr/include/boost/mpl/eval_if.hpp
PolyhedralSurf.o: /usr/include/boost/mpl/if.hpp
PolyhedralSurf.o: /usr/include/boost/mpl/aux_/value_wknd.hpp
PolyhedralSurf.o: /usr/include/boost/mpl/aux_/config/integral.hpp
PolyhedralSurf.o: /usr/include/boost/mpl/placeholders.hpp
PolyhedralSurf.o: /usr/include/boost/mpl/arg.hpp
PolyhedralSurf.o: /usr/include/boost/mpl/arg_fwd.hpp
PolyhedralSurf.o: /usr/include/boost/mpl/aux_/na_assert.hpp
PolyhedralSurf.o: /usr/include/boost/mpl/aux_/arity_spec.hpp
PolyhedralSurf.o: /usr/include/boost/mpl/aux_/arg_typedef.hpp
PolyhedralSurf.o: /usr/include/boost/mpl/aux_/config/use_preprocessed.hpp
PolyhedralSurf.o: /usr/include/boost/mpl/aux_/include_preprocessed.hpp
PolyhedralSurf.o: /usr/include/boost/mpl/aux_/config/compiler.hpp
PolyhedralSurf.o: /usr/include/boost/preprocessor/stringize.hpp
PolyhedralSurf.o: /usr/include/boost/iterator/detail/config_undef.hpp
PolyhedralSurf.o: /usr/include/boost/iterator/iterator_adaptor.hpp
PolyhedralSurf.o: /usr/include/boost/iterator/iterator_facade.hpp
PolyhedralSurf.o: /usr/include/boost/iterator/interoperable.hpp
PolyhedralSurf.o: /usr/include/boost/mpl/or.hpp
PolyhedralSurf.o: /usr/include/boost/mpl/aux_/nested_type_wknd.hpp
PolyhedralSurf.o: /usr/include/boost/iterator/iterator_traits.hpp
PolyhedralSurf.o: /usr/include/boost/iterator/detail/facade_iterator_category.hpp
PolyhedralSurf.o: /usr/include/boost/mpl/and.hpp
PolyhedralSurf.o: /usr/include/boost/detail/indirect_traits.hpp
PolyhedralSurf.o: /usr/include/boost/type_traits/is_pointer.hpp
PolyhedralSurf.o: /usr/include/boost/type_traits/is_member_pointer.hpp
PolyhedralSurf.o: /usr/include/boost/type_traits/is_member_function_pointer.hpp
PolyhedralSurf.o: /usr/include/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp
PolyhedralSurf.o: /usr/include/boost/type_traits/is_class.hpp
PolyhedralSurf.o: /usr/include/boost/type_traits/is_union.hpp
PolyhedralSurf.o: /usr/include/boost/type_traits/intrinsics.hpp
PolyhedralSurf.o: /usr/include/boost/type_traits/remove_pointer.hpp
PolyhedralSurf.o: /usr/include/boost/mpl/not.hpp
PolyhedralSurf.o: /usr/include/boost/iterator/detail/enable_if.hpp
PolyhedralSurf.o: /usr/include/boost/type_traits/is_pod.hpp
PolyhedralSurf.o: /usr/include/boost/type_traits/is_void.hpp
PolyhedralSurf.o: /usr/include/boost/type_traits/is_scalar.hpp
PolyhedralSurf.o: /usr/include/boost/type_traits/is_arithmetic.hpp
PolyhedralSurf.o: /usr/include/boost/type_traits/is_integral.hpp
PolyhedralSurf.o: /usr/include/boost/type_traits/is_float.hpp
PolyhedralSurf.o: /usr/include/boost/type_traits/is_enum.hpp
PolyhedralSurf.o: /usr/include/boost/mpl/always.hpp
PolyhedralSurf.o: /usr/include/boost/mpl/apply.hpp
PolyhedralSurf.o: /usr/include/boost/mpl/apply_fwd.hpp
PolyhedralSurf.o: /usr/include/boost/mpl/apply_wrap.hpp
PolyhedralSurf.o: /usr/include/boost/mpl/aux_/has_apply.hpp
PolyhedralSurf.o: /usr/include/boost/mpl/has_xxx.hpp
PolyhedralSurf.o: /usr/include/boost/mpl/aux_/type_wrapper.hpp
PolyhedralSurf.o: /usr/include/boost/mpl/aux_/yes_no.hpp
PolyhedralSurf.o: /usr/include/boost/mpl/aux_/config/arrays.hpp
PolyhedralSurf.o: /usr/include/boost/mpl/aux_/config/has_xxx.hpp
PolyhedralSurf.o: /usr/include/boost/mpl/aux_/config/msvc_typename.hpp
PolyhedralSurf.o: /usr/include/boost/mpl/aux_/config/has_apply.hpp
PolyhedralSurf.o: /usr/include/boost/mpl/aux_/msvc_never_true.hpp
PolyhedralSurf.o: /usr/include/boost/mpl/lambda.hpp
PolyhedralSurf.o: /usr/include/boost/mpl/bind.hpp
PolyhedralSurf.o: /usr/include/boost/mpl/bind_fwd.hpp
PolyhedralSurf.o: /usr/include/boost/mpl/aux_/config/bind.hpp
PolyhedralSurf.o: /usr/include/boost/mpl/next.hpp
PolyhedralSurf.o: /usr/include/boost/mpl/next_prior.hpp
PolyhedralSurf.o: /usr/include/boost/mpl/aux_/common_name_wknd.hpp
PolyhedralSurf.o: /usr/include/boost/mpl/protect.hpp
PolyhedralSurf.o: /usr/include/boost/mpl/aux_/full_lambda.hpp
PolyhedralSurf.o: /usr/include/boost/mpl/quote.hpp
PolyhedralSurf.o: /usr/include/boost/mpl/void.hpp
PolyhedralSurf.o: /usr/include/boost/mpl/aux_/has_type.hpp
PolyhedralSurf.o: /usr/include/boost/mpl/aux_/template_arity.hpp
PolyhedralSurf.o: /usr/include/stdlib.h
PolyhedralSurf.o: /usr/lib/gcc/i386-redhat-linux/3.4.4/include/stddef.h
PolyhedralSurf.o: /usr/include/stdio.h /usr/include/bits/types.h
PolyhedralSurf.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h
PolyhedralSurf.o: /usr/include/libio.h /usr/include/_G_config.h
PolyhedralSurf.o: /usr/include/wchar.h /usr/include/bits/wchar.h
PolyhedralSurf.o: /usr/include/gconv.h
PolyhedralSurf.o: /usr/lib/gcc/i386-redhat-linux/3.4.4/include/stdarg.h
PolyhedralSurf.o: /usr/include/bits/stdio_lim.h
PolyhedralSurf.o: /usr/include/bits/sys_errlist.h

View File

@ -186,30 +186,28 @@ template < class DataKernel, class LocalKernel = Cartesian<double>, class SvdTra
typedef typename SvdTraits::Matrix LAMatrix; typedef typename SvdTraits::Matrix LAMatrix;
public: public:
Monge_via_jet_fitting(){} Monge_via_jet_fitting();
Monge_via_jet_fitting(Range_Iterator begin, Range_Iterator end, Monge_via_jet_fitting(Range_Iterator begin, Range_Iterator end,
size_t d, size_t dprime, size_t d, size_t dprime,
LMonge_form &monge_form); LMonge_form &monge_form);
LMonge_form operator()(Range_Iterator begin, Range_Iterator end, LMonge_form operator()(Range_Iterator begin, Range_Iterator end,
size_t d, size_t dprime); size_t d, size_t dprime);
// LMonge_form run(Range_Iterator begin, Range_Iterator end,
// size_t d, size_t dprime);
const LFT condition_number() const {return condition_nb;}
const std::pair<LFT, LVector> pca_basis(size_t i) const {return m_pca_basis[i];}
protected:
int deg;
int deg_monge;
int nb_d_jet_coeff;
int nb_input_pts;
LFT preconditionning;
CGAL::Sqrt<LFT> Lsqrt;
LFT condition_nb;
std::vector< std::pair<LFT, LVector> > m_pca_basis; const LFT condition_number() const {return condition_nb;}
const std::pair<LFT, LVector> pca_basis(size_t i) const {return m_pca_basis[i];}
protected:
int deg;
int deg_monge;
int nb_d_jet_coeff;
int nb_input_pts;
LFT preconditionning;
CGAL::Sqrt<LFT> Lsqrt;
LFT condition_nb;
std::vector< std::pair<LFT, LVector> > m_pca_basis;
//translate_p0 changes the origin of the world to p0 the first point //translate_p0 changes the origin of the world to p0 the first point
// of the input data points // of the input data points
@ -246,8 +244,6 @@ template < class DataKernel, class LocalKernel = Cartesian<double>, class SvdTra
//for a trihedron (v1,v2,v3) switches v1 to -v1 if det(v1,v2,v3) < 0 //for a trihedron (v1,v2,v3) switches v1 to -v1 if det(v1,v2,v3) < 0
void switch_to_direct_orientation(LVector& v1, const LVector& v2, void switch_to_direct_orientation(LVector& v1, const LVector& v2,
const LVector& v3); const LVector& v3);
}; };
//------------------------------------------------------------------- //-------------------------------------------------------------------
@ -255,48 +251,21 @@ template < class DataKernel, class LocalKernel = Cartesian<double>, class SvdTra
//------------------------------------------------------------------ //------------------------------------------------------------------
template < class DataKernel, class LocalKernel, class SvdTraits> template < class DataKernel, class LocalKernel, class SvdTraits>
Monge_via_jet_fitting<DataKernel, LocalKernel, SvdTraits>:: Monge_via_jet_fitting<DataKernel, LocalKernel, SvdTraits>::
Monge_via_jet_fitting(Range_Iterator begin, Range_Iterator end, Monge_via_jet_fitting()
size_t d, size_t dprime,
LMonge_form& monge_form)
{ {
//init in the constructor if any...
m_pca_basis = std::vector< std::pair<LFT, LVector> >(3); m_pca_basis = std::vector< std::pair<LFT, LVector> >(3);
// precondition: on the degrees, jet and monge
CGAL_precondition( (d >=1) && (dprime >= 1)
&& (dprime <= 4) && (dprime <= d) );
this->deg = d;
this->deg_monge = dprime;
this->nb_d_jet_coeff = (d+1)*(d+2)/2;
this->nb_input_pts = end - begin;
// precondition: solvable ls system
CGAL_precondition( nb_input_pts >= nb_d_jet_coeff );
//Initialize
monge_form.set_up(dprime);
//for the system MA=Z
LAMatrix M(nb_input_pts, nb_d_jet_coeff);
LAVector Z(nb_input_pts);
compute_PCA(begin, end);
fill_matrix(begin, end, d, M, Z);//with precond
solve_linear_system(M, Z); //correct with precond
compute_Monge_basis(Z.vector(), monge_form);
if ( dprime >= 3) compute_Monge_coefficients(Z.vector(), dprime, monge_form);
} }
template < class DataKernel, class LocalKernel, class SvdTraits> template < class DataKernel, class LocalKernel, class SvdTraits>
Monge_form<DataKernel> Monge_form<DataKernel>
Monge_via_jet_fitting<DataKernel, LocalKernel, SvdTraits>:: Monge_via_jet_fitting<DataKernel, LocalKernel, SvdTraits>::
operator()(Range_Iterator begin, Range_Iterator end, operator()(Range_Iterator begin, Range_Iterator end,
size_t d, size_t dprime) size_t d, size_t dprime)
{ {
m_pca_basis = std::vector< std::pair<LFT, LVector> >(3);
// precondition: on the degrees, jet and monge // precondition: on the degrees, jet and monge
CGAL_precondition( (d >=1) && (dprime >= 1) CGAL_precondition( (d >=1) && (dprime >= 1)
&& (dprime <= 4) && (dprime <= d) ); && (dprime <= 4) && (dprime <= d) );
this->deg = d; this->deg = d;
this->deg_monge = dprime; this->deg_monge = dprime;
this->nb_d_jet_coeff = (d+1)*(d+2)/2; this->nb_d_jet_coeff = (d+1)*(d+2)/2;
@ -317,41 +286,7 @@ operator()(Range_Iterator begin, Range_Iterator end,
compute_Monge_basis(Z.vector(), monge_form); compute_Monge_basis(Z.vector(), monge_form);
if ( dprime >= 3) compute_Monge_coefficients(Z.vector(), dprime, monge_form); if ( dprime >= 3) compute_Monge_coefficients(Z.vector(), dprime, monge_form);
return monge_form; return monge_form;
} }
// template < class DataKernel, class LocalKernel, class SvdTraits>
// Monge_form<DataKernel>
// Monge_via_jet_fitting<DataKernel, LocalKernel, SvdTraits>::
// run(Range_Iterator begin, Range_Iterator end,
// size_t d, size_t dprime)
// {
// m_pca_basis = std::vector< std::pair<LFT, LVector> >(3);
// // precondition: on the degrees, jet and monge
// CGAL_precondition( (d >=1) && (dprime >= 1)
// && (dprime <= 4) && (dprime <= d) );
// this->deg = d;
// this->deg_monge = dprime;
// this->nb_d_jet_coeff = (d+1)*(d+2)/2;
// this->nb_input_pts = end - begin;
// // precondition: solvable ls system
// CGAL_precondition( nb_input_pts >= nb_d_jet_coeff );
// //Initialize
// Monge_form monge_form;
// monge_form.set_up(dprime);
// //for the system MA=Z
// LAMatrix M(nb_input_pts, nb_d_jet_coeff);
// LAVector Z(nb_input_pts);
// compute_PCA(begin, end);
// fill_matrix(begin, end, d, M, Z);//with precond
// solve_linear_system(M, Z); //correct with precond
// compute_Monge_basis(Z.vector(), monge_form);
// if ( dprime >= 3) compute_Monge_coefficients(Z.vector(), dprime, monge_form);
// return monge_form;
// }
template < class DataKernel, class LocalKernel, class SvdTraits> template < class DataKernel, class LocalKernel, class SvdTraits>
void Monge_via_jet_fitting<DataKernel, LocalKernel, SvdTraits>:: void Monge_via_jet_fitting<DataKernel, LocalKernel, SvdTraits>::

View File

@ -12,14 +12,13 @@
typedef double DFT; typedef double DFT;
typedef CGAL::Cartesian<DFT> Data_Kernel; typedef CGAL::Cartesian<DFT> Data_Kernel;
typedef Data_Kernel::Point_3 DPoint; typedef Data_Kernel::Point_3 DPoint;
typedef Data_Kernel::Vector_3 DVector; typedef Data_Kernel::Vector_3 DVector;
typedef double LFT; typedef double LFT;
typedef CGAL::Cartesian<LFT> Local_Kernel; typedef CGAL::Cartesian<LFT> Local_Kernel;
typedef CGAL::Monge_via_jet_fitting<Data_Kernel> My_Monge_via_jet_fitting; typedef CGAL::Monge_via_jet_fitting<Data_Kernel> My_Monge_via_jet_fitting;
typedef My_Monge_via_jet_fitting::Monge_form My_Monge_form; typedef My_Monge_via_jet_fitting::LMonge_form My_Monge_form;
typedef My_Monge_via_jet_fitting::Monge_form_condition_numbers My_Monge_form_condition_numbers;
int main() int main()
{ {
//open the input file //open the input file
@ -32,13 +31,8 @@ int main()
//initalize the in_points container //initalize the in_points container
double x, y, z; double x, y, z;
std::vector<DPoint> in_points; std::vector<DPoint> in_points;
char ch[40]; while (inFile >> x) {
while (inFile >> ch) { inFile >> y >> z;
x = atof(ch);
inFile >> ch;
y = atof(ch);
inFile >> ch;
z = atof(ch);
DPoint p(x,y,z); DPoint p(x,y,z);
in_points.push_back(p); in_points.push_back(p);
} }
@ -48,17 +42,30 @@ int main()
int d_fitting = 4; int d_fitting = 4;
int d_monge = 4; int d_monge = 4;
My_Monge_form monge_form; My_Monge_form monge_form;
My_Monge_form_condition_numbers monge_form_condition_numbers; My_Monge_via_jet_fitting monge_fit;
//run the main fct monge_form = monge_fit(in_points.begin(), in_points.end(), d_fitting, d_monge);
My_Monge_via_jet_fitting do_it(in_points.begin(), in_points.end(),
d_fitting, d_monge,
monge_form, monge_form_condition_numbers);
monge_form.comply_wrt_given_normal( -monge_form.n() ); monge_form.comply_wrt_given_normal( -monge_form.normal_direction() );
//OUTPUT on std::cout //OUTPUT on std::cout
std::cout << monge_form std::cout << monge_form
<< monge_form_condition_numbers; << "check access fct" << std::endl;
if ( monge_form.coefficients().size() >= 2)
std::cout << "d1 : " << monge_form.maximal_principal_direction() << std::endl
<< "d2 : " << monge_form.minimal_principal_direction() << std::endl
<< "k1 : " << monge_form.principal_curvatures(0) << std::endl
<< "k2 : " << monge_form.principal_curvatures(1) << std::endl;
if ( monge_form.coefficients().size() >= 6)
std::cout << "b0 : " << monge_form.third_order_coefficients(0) << std::endl
<< "b1 : " << monge_form.third_order_coefficients(1) << std::endl
<< "b2 : " << monge_form.third_order_coefficients(2) << std::endl
<< "b3 : " << monge_form.third_order_coefficients(3) << std::endl;
if ( monge_form.coefficients().size() >= 11)
std::cout << "c0 : " << monge_form.fourth_order_coefficients(0) << std::endl
<< "c1 : " << monge_form.fourth_order_coefficients(1) << std::endl
<< "c2 : " << monge_form.fourth_order_coefficients(2) << std::endl
<< "c3 : " << monge_form.fourth_order_coefficients(3) << std::endl
<< "c4 : " << monge_form.fourth_order_coefficients(4) << std::endl;
monge_form.dump_4ogl( std::cout, 1 ); monge_form.dump_4ogl( std::cout, 1 );
double precision = 0.01; double precision = 0.01;
assert(monge_form.coefficients()[0] >= -0.2 - precision); assert(monge_form.coefficients()[0] >= -0.2 - precision);

View File

@ -27,7 +27,7 @@ CXXFLAGS = \
#---------------------------------------------------------------------# #---------------------------------------------------------------------#
F2CDIR = $(LAPACK_DIR)/F2CLIBS F2CDIR = $(LAPACK_DIR)/F2CLIBS
LAPACK_LDLIBS = $(LAPACK_DIR)/lapack_LINUX.a \ LAPACK_LDLIBS = $(LAPACK_DIR)/lapack_LINUX.a \
$(LAPACK_DIR)/blas_LINUX.a $(LAPACK_DIR)/tmglib_LINUX.a \ $(LAPACK_DIR)/blas_LINUX.a \
$(F2CDIR)/libF77.a $(F2CDIR)/libI77.a -lm -lc $(F2CDIR)/libF77.a $(F2CDIR)/libI77.a -lm -lc
LIBPATH = \ LIBPATH = \
@ -68,17 +68,14 @@ depend:
# DO NOT DELETE # DO NOT DELETE
blind_1pt.o: /usr/include/stdio.h /usr/include/features.h blind_1pt.o: /usr/include/stdio.h /usr/include/_types.h
blind_1pt.o: /usr/include/sys/cdefs.h /usr/include/gnu/stubs.h blind_1pt.o: /usr/include/sys/_types.h /usr/include/sys/cdefs.h
blind_1pt.o: /usr/include/bits/types.h /usr/include/bits/wordsize.h blind_1pt.o: /usr/include/machine/_types.h /usr/include/i386/_types.h
blind_1pt.o: /usr/include/bits/typesizes.h /usr/include/libio.h blind_1pt.o: /usr/include/stdlib.h /usr/include/sys/wait.h
blind_1pt.o: /usr/include/_G_config.h /usr/include/wchar.h blind_1pt.o: /usr/include/sys/signal.h /usr/include/sys/appleapiopts.h
blind_1pt.o: /usr/include/bits/wchar.h /usr/include/gconv.h blind_1pt.o: /usr/include/machine/signal.h /usr/include/i386/signal.h
blind_1pt.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h blind_1pt.o: /usr/include/sys/resource.h /usr/include/machine/endian.h
blind_1pt.o: /usr/include/stdlib.h /usr/include/sys/types.h blind_1pt.o: /usr/include/i386/endian.h /usr/include/sys/_endian.h
blind_1pt.o: /usr/include/time.h /usr/include/endian.h blind_1pt.o: /usr/include/stdint.h /usr/include/libkern/OSByteOrder.h
blind_1pt.o: /usr/include/bits/endian.h /usr/include/sys/select.h blind_1pt.o: /usr/include/libkern/i386/OSByteOrder.h /usr/include/alloca.h
blind_1pt.o: /usr/include/bits/select.h /usr/include/bits/sigset.h blind_1pt.o: /usr/include/machine/types.h /usr/include/i386/types.h
blind_1pt.o: /usr/include/bits/time.h /usr/include/sys/sysmacros.h
blind_1pt.o: /usr/include/bits/pthreadtypes.h /usr/include/bits/sched.h
blind_1pt.o: /usr/include/alloca.h