#include <iostream>
#include <vector>
#include <algorithm>
#include <cmath>
#include "mlib/points.H"
#include "mlib/linear_sys.H"
#include "mesh/bvert.H"
#include "mesh/bface.H"
#include "mesh/bmesh.H"
#include "mesh/bmesh_curvature.H"
Include dependency graph for bmesh_curvature.C:
Go to the source code of this file.
Functions | |
void | rot_coord_sys (const Wvec &old_u, const Wvec &old_v, const Wvec &new_norm, Wvec &new_u, Wvec &new_v) |
Rotate a coordinate system to be perpendicular to the given normal. | |
void | proj_curv (const Wvec &old_u, const Wvec &old_v, double old_ku, double old_kuv, double old_kv, const Wvec &new_u, const Wvec &new_v, double &new_ku, double &new_kuv, double &new_kv) |
Reproject a curvature tensor from the basis spanned by old_u and old_v (which are assumed to be unit-length and perpendicular) to the new_u, new_v basis. | |
void | proj_dcurv (const Wvec &old_u, const Wvec &old_v, const BMESHcurvature_data::dcurv_tensor_t &old_dcurv, const Wvec &new_u, const Wvec &new_v, BMESHcurvature_data::dcurv_tensor_t &new_dcurv) |
Like proj_curv(), but for the derivative of curvature. | |
void | diagonalize_curv (const Wvec &old_u, const Wvec &old_v, double ku, double kuv, double kv, const Wvec &new_norm, Wvec &pdir1, Wvec &pdir2, double &k1, double &k2) |
Given a curvature tensor, find principal directions and curvatures. | |
void | compute_edge_vectors (const BMESH *mesh, int face_idx, Wvec edges[3]) |
void | compute_ntb_coord_sys (const Wvec edges[3], Wvec &n, Wvec &t, Wvec &b) |
void | compute_initial_vertex_coord_sys (const BMESH *mesh, vector< Wvec > &pdir1, vector< Wvec > &pdir2) |
Definition in file bmesh_curvature.C.
|
Definition at line 648 of file bmesh_curvature.C. References BMESH::bf(), Bvert::loc(), Bface::v1(), Bface::v2(), and Bface::v3(). Referenced by BMESHcurvature_data::compute_corner_areas(), BMESHcurvature_data::compute_face_curvatures(), BMESHcurvature_data::compute_face_dcurv(), BMESHcurvature_data::compute_vertex_curvatures(), and BMESHcurvature_data::compute_vertex_dcurv(). |
|
Definition at line 672 of file bmesh_curvature.C. References BMESH::bf(), BMESH::bv(), mlib::cross(), Bvert::index(), Bvert::loc(), BMESH::nfaces(), Bvert::norm(), mlib::Vec4::normalized(), BMESH::nverts(), Bface::v1(), Bface::v2(), and Bface::v3(). Referenced by BMESHcurvature_data::compute_vertex_curvatures(), and BMESHcurvature_data::diagonalize_vertex_curvatures(). |
|
Definition at line 660 of file bmesh_curvature.C. References mlib::cross(), mlib::Vec4::normalized(), and mlib::Vec3< V >::normalized(). Referenced by BMESHcurvature_data::compute_face_curvatures(), BMESHcurvature_data::compute_face_dcurv(), BMESHcurvature_data::compute_vertex_curvatures(), and BMESHcurvature_data::compute_vertex_dcurv(). |
|
Given a curvature tensor, find principal directions and curvatures. Makes sure that pdir1 and pdir2 are perpendicular to normal. Definition at line 615 of file bmesh_curvature.C. References mlib::cross(), rot_coord_sys(), and swap(). Referenced by BMESHcurvature_data::diagonalize_vertex_curvatures(). |
|
Reproject a curvature tensor from the basis spanned by old_u and old_v (which are assumed to be unit-length and perpendicular) to the new_u, new_v basis.
Definition at line 553 of file bmesh_curvature.C. References mlib::cross(), and rot_coord_sys(). Referenced by BMESHcurvature_data::compute_face_dcurv(), and BMESHcurvature_data::compute_vertex_curvatures(). |
|
Like proj_curv(), but for the derivative of curvature.
Definition at line 576 of file bmesh_curvature.C. References mlib::cross(), and rot_coord_sys(). Referenced by BMESHcurvature_data::compute_vertex_dcurv(). |
|
Rotate a coordinate system to be perpendicular to the given normal.
Definition at line 527 of file bmesh_curvature.C. References mlib::cross(). Referenced by diagonalize_curv(), proj_curv(), and proj_dcurv(). |