/*////////////////////////////////////////////////////////////////////////////// // CMT Cosmic Muon Tomography project ////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// Copyright (c) 2014, Universita' degli Studi di Padova, INFN sez. di Padova All rights reserved Authors: Andrea Rigoni Garola < andrea.rigoni@pd.infn.it > ------------------------------------------------------------------ This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 3.0 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library. //////////////////////////////////////////////////////////////////////////////*/ #ifndef U_VTKBOXSOLID_H #define U_VTKBOXSOLID_H #include "Core/Types.h" #include "Core/Property.h" #include "Core/Serializable.h" #include "vtkGeantSolid.h" class vtkCubeSource; class vtkActor; namespace uLib { namespace Vtk { /** * @brief VTK Prop3D for visualizing a Geant::BoxSolid. */ class BoxSolid : public GeantSolid { uLibTypeMacro(BoxSolid, uLib::Vtk::GeantSolid) public: BoxSolid(Geant::BoxSolid *content); virtual ~BoxSolid(); virtual void serialize_display(uLib::Archive::display_properties_archive &ar, const unsigned int version = 0) override; template void serialize(Ar &ar, const unsigned int version) { ar & NVP("BoxSolid", *m_BoxContent); } protected: virtual void InstallPipe() override; Geant::BoxSolid *m_BoxContent; ULIB_DECLARE_PROPERTIES(BoxSolid) }; } // namespace Vtk } // namespace uLib #endif // U_VTKBOXSOLID_H