#ifndef _vtkMetaDataSet_h_ #define _vtkMetaDataSet_h_ #include #include #include #include //#include /** \class vtkMetaDataSet vtkMetaDataSet.h "vtkMetaDataSet.h" \brief Abstract class for vtkDataset handling \author Nicolas Toussaint This class is a powerfull vtk Addon class that helps handling a vtkDataSet. see the lower level classes for details \see vtkMetaImageData vtkMetaSurfaceMesh vtkMetaVolumeMesh vtkDataManager */ class vtkDataArrayCollection; class vtkDataArray; class vtkActor; class vtkActorCollection; class vtkScalarsToColors; class VTK_EXPORT vtkMetaDataSet: public vtkObject { public: static vtkMetaDataSet* New(); vtkTypeRevisionMacro(vtkMetaDataSet,vtkObject); virtual void PrintSelf(ostream& os, vtkIndent indent); //BTX enum DataSetTypeId { VTK_META_IMAGE_DATA, VTK_META_SURFACE_MESH, VTK_META_VOLUME_MESH, VTK_META_UNKNOWN }; //ETX /** Set the dataset associated with the metadataset */ virtual void SetDataSet (vtkDataSet* dataset); /** Get the dataset associated with the metadataset */ vtkGetObjectMacro (DataSet, vtkDataSet); /** Get the type of the metadataset : vtkMetaDataSet::VTK_META_IMAGE_DATA, vtkMetaDataSet::VTK_META_SURFACE_MESH, vtkMetaDataSet::VTK_META_VOLUME_MESH, or vtkMetaDataSet::VTK_META_UNKNOWN */ vtkGetMacro (Type, unsigned int); vtkGetObjectMacro(Property, vtkObject); vtkSetObjectMacro(Property, vtkObject); void AddActor (vtkActor* actor); void RemoveActor (vtkActor* actor); vtkActor* GetActor (unsigned int i); unsigned int GetNumberOfActors(void) const; void SetVisibility (bool visible); int GetVisibility (void); void SetActorVisibility (unsigned int it, bool visible); int GetActorVisibility (unsigned int it); vtkGetMacro(PickedPointId, int); vtkSetMacro(PickedPointId, int); vtkGetMacro(PickedCellId, int); vtkSetMacro(PickedCellId, int); /** Get/Set methods fot the metadataset name */ virtual const char* GetName (void) const; virtual void SetName (const char* name); /** Get/Set methods fot the metadataset current file path */ virtual const char* GetFilePath (void) const; virtual void SetFilePath (const char* path); /** Get/Set methods for the metadataset tag You can associate several metadataset to a single tag to retrieve them easily */ virtual const char* GetTag (void) const; virtual void SetTag (const char* path); /** Overridden methods for read and write the dataset */ virtual void Read (const char* filename); virtual void Write (const char* filename); /** Read specific data as a vtkDataArray and add it to the metadataset */ virtual void ReadPointData (const char* filename, const char* name = NULL); /** Get the type of the metadataset as string */ virtual const char* GetDataSetType (void) const { return "MetaDataSet"; } /** Get/Set methods for a flag of time */ vtkSetMacro (Time, double); vtkGetMacro (Time, double); virtual void CopyInformation (vtkMetaDataSet* metadataset); virtual void GetArrayCollection(vtkDataArrayCollection* collection); virtual vtkDataArray* GetArray (const char* name); //virtual void ColorByArray(const char* arrayname, vtkScalarsToColors* lut); virtual void ColorByArray(vtkDataArray* array); virtual void SetScalarVisibility(bool val); virtual void ScalarVisibilityOn(void); virtual void ScalarVisibilityOff(void); //virtual void ColorByArray(unsigned int iter, vtkScalarsToColors* lut); protected: vtkMetaDataSet(); ~vtkMetaDataSet(); /** Method called everytime the dataset changes for connexion updates */ virtual void LinkFilters (void); /** Method called everytime the dataset changes for initialization */ virtual void Initialize (void); /** Specific datafile reading Methods */ virtual void ReadPointData_pos (const char* filename, const char* name = NULL); virtual void ReadPointData_pot (const char* filename, const char* name = NULL); virtual void ReadPointData_at (const char* filename, const char* name = NULL); virtual void ReadPointData_bb (const char* filename, const char* name = NULL); virtual void ReadPointData_tbb (const char* filename, const char* name = NULL); unsigned int Type; int PickedPointId; int PickedCellId; vtkDataSet* DataSet; vtkActorCollection* ActorList; double Time; vtkObject* Property; private: vtkMetaDataSet(const vtkMetaDataSet&); // Not implemented. void operator=(const vtkMetaDataSet&); // Not implemented. //BTX std::string Name; std::string FilePath; std::string Tag; //ETX }; #endif