12class IPointsToMeshProjector
15 virtual ~IPointsToMeshProjector() =
default;
19 virtual void findProjections( std::vector<MeshProjectionResult>& result,
const std::vector<Vector3f>& points,
20 const AffineXf3f* worldXf =
nullptr,
const AffineXf3f* worldRefXf =
nullptr,
21 float upDistLimitSq = FLT_MAX,
float loDistLimitSq = 0.0f ) = 0;
24 virtual size_t projectionsHeapBytes(
size_t numProjections )
const = 0;
27struct MeshProjectionParameters
38 const AffineXf3f*
refXf =
nullptr;
41 const AffineXf3f*
xf =
nullptr;
50 const MeshProjectionParameters & params = {},
51 IPointsToMeshProjector * projector = {} );
60 IPointsToMeshProjector * projector = {} );
63class MRMESH_CLASS PointsToMeshProjector :
public IPointsToMeshProjector
65 const Mesh* mesh_{
nullptr };
68 MRMESH_API virtual void updateMeshData(
const Mesh* mesh )
override;
78 MRMESH_API virtual void findProjections( std::vector<MeshProjectionResult>& result,
const std::vector<Vector3f>& points,
79 const AffineXf3f* objXf,
const AffineXf3f* refObjXf,
80 float upDistLimitSq,
float loDistLimitSq )
override;
83 MRMESH_API virtual size_t projectionsHeapBytes(
size_t numProjections )
const override;
#define MRMESH_API
Definition MRMeshFwd.h:80
#define MRMESH_CLASS
Definition MRMeshFwd.h:87
unsafe void findProjections(MR.Std.Vector_MRMeshProjectionResult result, MR.Std.Const_Vector_MRVector3f points, MR.AffineXf3f? worldXf=null, MR.AffineXf3f? worldRefXf=null, float? upDistLimitSq=null, float? loDistLimitSq=null)
unsafe void updateMeshData(MR.Const_Mesh? mesh)
Definition MRMesh/MRPointsToMeshProjector.h:28
new unsafe ref float upDistLimitSq
new unsafe ref float loDistLimitSq
new unsafe MR.? ConstBox_AffineXf3f refXf
new unsafe MR.? ConstBox_AffineXf3f xf
Definition MRMesh/MRMesh.h:23
Definition MRCameraOrientationPlugin.h:8
MRMESH_API VertScalars findSignedDistances(const Mesh &refMesh, const VertCoords &testPoints, const VertBitSet *validTestPoints={}, const MeshProjectionParameters ¶ms={}, IPointsToMeshProjector *projector={})
if projector is not given then CPU's computations will be used