1#ifndef IGL_KELVINLETS_H
2#define IGL_KELVINLETS_H
20template<
typename Scalar>
26 std::array<Scalar, 3>
ep{},
w{};
35 static constexpr std::array<Scalar, 3> brush_scaling_params{ 1.0f,
38 for (
int i = 0; i < 3; i++) {
39 ep[i] =
epsilon * brush_scaling_params[i];
57template<
typename DerivedV,
63 const Eigen::MatrixBase<DerivedV>& V,
64 const Eigen::MatrixBase<Derivedx0>& x0,
65 const Eigen::MatrixBase<Derivedf>& f,
66 const Eigen::MatrixBase<DerivedF>& F,
68 Eigen::PlainObjectBase<DerivedU>& U);
72#ifndef IGL_STATIC_LIBRARY
73#include "kelvinlets.cpp"
#define IGL_INLINE
Definition igl_inline.h:15
void kelvinlets(const Eigen::MatrixBase< DerivedV > &V, const Eigen::MatrixBase< Derivedx0 > &x0, const Eigen::MatrixBase< Derivedf > &f, const Eigen::MatrixBase< DerivedF > &F, const KelvinletParams< typename DerivedV::Scalar > ¶ms, Eigen::PlainObjectBase< DerivedU > &U)
Implements Pixar's Regularized Kelvinlets (Pixar Technical Memo #17-03): Sculpting Brushes based on F...
BrushType
Kelvinlets brush type.
Definition kelvinlets.h:12
Parameters for controling kelvinlets.
Definition kelvinlets.h:22
const int scale
Definition kelvinlets.h:24
std::array< Scalar, 3 > w
Definition kelvinlets.h:26
const Scalar epsilon
Definition kelvinlets.h:23
KelvinletParams(const Scalar &epsilon, const int falloff, const BrushType &type)
Definition kelvinlets.h:28
std::array< Scalar, 3 > ep
Definition kelvinlets.h:26
const BrushType brushType
Definition kelvinlets.h:25