12class MRMESH_CLASS ObjectDistanceMap :
public ObjectMeshHolder
16 ObjectDistanceMap( ObjectDistanceMap&& ) noexcept = default;
17 ObjectDistanceMap& operator = ( ObjectDistanceMap&& ) noexcept = default;
18 virtual ~ObjectDistanceMap() = default;
21 ObjectDistanceMap( ProtectedStruct, const ObjectDistanceMap& obj ) : ObjectDistanceMap( obj ) {}
23 constexpr static const char* StaticTypeName() noexcept {
return "ObjectDistanceMap"; }
24 virtual const char* typeName()
const override {
return StaticTypeName(); }
26 constexpr static const char* StaticClassName() noexcept {
return "Distance Map"; }
27 virtual std::string className()
const override {
return StaticClassName(); }
29 constexpr static const char* StaticClassNameInPlural() noexcept {
return "Distance Maps"; }
30 virtual std::string classNameInPlural()
const override {
return StaticClassNameInPlural(); }
32 MRMESH_API virtual void applyScale(
float scaleFactor )
override;
34 MRMESH_API virtual std::shared_ptr<Object> clone()
const override;
35 MRMESH_API virtual std::shared_ptr<Object> shallowClone()
const override;
37 MRMESH_API virtual std::vector<std::string> getInfoLines()
const override;
44 const std::shared_ptr<DistanceMap>& dmap,
45 const AffineXf3f& dmap2local,
46 bool needUpdateMesh =
true,
47 ProgressCallback cb = {} );
50 MRMESH_API std::shared_ptr<Mesh> calculateMesh( ProgressCallback cb = {} )
const;
52 MRMESH_API void updateMesh(
const std::shared_ptr<Mesh>& mesh );
54 [[nodiscard]]
const std::shared_ptr<DistanceMap>& getDistanceMap()
const {
return dmap_; }
56 [[nodiscard]]
virtual bool hasModel()
const override {
return bool( dmap_ ); }
59 MRMESH_API const AffineXf3f& getToWorldParameters()
const {
return dmap2local_; }
67 ObjectDistanceMap(
const ObjectDistanceMap& other ) =
default;
70 MRMESH_API virtual void swapBase_( Object& other )
override;
72 MRMESH_API virtual void serializeFields_( Json::Value& root )
const override;
74 MRMESH_API void deserializeFields_(
const Json::Value& root )
override;
76 MRMESH_API Expected<void> deserializeModel_(
const std::filesystem::path& path, ProgressCallback progressCb = {} )
override;
78 MRMESH_API virtual Expected<std::future<Expected<void>>> serializeModel_(
const std::filesystem::path& path )
const override;
80 std::shared_ptr<DistanceMap> dmap_;
81 AffineXf3f dmap2local_;
83 const char * saveDistanceMapFormat_{
".raw" };
90 const std::shared_ptr<DistanceMap>& dmap,
91 const AffineXf3f& dmap2local,
92 bool needUpdateMesh =
true,
93 ProgressCallback cb = {} );
96 void setDefaultColors_();
99 void setDefaultSceneProperties_();
#define MRMESH_API
Definition MRMeshFwd.h:80
#define MRMESH_CLASS
Definition MRMeshFwd.h:87
Definition MRCameraOrientationPlugin.h:8
int heapBytes(FloatGrid grid)