/**************************************************************************** ** Copyright (c) 2023, Fougue Ltd. ** All rights reserved. ** See license at https://github.com/fougue/mayo/blob/master/LICENSE.txt ****************************************************************************/ #pragma once #include "occ_handle.h" #include #include namespace Mayo { // Pre-declarations class PointCloudData; DEFINE_STANDARD_HANDLE(PointCloudData, TDF_Attribute) using PointCloudDataPtr = OccHandle; // Provides a label attribute to store point cloud data class PointCloudData : public TDF_Attribute { public: static const Standard_GUID& GetID(); static PointCloudDataPtr Set(const TDF_Label& label); static PointCloudDataPtr Set(const TDF_Label& label, const OccHandle& points); const OccHandle& points() const { return m_points; } // -- from TDF_Attribute const Standard_GUID& ID() const override; void Restore(const OccHandle& attribute) override; OccHandle NewEmpty() const override; void Paste(const OccHandle& into, const OccHandle& table) const override; Standard_OStream& Dump(Standard_OStream& ostr) const override; DEFINE_STANDARD_RTTI_INLINE(PointCloudData, TDF_Attribute) private: OccHandle m_points; }; } // namespace Mayo