libigl v2.5.0
Loading...
Searching...
No Matches
variable_radius_offset.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_VARIABLE_RADIUS_OFFSET_H
9#define IGL_VARIABLE_RADIUS_OFFSET_H
10#include "igl_inline.h"
11#include <Eigen/Core>
12#include <vector>
13#include <functional>
14
15namespace igl
16{
17 template <typename Scalar>
18 class SphereMeshWedge;
19
33 template <
34 typename DerivedV,
35 typename DerivedF,
36 typename DerivedR,
37 typename Derivedorigin,
38 typename DerivedmV,
39 typename DerivedmF>
41 const Eigen::MatrixBase<DerivedV> & V,
42 const Eigen::MatrixBase<DerivedF> & F,
43 const Eigen::MatrixBase<DerivedR> & R,
44 const Eigen::MatrixBase<Derivedorigin> & origin,
45 const typename Derivedorigin::Scalar h0,
46 const int max_depth,
47 Eigen::PlainObjectBase<DerivedmV> & mV,
48 Eigen::PlainObjectBase<DerivedmF> & mF);
49
64 template <
65 typename DerivedV,
66 typename DerivedF,
67 typename DerivedR,
68 typename DerivedPB1,
69 typename DerivedPB2,
70 typename Scalar>
72 const Eigen::MatrixBase<DerivedV> & V,
73 const Eigen::MatrixBase<DerivedF> & F,
74 const Eigen::MatrixBase<DerivedR> & R,
75 Eigen::PlainObjectBase<DerivedPB1> & PB1,
76 Eigen::PlainObjectBase<DerivedPB2> & PB2,
77 std::vector<igl::SphereMeshWedge<Scalar>> & data,
78 std::function<Scalar(const Eigen::Matrix<Scalar,1,3> &,const int i)> &
79 primitive);
80
82 template <
83 typename DerivedPB1,
84 typename DerivedPB2,
85 typename Scalar,
86 typename Derivedorigin,
87 typename DerivedmV,
88 typename DerivedmF>
90 const Eigen::MatrixBase<DerivedPB1> & PB1,
91 const Eigen::MatrixBase<DerivedPB2> & PB2,
92 const std::vector<igl::SphereMeshWedge<Scalar>> & data,
93 const std::function<Scalar(const Eigen::Matrix<Scalar,1,3> &,const int i)> &
94 primitive,
95 const Eigen::MatrixBase<Derivedorigin> & origin,
96 const Scalar h0,
97 const int max_depth,
98 Eigen::PlainObjectBase<DerivedmV> & mV,
99 Eigen::PlainObjectBase<DerivedmF> & mF);
100}
101
102#ifndef IGL_STATIC_LIBRARY
103# include "variable_radius_offset.cpp"
104#endif
105#endif
106
A class to compute the signed distance to a "Sphere-Mesh Wedge" as seen in variable radius offset sur...
Definition SphereMeshWedge.h:28
Definition AABB.h:18
void variable_radius_offset(const Eigen::MatrixBase< DerivedV > &V, const Eigen::MatrixBase< DerivedF > &F, const Eigen::MatrixBase< DerivedR > &R, const Eigen::MatrixBase< Derivedorigin > &origin, const typename Derivedorigin::Scalar h0, const int max_depth, Eigen::PlainObjectBase< DerivedmV > &mV, Eigen::PlainObjectBase< DerivedmF > &mF)
Compute the variable radius offset (see, e.g., "Variable-Radius OffsetCurves and Surfaces" [Lin & Rok...