25 constexpr static const
char* TypeName() noexcept {
return "PointsHolder"; }
26 virtual const char*
typeName()
const override {
return TypeName(); }
32 [[nodiscard]]
virtual bool hasModel()
const override {
return bool( points_ ); }
34 const std::shared_ptr<const PointCloud>&
pointCloud()
const
35 {
return reinterpret_cast< const std::shared_ptr<const PointCloud>&
>( points_ ); }
46 void selectPoints( VertBitSet newSelection ) { updateSelectedPoints( newSelection ); }
57 return selectedVerticesColor_.get(
id );
104 static constexpr int MaxRenderingPointsDefault = 1'000'000;
106 static constexpr int MaxRenderingPointsUnlimited = std::numeric_limits<int>::max();
144 float pointSize_{ 5.0f };
166 int maxRenderingPoints_ = MaxRenderingPointsDefault;
171 void setDefaultColors_();
174 void setDefaultSceneProperties_();
177 void updateRenderDiscretization_();
179 int renderDiscretization_ = 1;
183 const char * savePointsFormat_ =
".ctm";
#define MRMESH_API
Definition MRMesh/MRMeshFwd.h:46
#define MRMESH_CLASS
Definition MRMesh/MRMeshFwd.h:50
SelectedVertices
Definition MRObjectPointsHolder.h:10
Definition MRVisualObject.h:67
Definition MRObjectPointsHolder.h:18
ViewportProperty< Color > selectedVerticesColor_
Definition MRObjectPointsHolder.h:133
MRMESH_API bool supportsVisualizeProperty(AnyVisualizeMaskEnum type) const override
Returns true if this class supports the property type. Otherwise passing it to the functions below is...
MRMESH_API const ViewportProperty< Color > & getSelectedVerticesColorsForAllViewports() const
MRMESH_API int getMaxRenderingPoints() const
Definition MRObjectPointsHolder.h:110
MRMESH_API ObjectPointsHolder()
ObjectPointsHolder(ProtectedStruct, const ObjectPointsHolder &obj)
Definition MRObjectPointsHolder.h:78
const std::shared_ptr< const PointCloud > & pointCloud() const
Definition MRObjectPointsHolder.h:34
std::optional< size_t > numValidPoints_
Definition MRObjectPointsHolder.h:131
virtual MRMESH_API void swapSignals_(Object &other) override
MRMESH_API size_t numRenderingValidPoints() const
returns count of valid points that will be rendered
virtual MRMESH_API size_t heapBytes() const override
returns the amount of memory this object occupies on heap
virtual MRMESH_API void setDirtyFlags(uint32_t mask, bool invalidateCaches=true) override
const char * savePointsFormat() const
returns file extension used to serialize the points
Definition MRObjectPointsHolder.h:117
virtual MRMESH_API void setupRenderObject_() const override
ObjectPointsHolder(ObjectPointsHolder &&) noexcept=default
MRMESH_API void setSavePointsFormat(const char *newFormat)
sets file extension used to serialize the points: must be not null and must start from '....
virtual bool hasModel() const override
Definition MRObjectPointsHolder.h:32
const Color & getSelectedVerticesColor(ViewportId id={}) const
returns colors of selected vertices
Definition MRObjectPointsHolder.h:55
MRMESH_API size_t numSelectedPoints() const
returns cached information about the number of selected points
virtual const char * typeName() const override
Definition MRObjectPointsHolder.h:26
MRMESH_API void setAllVisualizeProperties_(const AllVisualizeProperties &properties, std::size_t &pos) override
set all visualize properties masks
MRMESH_API const VertBitSet & getSelectedPointsOrAll() const
returns selected points if any, otherwise returns all valid points
SelectionChangedSignal pointsSelectionChangedSignal
Definition MRObjectPointsHolder.h:124
virtual MRMESH_API void deserializeFields_(const Json::Value &root) override
VertBitSet selectedPoints_
Definition MRObjectPointsHolder.h:130
int getRenderDiscretization() const
Definition MRObjectPointsHolder.h:98
virtual MRMESH_API Expected< std::future< Expected< void > > > serializeModel_(const std::filesystem::path &path) const override
MRMESH_API void setMaxRenderingPoints(int val)
virtual MRMESH_API Box3f computeBoundingBox_() const override
Signal< void()> renderDiscretizationChangedSignal
signal about render discretization changing, triggered in setRenderDiscretization
Definition MRObjectPointsHolder.h:127
MRMESH_API const ViewportMask & getVisualizePropertyMask(AnyVisualizeMaskEnum type) const override
returns mask of viewports where given property is set
virtual MRMESH_API std::shared_ptr< Object > clone() const override
ObjectPointsHolder(const ObjectPointsHolder &other)=default
virtual MRMESH_API void updateSelectedPoints(VertBitSet &selection)
swaps current selected points with the argument
ViewportProperty< XfBasedCache< Box3f > > worldBox_
Definition MRObjectPointsHolder.h:141
MRMESH_API AllVisualizeProperties getAllVisualizeProperties() const override
get all visualize properties masks
virtual MRMESH_API void setSelectedVerticesColor(const Color &color, ViewportId id={})
sets colors of selected vertices
virtual float getPointSize() const
returns size of points on screen in pixels
Definition MRObjectPointsHolder.h:75
virtual MRMESH_API Expected< void > deserializeModel_(const std::filesystem::path &path, ProgressCallback progressCb={}) override
Reads model from file.
virtual MRMESH_API void setPointSize(float size)
sets size of points on screen in pixels
virtual MRMESH_API bool hasVisualRepresentation() const override
does the object have any visual representation (visible points, triangles, edges, etc....
virtual MRMESH_API std::shared_ptr< Object > shallowClone() const override
void selectPoints(VertBitSet newSelection)
sets current selected points
Definition MRObjectPointsHolder.h:46
MRMESH_API size_t numValidPoints() const
returns cached information about the number of valid points
virtual MRMESH_API void applyScale(float scaleFactor) override
scale object size (all point positions)
std::shared_ptr< PointCloud > points_
Definition MRObjectPointsHolder.h:140
virtual MRMESH_API Box3f getWorldBox(ViewportId={}) const override
const VertBitSet & getSelectedPoints() const
gets current selected points
Definition MRObjectPointsHolder.h:43
virtual MRMESH_API void serializeFields_(Json::Value &root) const override
virtual MRMESH_API void swapBase_(Object &other) override
swaps this object with other
virtual MRMESH_API void setSelectedVerticesColorsForAllViewports(ViewportProperty< Color > val)
std::optional< size_t > numSelectedPoints_
Definition MRObjectPointsHolder.h:132
named object in the data model
Definition MRObject.h:60
Definition MRViewportId.h:16
stores mask of viewport unique identifiers
Definition MRViewportId.h:38
Definition MRViewportProperty.h:17
Visual Object.
Definition MRVisualObject.h:131
std::function< bool(float)> ProgressCallback
Definition MRMesh/MRMeshFwd.h:576
std::vector< ViewportMask > AllVisualizeProperties
Definition MRVisualObject.h:85
Definition MRCameraOrientationPlugin.h:8
tl::expected< T, E > Expected
Definition MRExpected.h:58
Definition MRVisualObject.h:45
Definition MRObject.h:246