Subversion Repositories gelsvn

Rev

Rev 403 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

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

Generated by GNU Enscript 1.6.6.
71

Generated by GNU Enscript 1.6.6.
70
 
72
 
71
 
73
 
72
 
74