Subversion Repositories gelsvn

Rev

Go to most recent revision | Blame | Last modification | View Log | RSS feed

/*
 *  curvature.h
 *  GEL
 *
 *  Created by J. Andreas Bærentzen on 23/09/08.
 *  Copyright 2008 __MyCompanyName__. All rights reserved.
 *
 */

#ifndef __MESHEDIT_CURVATURE_H__
#define __MESHEDIT_CURVATURE_H__

#include "CGLA/Mat2x2d.h"
#include "CGLA/Mat3x3d.h"
#include "CGLA/Mat4x4d.h"
#include "HMesh/Manifold.h"


double voronoi_area(HMesh::VertexIter v);

double barycentric_area(HMesh::VertexIter v);

const CGLA::Vec3d mean_curvature_normal(HMesh::VertexIter v);

double sum_curvatures(HMesh::Manifold& m, std::vector<double>& curvature);


const double gaussian_curvature_angle_defect(HMesh::VertexIter v);

const CGLA::Mat3x3d curvature_tensor(HMesh::HalfEdgeIter h);

const CGLA::Mat3x3d curvature_tensor_from_edges(HMesh::VertexIter v);


void curvature_tensor_paraboloid(HMesh::VertexIter v,
                                                                 CGLA::Mat2x2d& curv_tensor,
                                                                 CGLA::Mat3x3d& frame);

void curvature_tensors_from_edges(HMesh::Manifold& m, 
                                                                  std::vector<CGLA::Mat3x3d>& curvature_tensors);

void smooth_curvature_tensors(HMesh::Manifold& m,                                                                                                                                       
                                                          std::vector<CGLA::Mat3x3d>& curvature_tensors);

void gaussian_curvature_angle_defects(HMesh::Manifold& m,
                                                                          std::vector<double>& curvature,
                                                                          int smooth_steps=0);

void mean_curvatures(HMesh::Manifold& m, std::vector<double>& curvature,int smooth_steps=0);


void curvature_paraboloids(HMesh::Manifold& m,
                                                   std::vector<CGLA::Vec3d>& min_curv_direction,
                                                   std::vector<CGLA::Vec3d>& max_curv_direction,
                                                   std::vector<double>& curvature);


void curvature_from_tensors(HMesh::Manifold& m,
                                                        const std::vector<CGLA::Mat3x3d>& curvature_tensors,
                                                        std::vector<CGLA::Vec3d>& min_curv_direction,
                                                        std::vector<CGLA::Vec3d>& max_curv_direction,
                                                        std::vector<double>& curvature);




#endif

Generated by GNU Enscript 1.6.6.