vtkMimxAbaqusFileWriter.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003 Program:   MIMX Meshing Toolkit
00004 Module:    $RCSfile: vtkMimxAbaqusFileWriter.h,v $
00005 Language:  C++
00006 Date:      $Date: 2008/08/09 20:35:08 $
00007 Version:   $Revision: 1.18 $
00008 
00009  Musculoskeletal Imaging, Modelling and Experimentation (MIMX)
00010  Center for Computer Aided Design
00011  The University of Iowa
00012  Iowa City, IA 52242
00013  http://www.ccad.uiowa.edu/mimx/
00014  
00015 Copyright (c) The University of Iowa. All rights reserved.
00016 See MIMXCopyright.txt or http://www.ccad.uiowa.edu/mimx/Copyright.htm for details.
00017 
00018 This software is distributed WITHOUT ANY WARRANTY; without even 
00019 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
00020 PURPOSE.  See the above copyright notices for more information.
00021 
00022 =========================================================================*/
00023 
00024 
00025 #ifndef __vtkMimxAbaqusFileWriter_h
00026 #define __vtkMimxAbaqusFileWriter_h
00027 
00028 #include "vtkDataSet.h"
00029 #include "vtkDataSetWriter.h"
00030 #include "vtkPolyData.h"
00031 #include "vtkStructuredGrid.h"
00032 #include "vtkUnstructuredGrid.h"
00033 #include  "vtkFloatArray.h"
00034 #include "vtkMimxIOWin32Header.h"
00035 
00036 class VTK_MIMXIO_EXPORT vtkMimxAbaqusFileWriter : public vtkDataSetWriter
00037 {
00038 public:
00039   
00040   static vtkMimxAbaqusFileWriter *New();
00041   vtkTypeRevisionMacro(vtkMimxAbaqusFileWriter,vtkDataSetWriter);
00042   void PrintSelf(ostream& os, vtkIndent indent);
00043   
00044   void SetFileName( const std::string & fieldStr)
00045     { this->vtkDataSetWriter::SetFileName( fieldStr.c_str() ); }
00046   //BTX
00047   using vtkDataWriter::SetFileName;
00048   //ETX
00049   void SetNodeElementFileName( const std::string & fieldStr ) {NodeElementFileName = fieldStr;} 
00050   void SetHeaderInformation( const std::string & fieldStr ) {HeaderInformation = fieldStr;} 
00051   void SetUserName( const std::string & fieldStr) {UserName = fieldStr;} 
00052   
00053   //Get/Set the Precision used for writing material properties
00054   vtkGetMacro (Precision, int);
00055   vtkSetMacro (Precision, int);
00056   
00057 protected:
00058   
00059   vtkMimxAbaqusFileWriter();
00060   ~vtkMimxAbaqusFileWriter();
00061 
00062   void WriteHeader( ostream& os );
00063   void WriteHeadingSection( ostream& os );
00064   void WriteNodeElementHeader( ostream& os );
00065   void WriteNodes( ostream& os, vtkUnstructuredGrid *grid );
00066   void WriteNodeSets(ostream& os, vtkUnstructuredGrid *grid );
00067   void WriteHexElements( ostream& os, vtkUnstructuredGrid *grid );
00068   void WriteTetElements( ostream& os, vtkUnstructuredGrid *grid );
00069   void WriteQuadElements( ostream& os, vtkUnstructuredGrid *grid );
00070   void WriteElementSets( ostream& os, vtkUnstructuredGrid *grid );
00071   void WriteMaterialHeader( ostream& os );
00072   void WriteMaterialProperties( ostream& os, ostream& osi, vtkUnstructuredGrid *grid);
00073   void WriteBoundaryConditions( ostream& os, vtkUnstructuredGrid *grid );
00074   void WriteFooter( ostream& os );
00075   void WriteRepeatingMaterialProperties(vtkIntArray *ElementIds, vtkDoubleArray *MatProp, 
00076           vtkUnstructuredGrid *grid, ostream& os, const char* ElementSetName, double PoissonsRatio) ;
00077   int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
00078   void ConcatenateStrings(const char*, const char*, 
00079           const char*, const char*, const char*, char*);
00080   void PrintVariablesOfInterest(vtkStdString &variable, ostream &os);
00081 private:
00082   
00083   vtkMimxAbaqusFileWriter(const vtkMimxAbaqusFileWriter&);  // Not implemented.
00084   void operator=(const vtkMimxAbaqusFileWriter&);  // Not implemented.
00085   
00086   // Filenames for the output files
00087   std::string NodeElementFileName;
00088   std::string UserName;
00089   
00090   // Descriptive fields for the mesh
00091   std::string HeaderInformation;
00092   
00093   int Precision;
00094 };
00095 
00096 #endif

Generated on 6 Apr 2011 for Slicer3 by  doxygen 1.6.1