21 [[nodiscard]]
bool addIfGoodApprox(
const Vector3f& q,
float betaSq,
float& addTo )
const
23 const auto dp =
pos - q;
24 const auto dd = dp.lengthSq();
25 if ( dd <= betaSq *
rr )
27 if (
const auto d = std::sqrt( dd ); d > 0 )
28 addTo += dot( dp,
dirArea ) / ( d * dd );
33static_assert(
sizeof( Dipole ) == 8 *
sizeof(
float ) );
44 const Vector3f & q,
float beta, FaceId skipFace );
Definition MRAABBTree.h:16
float rr
Definition MRDipole.h:18
Vector3f dirArea
Definition MRDipole.h:17
bool addIfGoodApprox(const Vector3f &q, float betaSq, float &addTo) const
Definition MRDipole.h:21
MRMESH_API float calcFastWindingNumber(const Dipoles &dipoles, const AABBTree &tree, const Mesh &mesh, const Vector3f &q, float beta, FaceId skipFace)
float area
Definition MRDipole.h:16
MRMESH_API void calcDipoles(Dipoles &dipoles, const AABBTree &tree, const Mesh &mesh)
calculates dipoles for given mesh and AABB-tree
Vector3f pos
Definition MRDipole.h:15
only for bindings generation
Definition MRCameraOrientationPlugin.h:8