00001 // Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE 00002 // 00003 // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, 00004 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 00005 // 00006 // This library is free software; you can redistribute it and/or 00007 // modify it under the terms of the GNU Lesser General Public 00008 // License as published by the Free Software Foundation; either 00009 // version 2.1 of the License. 00010 // 00011 // This library is distributed in the hope that it will be useful, 00012 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00013 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00014 // Lesser General Public License for more details. 00015 // 00016 // You should have received a copy of the GNU Lesser General Public 00017 // License along with this library; if not, write to the Free Software 00018 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00019 // 00020 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com 00021 // 00022 00023 // VISU OBJECT : interactive object for VISU entities implementation 00024 // File : VISU_ColoredPrs3dHolder_i.hxx 00025 // Author : Oleg UVAROV 00026 // Module : VISU 00027 // 00028 #ifndef VISU_ColoredPrs3dHolder_i_HeaderFile 00029 #define VISU_ColoredPrs3dHolder_i_HeaderFile 00030 00031 #include "VISU_I.hxx" 00032 #include "VISU_PrsObject_i.hh" 00033 00034 #include "SALOME_GenericObj_i.hh" 00035 00036 namespace VISU 00037 { 00038 class ColoredPrs3d_i; 00039 class ColoredPrs3dCache_i; 00040 00046 class VISU_I_EXPORT ColoredPrs3dHolder_i : public virtual POA_VISU::ColoredPrs3dHolder, 00047 public virtual SALOME::GenericObj_i, 00048 public virtual PrsObject_i 00049 { 00050 ColoredPrs3dHolder_i(); 00051 ColoredPrs3dHolder_i(const ColoredPrs3dHolder_i&); 00052 00053 friend class ColoredPrs3dCache_i; 00054 public: 00055 //---------------------------------------------------------------------------- 00057 explicit 00058 ColoredPrs3dHolder_i(VISU::ColoredPrs3dCache_i& theCache); 00059 00060 virtual 00061 ~ColoredPrs3dHolder_i(); 00062 00063 //---------------------------------------------------------------------------- 00065 virtual 00066 CORBA::Boolean 00067 Apply(VISU::ColoredPrs3d_ptr thePrs3d, 00068 const VISU::ColoredPrs3dHolder::BasicInput& theInput, 00069 VISU::View3D_ptr theView3D); 00070 00071 //---------------------------------------------------------------------------- 00073 VISU::ColoredPrs3d_i* 00074 GetPrs3dDevice(); 00075 00077 virtual 00078 VISU::ColoredPrs3d_ptr 00079 GetDevice(); 00080 00081 //---------------------------------------------------------------------------- 00083 virtual 00084 VISU::ColoredPrs3dHolder::TimeStampsRange* 00085 GetTimeStampsRange(); 00086 00087 //---------------------------------------------------------------------------- 00089 VISU::ColoredPrs3dHolder::BasicInput* 00090 GetBasicInput(); 00091 00092 //---------------------------------------------------------------------------- 00094 VISU::ColoredPrs3dCache_ptr 00095 GetCache(); 00096 00097 //---------------------------------------------------------------------------- 00099 virtual 00100 CORBA::Float 00101 GetMemorySize(); 00102 00103 //---------------------------------------------------------------------------- 00104 virtual 00105 VISU::VISUType 00106 GetType() 00107 { 00108 return VISU::TCOLOREDPRS3DHOLDER; 00109 } 00110 00111 virtual 00112 VISU::VISUType 00113 GetPrsType(); 00114 00115 //---------------------------------------------------------------------------- 00116 virtual 00117 void 00118 RemoveFromStudy(); 00119 00120 virtual 00121 const char* 00122 GetComment() const; 00123 00124 virtual 00125 void 00126 ToStream(std::ostringstream&); 00127 00128 static 00129 Storable* 00130 StorableEngine(SALOMEDS::SObject_ptr theSObject, 00131 const Storable::TRestoringMap& theMap, 00132 const std::string& thePrefix, 00133 CORBA::Boolean theIsMultiFile); 00134 00135 virtual 00136 QString 00137 GenerateName(); 00138 00139 public: 00140 static const std::string myComment; 00141 00142 //---------------------------------------------------------------------------- 00143 private: 00144 void 00145 PublishInStudy(const std::string& theName, 00146 const std::string& theIconName, 00147 const std::string& theComment); 00148 00149 VISU::ColoredPrs3dCache_i& myCache; 00150 static int myNbHolders; 00151 }; 00152 } 00153 00154 #endif