11enum class MRMESH_CLASS LinesVisualizePropertyType
36 constexpr static const char*
StaticTypeName() noexcept {
return "LinesHolder"; }
37 virtual const char*
typeName()
const override {
return StaticTypeName(); }
39 MRMESH_API
virtual void applyScale(
float scaleFactor )
override;
43 [[nodiscard]]
virtual bool hasModel()
const override {
return bool( polyline_ ); }
45 MRMESH_API
virtual std::shared_ptr<Object>
clone()
const override;
46 MRMESH_API
virtual std::shared_ptr<Object>
shallowClone()
const override;
48 const std::shared_ptr<const Polyline3>&
polyline()
const
49 {
return reinterpret_cast< const std::shared_ptr<const Polyline3>&
>( polyline_ ); }
51 MRMESH_API
virtual void setDirtyFlags( uint32_t mask,
bool invalidateCaches =
true )
override;
96 [[nodiscard]] MRMESH_API
virtual size_t heapBytes()
const override;
164 float lineWidth_{ 1.0f };
165 float pointSize_{ 5.f };
170 void setDefaultColors_();
173 void setDefaultSceneProperties_();
Definition MRVisualObject.h:54
Definition MRObjectLinesHolder.h:30
named object in the data model
Definition MRObject.h:62
Definition MRViewportId.h:16
stores mask of viewport unique identifiers
Definition MRViewportId.h:42
Definition MRViewportProperty.h:17
Visual Object.
Definition MRVisualObject.h:116
MRMESH_API size_t numUndirectedEdges() const
returns cached information about the number of undirected edges in the polyline
MRMESH_API ObjectLinesHolder()
virtual MRMESH_API void swapBase_(Object &other) override
swaps this object with other
virtual MRMESH_API void setPointSize(float size)
virtual MRMESH_API void setLineWidth(float width)
std::optional< float > avgEdgeLen_
Definition MRObjectLinesHolder.h:151
const VertColors & getVertsColorMap() const
returns per-vertex colors of the object
Definition MRObjectLinesHolder.h:70
ObjectLinesHolder & operator=(ObjectLinesHolder &&)=default
virtual MRMESH_API void setupRenderObject_() const override
Dashed
Definition MRObjectLinesHolder.h:15
const UndirectedEdgeColors & getLinesColorMap() const
Definition MRObjectLinesHolder.h:78
LinesChangedSignal linesChangedSignal
Definition MRObjectLinesHolder.h:115
virtual MRMESH_API void setDirtyFlags(uint32_t mask, bool invalidateCaches=true) override
reinterpret_cast to avoid making a copy of shared_ptr
virtual MRMESH_API Box3f computeBoundingBox_() const override
Points
Definition MRObjectLinesHolder.h:13
UndirectedEdgeColors linesColorMap_
Definition MRObjectLinesHolder.h:156
virtual void updateLinesColorMap(UndirectedEdgeColors &updated)
Definition MRObjectLinesHolder.h:80
ViewportMask smoothConnections_
Definition MRObjectLinesHolder.h:159
MRMESH_API void serializeBaseFields_(Json::Value &root) const
MRMESH_API float avgEdgeLen() const
returns cached average edge length
ViewportMask dashed_
Definition MRObjectLinesHolder.h:160
MRMESH_API size_t numComponents() const
returns cached information about the number of components in the polyline
virtual const char * typeName() const override
Definition MRObjectLinesHolder.h:37
tl::expected< T, E > Expected
Definition MRExpected.h:31
virtual float getPointSize() const
Definition MRObjectLinesHolder.h:64
MRMESH_API void resetFrontColor() override
reset basic object colors to their default values from the current theme
virtual const DashPattern & getDashPattern(ViewportId vpId={}, bool *isDef=nullptr) const
Definition MRObjectLinesHolder.h:59
virtual bool hasModel() const override
Definition MRObjectLinesHolder.h:43
MRMESH_API void setAllVisualizeProperties_(const AllVisualizeProperties &properties, std::size_t &pos) override
set all visualize properties masks
virtual MRMESH_API void applyScale(float scaleFactor) override
scale object size (all point positions)
virtual MRMESH_API void copyColors(const ObjectLinesHolder &src, const VertMap &thisToSrc)
copies vertex colors from given source object
MRMESH_API float totalLength() const
return cached total length
virtual MRMESH_API std::shared_ptr< Object > clone() const override
static constexpr const char * StaticTypeName() noexcept
Definition MRObjectLinesHolder.h:36
virtual MRMESH_API void deserializeFields_(const Json::Value &root) override
deserializeFields_: deserializeBaseFields_ plus polyline deserialization
virtual MRMESH_API void setDashPattern(const DashPattern &pattern, ViewportId vpId={})
std::optional< size_t > numUndirectedEdges_
Definition MRObjectLinesHolder.h:149
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...
virtual MRMESH_API std::shared_ptr< Object > shallowClone() const override
virtual MRMESH_API void swapSignals_(Object &other) override
ObjectLinesHolder(ObjectLinesHolder &&)=default
MRMESH_API void deserializeBaseFields_(const Json::Value &root)
MRMESH_API const ViewportMask & getVisualizePropertyMask(AnyVisualizeMaskEnum type) const override
returns mask of viewports where given property is set
virtual MRMESH_API bool hasVisualRepresentation() const override
does the object have any visual representation (visible points, triangles, edges, etc....
virtual void updateVertsColorMap(VertColors &vertsColorMap)
swaps per-vertex colors of the object with given argument
Definition MRObjectLinesHolder.h:76
MRMESH_API Expected< void > deserializeModel_(const std::filesystem::path &path, ProgressCallback progressCb={}) override
Reads model from file.
virtual MRMESH_API Box3f getWorldBox(ViewportId={}) const override
std::optional< size_t > numComponents_
Definition MRObjectLinesHolder.h:150
virtual MRMESH_API void serializeFields_(Json::Value &root) const override
serializeFields_: serializeBaseFields_ plus polyline serialization
ObjectLinesHolder(const ObjectLinesHolder &other)=default
ViewportMask showPoints_
Definition MRObjectLinesHolder.h:158
virtual void setLinesColorMap(UndirectedEdgeColors linesColorMap)
Definition MRObjectLinesHolder.h:79
virtual void setVertsColorMap(VertColors vertsColorMap)
sets per-vertex colors of the object
Definition MRObjectLinesHolder.h:73
virtual float getLineWidth() const
Definition MRObjectLinesHolder.h:62
virtual MRMESH_API size_t heapBytes() const override
returns the amount of memory this object occupies on heap
const std::shared_ptr< const Polyline3 > & polyline() const
Definition MRObjectLinesHolder.h:48
VertColors vertsColorMap_
Definition MRObjectLinesHolder.h:155
ObjectLinesHolder(ProtectedStruct, const ObjectLinesHolder &obj)
Definition MRObjectLinesHolder.h:67
std::optional< float > totalLength_
Definition MRObjectLinesHolder.h:152
MRMESH_API AllVisualizeProperties getAllVisualizeProperties() const override
get all visualize properties masks
ViewportProperty< XfBasedCache< Box3f > > worldBox_
Definition MRObjectLinesHolder.h:153
std::shared_ptr< Polyline3 > polyline_
Definition MRObjectLinesHolder.h:166
@ Smooth
create mesh using dual marching cubes from OpenVDB library
std::vector< ViewportMask > AllVisualizeProperties
Definition MRVisualObject.h:72
@ DIRTY_PRIMITIVE_COLORMAP
Definition MRVisualObject.h:87
@ DIRTY_VERTS_COLORMAP
Definition MRVisualObject.h:86
only for bindings generation
Definition MRCameraOrientationPlugin.h:8
Definition MRVisualObject.h:32
Definition MRObject.h:284
Definition MRVector4.h:26