403 |
jab |
1 |
/*
|
|
|
2 |
* curvature.h
|
|
|
3 |
* GEL
|
|
|
4 |
*
|
|
|
5 |
* Created by J. Andreas Bærentzen on 23/09/08.
|
|
|
6 |
* Copyright 2008 __MyCompanyName__. All rights reserved.
|
|
|
7 |
*
|
|
|
8 |
*/
|
|
|
9 |
|
|
|
10 |
#ifndef __MESHEDIT_CURVATURE_H__
|
|
|
11 |
#define __MESHEDIT_CURVATURE_H__
|
|
|
12 |
|
|
|
13 |
#include "CGLA/Mat2x2d.h"
|
|
|
14 |
#include "CGLA/Mat3x3d.h"
|
|
|
15 |
#include "CGLA/Mat4x4d.h"
|
|
|
16 |
#include "HMesh/Manifold.h"
|
|
|
17 |
|
|
|
18 |
|
|
|
19 |
double voronoi_area(HMesh::VertexIter v);
|
|
|
20 |
|
|
|
21 |
double barycentric_area(HMesh::VertexIter v);
|
|
|
22 |
|
412 |
jab |
23 |
void unnormalized_mean_curvature_normal(HMesh::VertexIter v, CGLA::Vec3d& curv_normal, double& w_sum);
|
|
|
24 |
|
403 |
jab |
25 |
const CGLA::Vec3d mean_curvature_normal(HMesh::VertexIter v);
|
|
|
26 |
|
|
|
27 |
double sum_curvatures(HMesh::Manifold& m, std::vector<double>& curvature);
|
|
|
28 |
|
|
|
29 |
|
|
|
30 |
const double gaussian_curvature_angle_defect(HMesh::VertexIter v);
|
|
|
31 |
|
|
|
32 |
const CGLA::Mat3x3d curvature_tensor(HMesh::HalfEdgeIter h);
|
|
|
33 |
|
|
|
34 |
const CGLA::Mat3x3d curvature_tensor_from_edges(HMesh::VertexIter v);
|
|
|
35 |
|
|
|
36 |
|
|
|
37 |
void curvature_tensor_paraboloid(HMesh::VertexIter v,
|
|
|
38 |
CGLA::Mat2x2d& curv_tensor,
|
|
|
39 |
CGLA::Mat3x3d& frame);
|
|
|
40 |
|
|
|
41 |
void curvature_tensors_from_edges(HMesh::Manifold& m,
|
|
|
42 |
std::vector<CGLA::Mat3x3d>& curvature_tensors);
|
|
|
43 |
|
|
|
44 |
void smooth_curvature_tensors(HMesh::Manifold& m,
|
|
|
45 |
std::vector<CGLA::Mat3x3d>& curvature_tensors);
|
|
|
46 |
|
|
|
47 |
void gaussian_curvature_angle_defects(HMesh::Manifold& m,
|
|
|
48 |
std::vector<double>& curvature,
|
|
|
49 |
int smooth_steps=0);
|
|
|
50 |
|
|
|
51 |
void mean_curvatures(HMesh::Manifold& m, std::vector<double>& curvature,int smooth_steps=0);
|
|
|
52 |
|
|
|
53 |
|
|
|
54 |
void curvature_paraboloids(HMesh::Manifold& m,
|
|
|
55 |
std::vector<CGLA::Vec3d>& min_curv_direction,
|
|
|
56 |
std::vector<CGLA::Vec3d>& max_curv_direction,
|
|
|
57 |
std::vector<double>& curvature);
|
|
|
58 |
|
|
|
59 |
|
|
|
60 |
void curvature_from_tensors(HMesh::Manifold& m,
|
|
|
61 |
const std::vector<CGLA::Mat3x3d>& curvature_tensors,
|
|
|
62 |
std::vector<CGLA::Vec3d>& min_curv_direction,
|
|
|
63 |
std::vector<CGLA::Vec3d>& max_curv_direction,
|
|
|
64 |
std::vector<double>& curvature);
|
|
|
65 |
|
|
|
66 |
|
|
|
67 |
|
|
|
68 |
|
|
|
69 |
#endif
|