libigl v2.5.0
Loading...
Searching...
No Matches
SphereMeshWedge.h
Go to the documentation of this file.
1// This file is part of libigl, a simple c++ geometry processing library.
2//
3// Copyright (C) 2025 Alec Jacobson <alecjacobson@gmail.com>
4//
5// This Source Code Form is subject to the terms of the Mozilla Public License
6// v. 2.0. If a copy of the MPL was not distributed with this file, You can
7// obtain one at http://mozilla.org/MPL/2.0/.
8#ifndef IGL_SPHERE_MESH_WEDGE_H
9#define IGL_SPHERE_MESH_WEDGE_H
10
11#include "igl_inline.h"
12#include <Eigen/Core>
13
14namespace igl
15{
26 template <typename Scalar>
28 {
29 public:
30 using RowVector3S = Eigen::Matrix<Scalar, 1, 3>;
31 // Fields
32 enum
33 {
37 FULL = 3
39 Eigen::Matrix<Scalar,3,3,Eigen::RowMajor> V;
40 Eigen::Matrix<Scalar,3,1> r;
41 Eigen::Matrix<Scalar,3,3,Eigen::RowMajor> EV;
42 Eigen::Matrix<Scalar,3,1> l,l2,rr,a2,il2;
43 int max_i;
44 Eigen::Matrix<Scalar,5,4,Eigen::RowMajor> planes;
45 Eigen::Matrix<Scalar,3,3,Eigen::RowMajor> T;
46 Eigen::Matrix<Scalar,3,3,Eigen::RowMajor> C;
47
58 const RowVector3S & V0,
59 const RowVector3S & V1,
60 const RowVector3S & V2,
61 const Scalar r0,
62 const Scalar r1,
63 const Scalar r2);
66 IGL_INLINE Scalar operator()(const RowVector3S & p) const;
67 private:
73 IGL_INLINE bool compute_planes();
80 IGL_INLINE Scalar round_cone_signed_distance(const RowVector3S & p, const int i, const int j) const;
81 };
82}
83
84#ifndef IGL_STATIC_LIBRARY
85#include "SphereMeshWedge.cpp"
86#endif
87#endif
Eigen::Matrix< Scalar, 3, 3, Eigen::RowMajor > T
Definition SphereMeshWedge.h:45
Eigen::Matrix< Scalar, 3, 1 > l
Definition SphereMeshWedge.h:42
Scalar operator()(const RowVector3S &p) const
enum igl::SphereMeshWedge::@126012010212102262243072233240265020072223025337 flavor
Eigen::Matrix< Scalar, 3, 1 > l2
Definition SphereMeshWedge.h:42
Eigen::Matrix< Scalar, 3, 1 > il2
Definition SphereMeshWedge.h:42
Eigen::Matrix< Scalar, 5, 4, Eigen::RowMajor > planes
Definition SphereMeshWedge.h:44
SphereMeshWedge()
Definition SphereMeshWedge.h:48
Eigen::Matrix< Scalar, 3, 1 > r
Definition SphereMeshWedge.h:40
SphereMeshWedge(const RowVector3S &V0, const RowVector3S &V1, const RowVector3S &V2, const Scalar r0, const Scalar r1, const Scalar r2)
Constructor that takes three vertices and three radii.
Eigen::Matrix< Scalar, 3, 1 > rr
Definition SphereMeshWedge.h:42
Eigen::Matrix< Scalar, 3, 1 > a2
Definition SphereMeshWedge.h:42
Eigen::Matrix< Scalar, 3, 3, Eigen::RowMajor > EV
Definition SphereMeshWedge.h:41
Eigen::Matrix< Scalar, 3, 3, Eigen::RowMajor > C
Definition SphereMeshWedge.h:46
Eigen::Matrix< Scalar, 1, 3 > RowVector3S
Definition SphereMeshWedge.h:30
Eigen::Matrix< Scalar, 3, 3, Eigen::RowMajor > V
Definition SphereMeshWedge.h:39
int max_i
Definition SphereMeshWedge.h:43
@ BIG_EDGE
Definition SphereMeshWedge.h:35
@ BIG_VERTEX
Definition SphereMeshWedge.h:34
@ FULL
Definition SphereMeshWedge.h:37
@ NO_TRIANGLE
Definition SphereMeshWedge.h:36
#define IGL_INLINE
Definition igl_inline.h:15
Definition AABB.h:18