mirror of https://github.com/CGAL/cgal
added a Lapack sub-directory in include
This commit is contained in:
parent
9eaa9ee75b
commit
0da2d9c45a
|
|
@ -9,8 +9,8 @@
|
|||
|
||||
#include <boost/property_map.hpp>
|
||||
|
||||
#include "../../include/CGAL/Monge_via_jet_fitting.h"
|
||||
#include "../../include/CGAL/LinAlg_lapack.h"
|
||||
#include <CGAL/Monge_via_jet_fitting.h>
|
||||
#include <CGAL/Lapack/Linear_algebra_lapack.h>
|
||||
|
||||
#include "PolyhedralSurf.h"
|
||||
#include "PolyhedralSurf_operations.h"
|
||||
|
|
@ -70,11 +70,19 @@ typedef T_PolyhedralSurf_facet_ops<PolyhedralSurf, Facet_PM_type> Poly_facet_ops
|
|||
|
||||
|
||||
//Kernel for local computations
|
||||
typedef double LFT;
|
||||
typedef CGAL::Cartesian<LFT> Local_Kernel;
|
||||
typedef CGAL::Monge_via_jet_fitting<Data_Kernel, Local_Kernel, Lapack> My_Monge_via_jet_fitting;
|
||||
typedef CGAL::Monge_rep<Data_Kernel> My_Monge_rep;
|
||||
typedef CGAL::Monge_info<Local_Kernel> My_Monge_info;
|
||||
// typedef double LFT;
|
||||
// typedef CGAL::Cartesian<LFT> Local_Kernel;
|
||||
// typedef CGAL::Monge_via_jet_fitting<Data_Kernel, Local_Kernel, Lapack> My_Monge_via_jet_fitting;
|
||||
// typedef CGAL::Monge_form<Data_Kernel> My_Monge_form;
|
||||
// typedef CGAL::Monge_form_condition_numbers<Local_Kernel> My_Monge_form_condition_numbers;
|
||||
|
||||
|
||||
typedef double LFT;
|
||||
typedef CGAL::Cartesian<LFT> Local_Kernel;
|
||||
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::Monge_form_condition_numbers My_Monge_form_condition_numbers;
|
||||
|
||||
|
||||
//Syntax requirred by Options
|
||||
static const char *const optv[] = {
|
||||
|
|
@ -241,8 +249,8 @@ int main(int argc, char *argv[])
|
|||
//initialize
|
||||
Vertex* v = &(*vitb);
|
||||
in_points.clear();
|
||||
My_Monge_rep monge_rep;
|
||||
My_Monge_info monge_info;
|
||||
My_Monge_form monge_form;
|
||||
My_Monge_form_condition_numbers monge_form_condition_numbers;
|
||||
|
||||
//gather points around the vertex using rings
|
||||
gather_fitting_points(v, in_points, vpm);
|
||||
|
|
@ -255,18 +263,18 @@ int main(int argc, char *argv[])
|
|||
// run the main fct : perform the fitting
|
||||
My_Monge_via_jet_fitting do_it(in_points.begin(), in_points.end(),
|
||||
d_fitting, d_monge,
|
||||
monge_rep, monge_info);
|
||||
monge_form, monge_form_condition_numbers);
|
||||
|
||||
//switch min-max ppal curv/dir wrt the mesh orientation
|
||||
const DVector normal_mesh = Poly_facet_ops::compute_vertex_average_unit_normal(v, fpm);
|
||||
monge_rep.comply_wrt_given_normal(normal_mesh);
|
||||
monge_form.comply_wrt_given_normal(normal_mesh);
|
||||
|
||||
//OpenGL output. Scaling for ppal dir, may be optimized with a
|
||||
//global mean edges length computed only once on all edges of P
|
||||
DFT scale_ppal_dir = Poly_hedge_ops::compute_mean_edges_length_around_vertex(v, hepm)/2;
|
||||
|
||||
(*out_4ogl) << v->point() << " ";
|
||||
monge_rep.dump_4ogl(*out_4ogl, scale_ppal_dir);
|
||||
monge_form.dump_4ogl(*out_4ogl, scale_ppal_dir);
|
||||
|
||||
//verbose txt output
|
||||
if (verbose) {
|
||||
|
|
@ -277,8 +285,8 @@ int main(int argc, char *argv[])
|
|||
(*out_verbose) << "--- vertex " << ++nb_vertices_considered
|
||||
<< " : " << v->point() << std::endl
|
||||
<< "number of points used : " << in_points.size() << std::endl;
|
||||
monge_rep.dump_verbose(*out_verbose);
|
||||
monge_info.dump_verbose(*out_verbose);
|
||||
monge_form.dump_verbose(*out_verbose);
|
||||
monge_form_condition_numbers.dump_verbose(*out_verbose);
|
||||
}
|
||||
} //all vertices processed
|
||||
|
||||
|
|
|
|||
|
|
@ -7,19 +7,18 @@
|
|||
#include <stdlib.h>
|
||||
|
||||
#include <vector>
|
||||
#include "../../include/CGAL/Monge_via_jet_fitting.h"
|
||||
#include "../../include/CGAL/LinAlg_lapack.h"
|
||||
#include <CGAL/Monge_via_jet_fitting.h>
|
||||
|
||||
|
||||
typedef double DFT;
|
||||
typedef CGAL::Cartesian<DFT> Data_Kernel;
|
||||
typedef Data_Kernel::Point_3 DPoint;
|
||||
typedef CGAL::Monge_rep<Data_Kernel> My_Monge_rep;
|
||||
|
||||
typedef double LFT;
|
||||
typedef CGAL::Cartesian<LFT> Local_Kernel;
|
||||
typedef CGAL::Monge_info<Local_Kernel> My_Monge_info;
|
||||
typedef CGAL::Monge_via_jet_fitting<Data_Kernel, Local_Kernel, Lapack> 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::Monge_form_condition_numbers My_Monge_form_condition_numbers;
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
|
|
@ -59,12 +58,12 @@ int main(int argc, char *argv[])
|
|||
// fct parameters
|
||||
int d_fitting = std::atoi(argv[3]);
|
||||
int d_monge = std::atoi(argv[4]);
|
||||
My_Monge_rep monge_rep;
|
||||
My_Monge_info monge_info;
|
||||
My_Monge_form monge_form;
|
||||
My_Monge_form_condition_numbers monge_form_condition_numbers;
|
||||
//run the main fct
|
||||
My_Monge_via_jet_fitting do_it(in_points.begin(), in_points.end(),
|
||||
d_fitting, d_monge,
|
||||
monge_rep, monge_info);
|
||||
monge_form, monge_form_condition_numbers);
|
||||
|
||||
//open a file for output
|
||||
char name_out[20];
|
||||
|
|
@ -82,15 +81,15 @@ int main(int argc, char *argv[])
|
|||
CGAL::set_pretty_mode(outFile);
|
||||
outFile << "vertex : " << in_points[0] << std::endl
|
||||
<< "number of points used : " << in_points.size() << std::endl;
|
||||
monge_rep.dump_verbose(outFile);
|
||||
monge_info.dump_verbose(outFile);
|
||||
monge_form.dump_verbose(outFile);
|
||||
monge_form_condition_numbers.dump_verbose(outFile);
|
||||
|
||||
//OUTPUT on std::cout
|
||||
CGAL::set_pretty_mode(std::cout);
|
||||
std::cout << "vertex : " << in_points[0] << std::endl
|
||||
<< "number of points used : " << in_points.size() << std::endl;
|
||||
monge_rep.dump_verbose(std::cout);
|
||||
monge_info.dump_verbose(std::cout);
|
||||
monge_form.dump_verbose(std::cout);
|
||||
monge_form_condition_numbers.dump_verbose(std::cout);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -24,10 +24,10 @@ CXXFLAGS = \
|
|||
#---------------------------------------------------------------------#
|
||||
# linker flags
|
||||
#---------------------------------------------------------------------#
|
||||
F2CDIR = $(LAPACK_DIR)/F2CLIBS
|
||||
LAPACK_LDLIBS = $(LAPACK_DIR)/lapack_LINUX.a \
|
||||
$(LAPACK_DIR)/blas_LINUX.a $(LAPACK_DIR)/tmglib_LINUX.a \
|
||||
$(F2CDIR)/libF77.a $(F2CDIR)/libI77.a -lm -lc
|
||||
LAPACK_LDLIBS = -L$(LAPACK_DIR) -L$(LAPACK_DIR)/F2CLIBS \
|
||||
-llapack_LINUX \
|
||||
-lblas_LINUX -ltmglib_LINUX \
|
||||
-lF77 -lI77 -lm -lc
|
||||
|
||||
LIBPATH = \
|
||||
$(CGAL_LIBPATH)
|
||||
|
|
@ -75,47 +75,31 @@ depend:
|
|||
|
||||
blind_1pt.o: /usr/include/stdio.h /usr/include/features.h
|
||||
blind_1pt.o: /usr/include/sys/cdefs.h /usr/include/gnu/stubs.h
|
||||
blind_1pt.o: /usr/lib/gcc/i386-redhat-linux/3.4.4/include/stddef.h
|
||||
blind_1pt.o: /usr/include/bits/types.h /usr/include/bits/wordsize.h
|
||||
blind_1pt.o: /usr/include/bits/typesizes.h /usr/include/libio.h
|
||||
blind_1pt.o: /usr/include/_G_config.h /usr/include/wchar.h
|
||||
blind_1pt.o: /usr/include/bits/wchar.h /usr/include/gconv.h
|
||||
blind_1pt.o: /usr/lib/gcc/i386-redhat-linux/3.4.4/include/stdarg.h
|
||||
blind_1pt.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h
|
||||
blind_1pt.o: /usr/include/stdlib.h /usr/include/sys/types.h
|
||||
blind_1pt.o: /usr/include/time.h /usr/include/endian.h
|
||||
blind_1pt.o: /usr/include/bits/endian.h /usr/include/sys/select.h
|
||||
blind_1pt.o: /usr/include/bits/select.h /usr/include/bits/sigset.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 ../../include/CGAL/Monge_via_jet_fitting.h
|
||||
blind_1pt.o: ../../include/CGAL/jet_fitting_3_assertions.h
|
||||
blind_1pt.o: /usr/include/math.h /usr/include/bits/huge_val.h
|
||||
blind_1pt.o: /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h
|
||||
blind_1pt.o: ../../include/CGAL/LinAlg_lapack.h
|
||||
blind_1pt.o: /usr/include/stdlib.h
|
||||
blind.o: /usr/include/stdio.h /usr/include/features.h
|
||||
blind.o: /usr/include/sys/cdefs.h /usr/include/gnu/stubs.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/sys/types.h /usr/include/time.h
|
||||
blind.o: /usr/include/endian.h /usr/include/bits/endian.h
|
||||
blind.o: /usr/include/sys/select.h /usr/include/bits/select.h
|
||||
blind.o: /usr/include/bits/sigset.h /usr/include/bits/time.h
|
||||
blind.o: /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h
|
||||
blind.o: /usr/include/bits/sched.h /usr/include/alloca.h
|
||||
blind.o: /usr/include/boost/property_map.hpp /usr/include/boost/config.hpp
|
||||
blind.o: /usr/include/boost/config/user.hpp
|
||||
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/posix_features.hpp /usr/include/unistd.h
|
||||
blind.o: /usr/include/bits/posix_opt.h /usr/include/bits/confname.h
|
||||
blind.o: /usr/include/getopt.h /usr/include/boost/config/suffix.hpp
|
||||
blind.o: /usr/include/limits.h /usr/include/bits/posix1_lim.h
|
||||
blind.o: /usr/include/bits/local_lim.h /usr/include/linux/limits.h
|
||||
blind.o: /usr/include/bits/posix2_lim.h
|
||||
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
|
||||
|
|
@ -163,10 +147,7 @@ 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/type_traits/integral_constant.hpp
|
||||
blind.o: /usr/include/boost/mpl/bool.hpp /usr/include/boost/mpl/bool_fwd.hpp
|
||||
blind.o: /usr/include/boost/mpl/integral_c.hpp
|
||||
blind.o: /usr/include/boost/mpl/integral_c_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
|
||||
|
|
@ -178,17 +159,7 @@ 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/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_abstract.hpp
|
||||
blind.o: /usr/include/boost/static_assert.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/remove_cv.hpp
|
||||
blind.o: /usr/include/boost/type_traits/broken_compiler_spec.hpp
|
||||
blind.o: /usr/include/boost/type_traits/detail/cv_traits_impl.hpp
|
||||
blind.o: /usr/include/boost/type_traits/intrinsics.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
|
||||
|
|
@ -223,12 +194,8 @@ 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
|
||||
blind.o: ../../include/CGAL/Monge_via_jet_fitting.h
|
||||
blind.o: ../../include/CGAL/jet_fitting_3_assertions.h /usr/include/math.h
|
||||
blind.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h
|
||||
blind.o: /usr/include/bits/mathcalls.h ../../include/CGAL/LinAlg_lapack.h
|
||||
blind.o: PolyhedralSurf.h /usr/include/boost/graph/properties.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
|
||||
|
|
@ -243,21 +210,23 @@ 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/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/iterator/iterator_categories.hpp
|
||||
blind.o: /usr/include/boost/iterator/detail/config_def.hpp
|
||||
blind.o: /usr/include/boost/mpl/eval_if.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
|
||||
|
|
@ -281,13 +250,18 @@ 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/implicit_cast.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
|
||||
|
|
@ -316,6 +290,7 @@ 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
|
||||
|
|
@ -325,16 +300,10 @@ 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/posix_features.hpp
|
||||
PolyhedralSurf.o: /usr/include/unistd.h /usr/include/features.h
|
||||
PolyhedralSurf.o: /usr/include/sys/cdefs.h /usr/include/gnu/stubs.h
|
||||
PolyhedralSurf.o: /usr/include/bits/posix_opt.h /usr/include/bits/types.h
|
||||
PolyhedralSurf.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h
|
||||
PolyhedralSurf.o: /usr/include/bits/confname.h /usr/include/getopt.h
|
||||
PolyhedralSurf.o: /usr/include/boost/config/suffix.hpp /usr/include/limits.h
|
||||
PolyhedralSurf.o: /usr/include/bits/posix1_lim.h
|
||||
PolyhedralSurf.o: /usr/include/bits/local_lim.h /usr/include/linux/limits.h
|
||||
PolyhedralSurf.o: /usr/include/bits/posix2_lim.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
|
||||
|
|
@ -385,11 +354,8 @@ 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/type_traits/integral_constant.hpp
|
||||
PolyhedralSurf.o: /usr/include/boost/mpl/bool.hpp
|
||||
PolyhedralSurf.o: /usr/include/boost/mpl/bool_fwd.hpp
|
||||
PolyhedralSurf.o: /usr/include/boost/mpl/integral_c.hpp
|
||||
PolyhedralSurf.o: /usr/include/boost/mpl/integral_c_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
|
||||
|
|
@ -401,17 +367,7 @@ 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/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_abstract.hpp
|
||||
PolyhedralSurf.o: /usr/include/boost/static_assert.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/remove_cv.hpp
|
||||
PolyhedralSurf.o: /usr/include/boost/type_traits/broken_compiler_spec.hpp
|
||||
PolyhedralSurf.o: /usr/include/boost/type_traits/detail/cv_traits_impl.hpp
|
||||
PolyhedralSurf.o: /usr/include/boost/type_traits/intrinsics.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
|
||||
|
|
@ -463,21 +419,24 @@ 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/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/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
|
||||
|
|
@ -502,13 +461,18 @@ 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/implicit_cast.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
|
||||
|
|
@ -536,16 +500,15 @@ 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 /usr/include/sys/types.h
|
||||
PolyhedralSurf.o: /usr/include/time.h /usr/include/endian.h
|
||||
PolyhedralSurf.o: /usr/include/bits/endian.h /usr/include/sys/select.h
|
||||
PolyhedralSurf.o: /usr/include/bits/select.h /usr/include/bits/sigset.h
|
||||
PolyhedralSurf.o: /usr/include/bits/time.h /usr/include/sys/sysmacros.h
|
||||
PolyhedralSurf.o: /usr/include/bits/pthreadtypes.h /usr/include/bits/sched.h
|
||||
PolyhedralSurf.o: /usr/include/alloca.h /usr/include/stdio.h
|
||||
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 /usr/include/bits/stdio_lim.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
|
||||
PolyhedralSurf.o: /usr/include/boost/property_map.hpp
|
||||
PolyhedralSurf.o: /usr/include/boost/config.hpp
|
||||
|
|
@ -554,16 +517,10 @@ 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/posix_features.hpp
|
||||
PolyhedralSurf.o: /usr/include/unistd.h /usr/include/features.h
|
||||
PolyhedralSurf.o: /usr/include/sys/cdefs.h /usr/include/gnu/stubs.h
|
||||
PolyhedralSurf.o: /usr/include/bits/posix_opt.h /usr/include/bits/types.h
|
||||
PolyhedralSurf.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h
|
||||
PolyhedralSurf.o: /usr/include/bits/confname.h /usr/include/getopt.h
|
||||
PolyhedralSurf.o: /usr/include/boost/config/suffix.hpp /usr/include/limits.h
|
||||
PolyhedralSurf.o: /usr/include/bits/posix1_lim.h
|
||||
PolyhedralSurf.o: /usr/include/bits/local_lim.h /usr/include/linux/limits.h
|
||||
PolyhedralSurf.o: /usr/include/bits/posix2_lim.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
|
||||
|
|
@ -614,11 +571,8 @@ 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/type_traits/integral_constant.hpp
|
||||
PolyhedralSurf.o: /usr/include/boost/mpl/bool.hpp
|
||||
PolyhedralSurf.o: /usr/include/boost/mpl/bool_fwd.hpp
|
||||
PolyhedralSurf.o: /usr/include/boost/mpl/integral_c.hpp
|
||||
PolyhedralSurf.o: /usr/include/boost/mpl/integral_c_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
|
||||
|
|
@ -630,17 +584,7 @@ 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/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_abstract.hpp
|
||||
PolyhedralSurf.o: /usr/include/boost/static_assert.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/remove_cv.hpp
|
||||
PolyhedralSurf.o: /usr/include/boost/type_traits/broken_compiler_spec.hpp
|
||||
PolyhedralSurf.o: /usr/include/boost/type_traits/detail/cv_traits_impl.hpp
|
||||
PolyhedralSurf.o: /usr/include/boost/type_traits/intrinsics.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
|
||||
|
|
@ -692,21 +636,24 @@ 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/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/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
|
||||
|
|
@ -731,13 +678,18 @@ 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/implicit_cast.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
|
||||
|
|
@ -765,14 +717,13 @@ 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 /usr/include/sys/types.h
|
||||
PolyhedralSurf.o: /usr/include/time.h /usr/include/endian.h
|
||||
PolyhedralSurf.o: /usr/include/bits/endian.h /usr/include/sys/select.h
|
||||
PolyhedralSurf.o: /usr/include/bits/select.h /usr/include/bits/sigset.h
|
||||
PolyhedralSurf.o: /usr/include/bits/time.h /usr/include/sys/sysmacros.h
|
||||
PolyhedralSurf.o: /usr/include/bits/pthreadtypes.h /usr/include/bits/sched.h
|
||||
PolyhedralSurf.o: /usr/include/alloca.h /usr/include/stdio.h
|
||||
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 /usr/include/bits/stdio_lim.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
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
#ifndef _LAPACK_H_
|
||||
#define _LAPACK_H_
|
||||
#ifndef CGAL_LAPACK_H
|
||||
#define CGAL_LAPACK_H
|
||||
|
||||
#include <stdlib.h>
|
||||
#include "blaswrap.h"
|
||||
|
|
@ -8,6 +8,7 @@ extern "C" {
|
|||
#include "clapack.h"
|
||||
}
|
||||
|
||||
namespace CGAL {
|
||||
////////////////////////class Lapack_matrix/////////////////////
|
||||
//in Lapack, matrices are one-dimensional arrays
|
||||
// and elements are column-major ordered
|
||||
|
|
@ -107,4 +108,6 @@ void Lapack::solve_ls_svd_algo(Matrix& M, double* B, double &cond_nb)
|
|||
free(work);
|
||||
}
|
||||
|
||||
#endif
|
||||
} // namespace CGAL
|
||||
|
||||
#endif // CGAL_LAPACK_H
|
||||
|
|
@ -1,10 +1,11 @@
|
|||
#ifndef _MONGE_VIA_JET_FITTING_H_
|
||||
#define _MONGE_VIA_JET_FITTING_H_
|
||||
|
||||
#include <CGAL/basic.h>
|
||||
#include <CGAL/Cartesian.h>
|
||||
#include <CGAL/circulator.h>
|
||||
#include <CGAL/Linear_algebraCd.h>
|
||||
#include "jet_fitting_3_assertions.h"
|
||||
#include <CGAL/jet_fitting_3_assertions.h>
|
||||
#include <CGAL/Lapack/Linear_algebra_lapack.h>
|
||||
|
||||
//#include <CGAL/eigen.h> //for ALTERNATIVE with CGAL eigen code
|
||||
|
||||
|
|
@ -12,15 +13,22 @@
|
|||
|
||||
CGAL_BEGIN_NAMESPACE
|
||||
|
||||
int fact(int n)
|
||||
{
|
||||
if (n == 0)
|
||||
return(1);
|
||||
return(n * fact(n-1));
|
||||
// int fact(int n)
|
||||
// {
|
||||
// if (n == 0)
|
||||
// return(1);
|
||||
// return(n * fact(n-1));
|
||||
// }
|
||||
|
||||
unsigned int fact(unsigned int n){
|
||||
unsigned int i, p=1;
|
||||
for(i=2; i<=n; i++) p *= i;
|
||||
return p;
|
||||
}
|
||||
////////////////////// CLASS Monge_rep ////////////////////////
|
||||
|
||||
////////////////////// CLASS Monge_form ////////////////////////
|
||||
template <class DataKernel>
|
||||
class Monge_rep {
|
||||
class Monge_form {
|
||||
public:
|
||||
typedef typename DataKernel::FT DFT;
|
||||
typedef typename DataKernel::Point_3 DPoint;
|
||||
|
|
@ -40,14 +48,14 @@ protected:
|
|||
|
||||
public:
|
||||
//constructor
|
||||
Monge_rep() {
|
||||
Monge_form() {
|
||||
m_origin_pt = DPoint(0.,0.,0.);
|
||||
m_d1 = DVector(0.,0.,0.);
|
||||
m_d2 = DVector(0.,0.,0.);
|
||||
m_n = DVector(0.,0.,0.);
|
||||
m_coefficients = std::vector<DFT>();
|
||||
}
|
||||
~Monge_rep() {}
|
||||
~Monge_form() {}
|
||||
//access
|
||||
const DPoint origin_pt() const { return m_origin_pt; }
|
||||
DPoint& origin_pt() { return m_origin_pt; }
|
||||
|
|
@ -73,14 +81,14 @@ public:
|
|||
};
|
||||
|
||||
template <class DataKernel>
|
||||
void Monge_rep<DataKernel>::
|
||||
void Monge_form<DataKernel>::
|
||||
set_up(int degree) {
|
||||
if ( degree >= 2 ) std::fill_n(back_inserter(m_coefficients),
|
||||
(degree+1)*(degree+2)/2-4, 0.);
|
||||
}
|
||||
|
||||
template <class DataKernel>
|
||||
void Monge_rep<DataKernel>::
|
||||
void Monge_form<DataKernel>::
|
||||
comply_wrt_given_normal(const DVector given_normal)
|
||||
{
|
||||
if ( given_normal*this->n() < 0 )
|
||||
|
|
@ -102,7 +110,7 @@ comply_wrt_given_normal(const DVector given_normal)
|
|||
}
|
||||
|
||||
template <class DataKernel>
|
||||
void Monge_rep<DataKernel>::
|
||||
void Monge_form<DataKernel>::
|
||||
dump_verbose(std::ostream& out_stream)
|
||||
{
|
||||
out_stream << "origin : " << origin_pt() << std::endl
|
||||
|
|
@ -139,7 +147,7 @@ dump_verbose(std::ostream& out_stream)
|
|||
}
|
||||
|
||||
template <class DataKernel>
|
||||
void Monge_rep<DataKernel>::
|
||||
void Monge_form<DataKernel>::
|
||||
dump_4ogl(std::ostream& out_stream, const DFT scale)
|
||||
{
|
||||
CGAL_precondition( coefficients().size() >= 2 );
|
||||
|
|
@ -151,9 +159,9 @@ dump_4ogl(std::ostream& out_stream, const DFT scale)
|
|||
<< std::endl;
|
||||
}
|
||||
|
||||
////////////////////// CLASS Monge_info ////////////////////////
|
||||
////////////////////// CLASS Monge_form_condition_numbers ////////////////////////
|
||||
template <class LocalKernel>
|
||||
class Monge_info {
|
||||
class Monge_form_condition_numbers {
|
||||
public:
|
||||
typedef typename LocalKernel::FT LFT;
|
||||
typedef typename LocalKernel::Vector_3 LVector;
|
||||
|
|
@ -164,7 +172,7 @@ protected:
|
|||
|
||||
public:
|
||||
//constructor
|
||||
Monge_info() {
|
||||
Monge_form_condition_numbers() {
|
||||
m_cond_nb = 0.;
|
||||
std::fill_n(m_pca_eigen_vals, 3, 0.);
|
||||
std::fill_n(m_pca_eigen_vecs, 3, LVector());
|
||||
|
|
@ -182,7 +190,7 @@ public:
|
|||
|
||||
|
||||
template <class LocalKernel>
|
||||
void Monge_info<LocalKernel>::
|
||||
void Monge_form_condition_numbers<LocalKernel>::
|
||||
dump_verbose(std::ostream& out_stream)
|
||||
{
|
||||
out_stream << "cond_nb : " << cond_nb() << std::endl
|
||||
|
|
@ -196,21 +204,21 @@ dump_verbose(std::ostream& out_stream)
|
|||
}
|
||||
|
||||
|
||||
|
||||
////////////////////// CLASS Monge_via_jet_fitting ////////////////////////
|
||||
template < class DataKernel, class LocalKernel, class LinAlgTraits>
|
||||
template < class DataKernel, class LocalKernel = Cartesian<double>, class LinAlgTraits = Lapack>
|
||||
class Monge_via_jet_fitting {
|
||||
public:
|
||||
typedef DataKernel Data_Kernel;
|
||||
typedef LocalKernel Local_Kernel;
|
||||
typedef typename std::vector<typename Data_Kernel::Point_3>::iterator Range_Iterator;
|
||||
typedef Monge_rep<Data_Kernel> Monge_rep;
|
||||
typedef Monge_info<Local_Kernel> Monge_info;
|
||||
typedef Monge_form<Data_Kernel> Monge_form;
|
||||
typedef Monge_form_condition_numbers<Local_Kernel> Monge_form_condition_numbers;
|
||||
|
||||
|
||||
public:
|
||||
Monge_via_jet_fitting(Range_Iterator begin, Range_Iterator end,
|
||||
int d, int dprime,
|
||||
Monge_rep &monge_rep, Monge_info &monge_info);
|
||||
Monge_form &monge_form, Monge_form_condition_numbers &monge_form_condition_numbers);
|
||||
|
||||
protected:
|
||||
typedef typename Local_Kernel::FT LFT;
|
||||
|
|
@ -240,10 +248,10 @@ protected:
|
|||
Aff_transformation translate_p0, change_world2fitting,
|
||||
change_fitting2monge;
|
||||
|
||||
//eigen val and vect stored in monge_info,
|
||||
//eigen val and vect stored in monge_form_condition_numbers,
|
||||
// change_world2fitting is computed
|
||||
void compute_PCA(Range_Iterator begin, Range_Iterator end,
|
||||
Monge_info &monge_info);
|
||||
Monge_form_condition_numbers &monge_form_condition_numbers);
|
||||
|
||||
//Coordinates of input points are computed in the fitting basis with
|
||||
// p0 as origin.
|
||||
|
|
@ -253,18 +261,18 @@ protected:
|
|||
|
||||
//A is computed, solving MA=Z in the ls sense, the solution A is stored in Z
|
||||
//Preconditionning is needed
|
||||
//the condition number of the matrix M is stored in monge_info
|
||||
void solve_linear_system(LAMatrix &M, LFT* Z, Monge_info& monge_info);
|
||||
//the condition number of the matrix M is stored in monge_form_condition_numbers
|
||||
void solve_linear_system(LAMatrix &M, LFT* Z, Monge_form_condition_numbers& monge_form_condition_numbers);
|
||||
|
||||
//Classical differential geometric calculus
|
||||
//change_fitting2monge is computed
|
||||
//if deg_monge =1 only 1st order info
|
||||
//if deg_monge >= 2 2nd order info are computed
|
||||
void compute_Monge_basis(const LFT* A, Monge_rep& monge_rep);
|
||||
void compute_Monge_basis(const LFT* A, Monge_form& monge_form);
|
||||
|
||||
//if deg_monge >=3 then 3rd (and 4th) order info are computed
|
||||
void compute_Monge_coefficients(LFT* A, int dprime,
|
||||
Monge_rep& monge_rep);
|
||||
Monge_form& monge_form);
|
||||
|
||||
//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,
|
||||
|
|
@ -279,8 +287,8 @@ template < class DataKernel, class LocalKernel, class LinAlgTraits>
|
|||
Monge_via_jet_fitting<DataKernel, LocalKernel, LinAlgTraits>::
|
||||
Monge_via_jet_fitting(Range_Iterator begin, Range_Iterator end,
|
||||
int d, int dprime,
|
||||
Monge_rep& monge_rep,
|
||||
Monge_info& monge_info)
|
||||
Monge_form& monge_form,
|
||||
Monge_form_condition_numbers& monge_form_condition_numbers)
|
||||
{
|
||||
// precondition: on the degrees, jet and monge
|
||||
CGAL_precondition( (d >=1) && (dprime >= 1)
|
||||
|
|
@ -293,22 +301,22 @@ Monge_via_jet_fitting(Range_Iterator begin, Range_Iterator end,
|
|||
CGAL_precondition( nb_input_pts >= nb_d_jet_coeff );
|
||||
|
||||
//Initialize
|
||||
monge_rep.set_up(dprime);
|
||||
monge_form.set_up(dprime);
|
||||
//for the system MA=Z
|
||||
LAMatrix M(nb_input_pts, nb_d_jet_coeff);
|
||||
LFT* Z = (LFT*) malloc(nb_input_pts*sizeof(LFT));
|
||||
|
||||
compute_PCA(begin, end, monge_info);
|
||||
compute_PCA(begin, end, monge_form_condition_numbers);
|
||||
fill_matrix(begin, end, d, M, Z);//with precond
|
||||
solve_linear_system(M, Z, monge_info); //correct with precond
|
||||
compute_Monge_basis(Z, monge_rep);
|
||||
if ( dprime >= 3) compute_Monge_coefficients(Z, dprime, monge_rep);
|
||||
solve_linear_system(M, Z, monge_form_condition_numbers); //correct with precond
|
||||
compute_Monge_basis(Z, monge_form);
|
||||
if ( dprime >= 3) compute_Monge_coefficients(Z, dprime, monge_form);
|
||||
}
|
||||
|
||||
template < class DataKernel, class LocalKernel, class LinAlgTraits>
|
||||
void Monge_via_jet_fitting<DataKernel, LocalKernel, LinAlgTraits>::
|
||||
compute_PCA(Range_Iterator begin, Range_Iterator end,
|
||||
Monge_info &monge_info)
|
||||
Monge_form_condition_numbers &monge_form_condition_numbers)
|
||||
{
|
||||
LAMatrix Cov(3,3);
|
||||
LFT* eval = (LFT*) malloc(3*sizeof(LFT));
|
||||
|
|
@ -356,25 +364,25 @@ compute_PCA(Range_Iterator begin, Range_Iterator end,
|
|||
// eigen vectors are sorted in accordance.
|
||||
LinAlgTraits::eigen_symm_algo(Cov, eval, evec);
|
||||
|
||||
//store in monge_info, pca eigenvalues are stored in descending order
|
||||
monge_info.pca_eigen_vals()[0] = eval[2];//implicit cast LAFT->LFT
|
||||
//store in monge_form_condition_numbers, pca eigenvalues are stored in descending order
|
||||
monge_form_condition_numbers.pca_eigen_vals()[0] = eval[2];//implicit cast LAFT->LFT
|
||||
LVector temp_vectn(evec.get_elt(0,2),evec.get_elt(1,2),evec.get_elt(2,2));
|
||||
monge_info.pca_eigen_vecs()[0] = temp_vectn;
|
||||
monge_form_condition_numbers.pca_eigen_vecs()[0] = temp_vectn;
|
||||
|
||||
monge_info.pca_eigen_vals()[1] = eval[1];
|
||||
monge_form_condition_numbers.pca_eigen_vals()[1] = eval[1];
|
||||
LVector temp_vect1(evec.get_elt(0,1),evec.get_elt(1,1),evec.get_elt(2,1));
|
||||
monge_info.pca_eigen_vecs()[1] = temp_vect1;
|
||||
monge_form_condition_numbers.pca_eigen_vecs()[1] = temp_vect1;
|
||||
|
||||
monge_info.pca_eigen_vals()[2] = eval[0];
|
||||
monge_form_condition_numbers.pca_eigen_vals()[2] = eval[0];
|
||||
LVector temp_vect2(evec.get_elt(0,0),evec.get_elt(1,0),evec.get_elt(2,0));
|
||||
monge_info.pca_eigen_vecs()[2] = temp_vect2;
|
||||
monge_form_condition_numbers.pca_eigen_vecs()[2] = temp_vect2;
|
||||
|
||||
switch_to_direct_orientation(monge_info.pca_eigen_vecs()[0],
|
||||
monge_info.pca_eigen_vecs()[1],
|
||||
monge_info.pca_eigen_vecs()[2]);
|
||||
switch_to_direct_orientation(monge_form_condition_numbers.pca_eigen_vecs()[0],
|
||||
monge_form_condition_numbers.pca_eigen_vecs()[1],
|
||||
monge_form_condition_numbers.pca_eigen_vecs()[2]);
|
||||
|
||||
//Store the change of basis W->F
|
||||
const LVector* pca_vecs = monge_info.pca_eigen_vecs();
|
||||
const LVector* pca_vecs = monge_form_condition_numbers.pca_eigen_vecs();
|
||||
Aff_transformation
|
||||
change_basis (pca_vecs[0][0], pca_vecs[0][1], pca_vecs[0][2],
|
||||
pca_vecs[1][0], pca_vecs[1][1], pca_vecs[1][2],
|
||||
|
|
@ -382,7 +390,7 @@ compute_PCA(Range_Iterator begin, Range_Iterator end,
|
|||
this->change_world2fitting = change_basis;
|
||||
|
||||
/* //debug //test the old method, fitting basis is a permutation of the world basis */
|
||||
/* const LVector* pca_vecs = monge_info.pca_eigen_vecs(); */
|
||||
/* const LVector* pca_vecs = monge_form_condition_numbers.pca_eigen_vecs(); */
|
||||
/* const LVector n_pca = pca_vecs[2]; */
|
||||
/* int index_max=0; */
|
||||
/* x = std::fabs(n_pca[0]); y = std::fabs(n_pca[1]); z = std::fabs(n_pca[2]); */
|
||||
|
|
@ -449,16 +457,16 @@ fill_matrix(Range_Iterator begin, Range_Iterator end,
|
|||
|
||||
template < class DataKernel, class LocalKernel, class LinAlgTraits>
|
||||
void Monge_via_jet_fitting<DataKernel, LocalKernel, LinAlgTraits>::
|
||||
solve_linear_system(LAMatrix &M, LFT* Z, Monge_info& monge_info)
|
||||
solve_linear_system(LAMatrix &M, LFT* Z, Monge_form_condition_numbers& monge_form_condition_numbers)
|
||||
{
|
||||
LinAlgTraits::solve_ls_svd_algo(M, Z, monge_info.cond_nb());
|
||||
LinAlgTraits::solve_ls_svd_algo(M, Z, monge_form_condition_numbers.cond_nb());
|
||||
for (int k=0; k <= this->deg; k++) for (int i=0; i<=k; i++)
|
||||
Z[k*(k+1)/2+i] /= std::pow(this->preconditionning,k);
|
||||
}
|
||||
|
||||
template < class DataKernel, class LocalKernel, class LinAlgTraits>
|
||||
void Monge_via_jet_fitting<DataKernel, LocalKernel, LinAlgTraits>::
|
||||
compute_Monge_basis(const LFT* A, Monge_rep& monge_rep)
|
||||
compute_Monge_basis(const LFT* A, Monge_form& monge_form)
|
||||
{
|
||||
// only 1st order info.
|
||||
if ( this->deg_monge == 1 ) {
|
||||
|
|
@ -466,10 +474,10 @@ compute_Monge_basis(const LFT* A, Monge_rep& monge_rep)
|
|||
LVector normal(-A[1], -A[2], 1.);
|
||||
LFT norm2 = normal * normal;
|
||||
normal = normal / Lsqrt(norm2);
|
||||
monge_rep.origin_pt() =
|
||||
monge_form.origin_pt() =
|
||||
(this->translate_p0.inverse() *
|
||||
this->change_world2fitting.inverse()) (orig_monge );
|
||||
monge_rep.n() = this->change_world2fitting.inverse()(normal);
|
||||
monge_form.n() = this->change_world2fitting.inverse()(normal);
|
||||
}
|
||||
// else (deg_monge >= 2) then 2nd order info are computed
|
||||
else {
|
||||
|
|
@ -538,14 +546,14 @@ compute_Monge_basis(const LFT* A, Monge_rep& monge_rep)
|
|||
|
||||
//store the monge basis origin and vectors with their world coord
|
||||
//store ppal curv
|
||||
monge_rep.origin_pt() =
|
||||
monge_form.origin_pt() =
|
||||
(this->translate_p0.inverse() *
|
||||
this->change_world2fitting.inverse()) (orig_monge );
|
||||
monge_rep.d1() = this->change_world2fitting.inverse()(d_max);
|
||||
monge_rep.d2() = this->change_world2fitting.inverse()(d_min);
|
||||
monge_rep.n() = this->change_world2fitting.inverse()(normal);
|
||||
monge_rep.coefficients()[0] = eval[1];
|
||||
monge_rep.coefficients()[1] = eval[0];
|
||||
monge_form.d1() = this->change_world2fitting.inverse()(d_max);
|
||||
monge_form.d2() = this->change_world2fitting.inverse()(d_min);
|
||||
monge_form.n() = this->change_world2fitting.inverse()(normal);
|
||||
monge_form.coefficients()[0] = eval[1];
|
||||
monge_form.coefficients()[1] = eval[0];
|
||||
}
|
||||
//end else
|
||||
}
|
||||
|
|
@ -553,7 +561,7 @@ compute_Monge_basis(const LFT* A, Monge_rep& monge_rep)
|
|||
template < class DataKernel, class LocalKernel, class LinAlgTraits>
|
||||
void Monge_via_jet_fitting<DataKernel, LocalKernel, LinAlgTraits>::
|
||||
compute_Monge_coefficients(LFT* A, int dprime,
|
||||
Monge_rep& monge_rep)
|
||||
Monge_form& monge_form)
|
||||
{
|
||||
//One has the equation w=J_A(u,v) of the fitted surface S
|
||||
// in the fitting_basis
|
||||
|
|
@ -683,10 +691,10 @@ compute_Monge_coefficients(LFT* A, int dprime,
|
|||
LFT b2 = 1/(f3*f3)*(-f122*f3+f13*f22);
|
||||
LFT b3 = -1/(f3*f3)*(f222*f3-3*f23*f22);
|
||||
|
||||
monge_rep.coefficients()[2] = b0;
|
||||
monge_rep.coefficients()[3] = b1;
|
||||
monge_rep.coefficients()[4] = b2;
|
||||
monge_rep.coefficients()[5] = b3;
|
||||
monge_form.coefficients()[2] = b0;
|
||||
monge_form.coefficients()[3] = b1;
|
||||
monge_form.coefficients()[4] = b2;
|
||||
monge_form.coefficients()[5] = b3;
|
||||
|
||||
if ( dprime == 4 )
|
||||
{
|
||||
|
|
@ -742,11 +750,11 @@ compute_Monge_coefficients(LFT* A, int dprime,
|
|||
LFT c4 =
|
||||
-1/(f3*f3*f3)*(f2222*(f3*f3)+3*f33*f22*f22-6*f223*f3*f22-4*f23*f3*f222+12*f23*f23*f22) ;
|
||||
|
||||
monge_rep.coefficients()[6] = c0;
|
||||
monge_rep.coefficients()[7] = c1;
|
||||
monge_rep.coefficients()[8] = c2;
|
||||
monge_rep.coefficients()[9] = c3;
|
||||
monge_rep.coefficients()[10] = c4;
|
||||
monge_form.coefficients()[6] = c0;
|
||||
monge_form.coefficients()[7] = c1;
|
||||
monge_form.coefficients()[8] = c2;
|
||||
monge_form.coefficients()[9] = c3;
|
||||
monge_form.coefficients()[10] = c4;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue