MeshLib C++ Docs
Loading...
Searching...
No Matches
MRMeshOrPointsObject.h
Go to the documentation of this file.
1#pragma once
2#include "MRMeshFwd.h"
3#include <variant>
4
5namespace MR
6{
7
10class MeshOrPointsObject
11{
12public:
16 MRMESH_API MeshOrPointsObject( std::shared_ptr<VisualObject> vo );
17 MeshOrPointsObject( std::shared_ptr<ObjectMesh> om ) { set( std::move( om ) ); }
18 MeshOrPointsObject( std::shared_ptr<ObjectPoints> op ) { set( std::move( op ) ); }
19
21 MRMESH_API void set( std::shared_ptr<ObjectMesh> om );
23 MRMESH_API ObjectMesh* asObjectMesh() const;
24
26 MRMESH_API void set( std::shared_ptr<ObjectPoints> op );
28 MRMESH_API ObjectPoints* asObjectPoints() const;
29
30 void reset() { set( std::shared_ptr<ObjectMesh>{} ); }
31 const std::shared_ptr<VisualObject>& operator->() const { return visualObject_; }
32 const std::shared_ptr<VisualObject>& get() const { return visualObject_; }
33 bool operator==( std::shared_ptr<VisualObject> other ) const { return visualObject_ == other; }
34
36 MRMESH_API MeshOrPoints meshOrPoints() const;
37private:
38 std::variant<ObjectMesh*, ObjectPoints*> var_;
39 std::shared_ptr<VisualObject> visualObject_;
40};
41
42}
#define MRMESH_API
Definition MRMeshFwd.h:80
unsafe void set(MR._ByValueShared_ObjectMesh om)
Definition MRCameraOrientationPlugin.h:8