Main Page   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages   Examples  

MeshTransformation.h

Go to the documentation of this file.
00001 #ifndef MESHTRANSFORMATION_H
00002 #define MESHTRANSFORMATION_H
00003 
00004 #include "SundanceDefs.h"
00005 
00006 #include "Mesh.h"
00007 #include "TSFSmartPtr.h"
00008 #include "TSFTimeMonitor.h"
00009 
00010 namespace Sundance
00011 {
00012 
00013   using namespace TSF;
00014   using std::string;
00015 
00016   using std::ostream;
00017 
00018   /**
00019    *\ingroup LowLevelGeometry
00020    * Base class for MeshTransformations
00021    */
00022 
00023   class MeshTransformationBase
00024     {
00025     public:
00026       /** */
00027       MeshTransformationBase() {;}
00028       /** */
00029       virtual ~MeshTransformationBase() {;}
00030 
00031       /** */
00032       virtual void transform(Mesh& mesh) const = 0;
00033 
00034       /** */
00035       virtual void undo(Mesh& mesh) const ;
00036 
00037     protected:
00038     };
00039 
00040   /**
00041    * \ingroup Geometry
00042    * Handle for MeshTransformation
00043    */
00044 
00045   class MeshTransformation
00046     {
00047     public:
00048       /** */
00049       MeshTransformation() : ptr_(0){;}
00050       /** */
00051       MeshTransformation(MeshTransformationBase* ptr);
00052 
00053       /** */
00054       void transform(Mesh& mesh) const ;
00055 
00056       /** */
00057       void undo(Mesh& mesh) const ;
00058 
00059     private:
00060       TSFSmartPtr<MeshTransformationBase> ptr_;
00061 
00062       static TSFTimer& meshTransformationTimer();
00063     };
00064 
00065 
00066 
00067 
00068 
00069 }
00070 #endif

Contact:
Kevin Long (krlong@ca.sandia.gov)


Documentation generated by