VTK
dox/Filters/Cosmo/vtkPCosmoReader.h
Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    vtkPCosmoReader.h
00005 
00006   Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
00007   All rights reserved.
00008   See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
00009 
00010      This software is distributed WITHOUT ANY WARRANTY; without even
00011      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
00012      PURPOSE.  See the above copyright notice for more information.
00013 
00014 =========================================================================*/
00015 /*=========================================================================
00016 
00017   Program:   VTK/ParaView Los Alamos National Laboratory Modules (PVLANL)
00018   Module:    vtkPCosmoReader.h
00019 
00020 Copyright (c) 2009 Los Alamos National Security, LLC
00021 
00022 All rights reserved.
00023 
00024 Copyright 2009. Los Alamos National Security, LLC.
00025 This software was produced under U.S. Government contract DE-AC52-06NA25396
00026 for Los Alamos National Laboratory (LANL), which is operated by
00027 Los Alamos National Security, LLC for the U.S. Department of Energy.
00028 The U.S. Government has rights to use, reproduce, and distribute this software.
00029 NEITHER THE GOVERNMENT NOR LOS ALAMOS NATIONAL SECURITY, LLC MAKES ANY WARRANTY,
00030 EXPRESS OR IMPLIED, OR ASSUMES ANY LIABILITY FOR THE USE OF THIS SOFTWARE.
00031 If software is modified to produce derivative works, such modified software
00032 should be clearly marked, so as not to confuse it with the version available
00033 from LANL.
00034 
00035 Additionally, redistribution and use in source and binary forms, with or
00036 without modification, are permitted provided that the following conditions
00037 are met:
00038 -   Redistributions of source code must retain the above copyright notice,
00039     this list of conditions and the following disclaimer.
00040 -   Redistributions in binary form must reproduce the above copyright notice,
00041     this list of conditions and the following disclaimer in the documentation
00042     and/or other materials provided with the distribution.
00043 -   Neither the name of Los Alamos National Security, LLC, Los Alamos National
00044     Laboratory, LANL, the U.S. Government, nor the names of its contributors
00045     may be used to endorse or promote products derived from this software
00046     without specific prior written permission.
00047 
00048 THIS SOFTWARE IS PROVIDED BY LOS ALAMOS NATIONAL SECURITY, LLC AND CONTRIBUTORS
00049 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
00050 THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
00051 ARE DISCLAIMED. IN NO EVENT SHALL LOS ALAMOS NATIONAL SECURITY, LLC OR
00052 CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
00053 EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
00054 PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
00055 OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
00056 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
00057 OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
00058 ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00059 
00060 =========================================================================*/
00085 #ifndef __vtkPCosmoReader_h
00086 #define __vtkPCosmoReader_h
00087 
00088 #include "vtkFiltersCosmoModule.h" // For export macro
00089 #include "vtkUnstructuredGridAlgorithm.h"
00090 
00091 class vtkMultiProcessController;
00092 class vtkStdString;
00093 
00094 class VTKFILTERSCOSMO_EXPORT vtkPCosmoReader : public vtkUnstructuredGridAlgorithm
00095 {
00096 public:
00097   static vtkPCosmoReader *New();
00098   vtkTypeMacro(vtkPCosmoReader, vtkUnstructuredGridAlgorithm);
00099   void PrintSelf(ostream& os, vtkIndent indent);
00100 
00102 
00103   vtkSetStringMacro(FileName);
00104   vtkGetStringMacro(FileName);
00106 
00108 
00109   vtkSetMacro(RL, float);
00110   vtkGetMacro(RL, float);
00112 
00114 
00116   vtkSetMacro(Overlap, float);
00117   vtkGetMacro(Overlap, float);
00119 
00121 
00122   vtkSetMacro(ReadMode, int);
00123   vtkGetMacro(ReadMode, int);
00125 
00127 
00129   vtkSetMacro(CosmoFormat, int);
00130   vtkGetMacro(CosmoFormat, int);
00132 
00134 
00135   virtual vtkMultiProcessController* GetController();
00136   virtual void SetController(vtkMultiProcessController*);
00138 
00139 protected:
00140   vtkPCosmoReader();
00141   ~vtkPCosmoReader();
00142 
00143   virtual int RequestInformation
00144     (vtkInformation *, vtkInformationVector **, vtkInformationVector *);
00145   virtual int RequestData
00146     (vtkInformation *, vtkInformationVector **, vtkInformationVector *);
00147 
00148   vtkMultiProcessController* Controller;
00149 
00150   char* FileName; // Name of binary particle file
00151   float RL; // The physical box dimensions (rL)
00152   float Overlap; // The ghost cell boundary space
00153   int ReadMode; // The reading mode
00154   int CosmoFormat; // Enable cosmo format or gadget format
00155 
00156 private:
00157   vtkPCosmoReader(const vtkPCosmoReader&);  // Not implemented.
00158   void operator=(const vtkPCosmoReader&);  // Not implemented.
00159 };
00160 
00161 #endif