00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00027 #ifndef __vtkIntegrateAttributes_h
00028 #define __vtkIntegrateAttributes_h
00029
00030 #include "vtkUnstructuredGridAlgorithm.h"
00031
00032 class vtkDataSet;
00033 class vtkIdList;
00034 class vtkInformation;
00035 class vtkInformationVector;
00036 class vtkDataSetAttributes;
00037 class vtkMultiProcessController;
00038
00039 class VTK_EXPORT vtkIntegrateAttributes : public vtkUnstructuredGridAlgorithm
00040 {
00041 public:
00042 vtkTypeRevisionMacro(vtkIntegrateAttributes,vtkUnstructuredGridAlgorithm);
00043 void PrintSelf(ostream& os, vtkIndent indent);
00044 static vtkIntegrateAttributes *New();
00045
00046 protected:
00047 vtkIntegrateAttributes();
00048 ~vtkIntegrateAttributes();
00049
00050 vtkMultiProcessController* Controller;
00051
00052 virtual int RequestData(vtkInformation* request,
00053 vtkInformationVector** inputVector,
00054 vtkInformationVector* outputVector);
00055
00056
00057 virtual vtkExecutive* CreateDefaultExecutive();
00058
00059 virtual int FillInputPortInformation(int, vtkInformation*);
00060
00061 void ExecuteBlock(vtkDataSet* input, vtkUnstructuredGrid* output);
00062
00063 int CompareIntegrationDimension(vtkDataSet* output, int dim);
00064 int IntegrationDimension;
00065
00066
00067 double Sum;
00068
00069 double SumCenter[3];
00070
00071 void IntegratePolyLine(vtkDataSet* input,
00072 vtkUnstructuredGrid* output,
00073 vtkIdType cellId, vtkIdList* cellPtIds);
00074 void IntegratePolygon(vtkDataSet* input,
00075 vtkUnstructuredGrid* output,
00076 vtkIdType cellId, vtkIdList* cellPtIds);
00077 void IntegrateTriangleStrip(vtkDataSet* input,
00078 vtkUnstructuredGrid* output,
00079 vtkIdType cellId, vtkIdList* cellPtIds);
00080 void IntegrateTriangle(vtkDataSet* input,
00081 vtkUnstructuredGrid* output,
00082 vtkIdType cellId, vtkIdType pt1Id,
00083 vtkIdType pt2Id, vtkIdType pt3Id);
00084 void IntegrateSatelliteData(vtkDataSetAttributes* inda,
00085 vtkDataSetAttributes* outda);
00086 void AllocateAttributes(vtkDataSetAttributes* inda,
00087 vtkDataSetAttributes* outda);
00088 void ZeroAttributes(vtkDataSetAttributes* outda);
00089 void IntegrateData1(vtkDataSetAttributes* inda,
00090 vtkDataSetAttributes* outda,
00091 vtkIdType pt1Id, double k);
00092 void IntegrateData2(vtkDataSetAttributes* inda,
00093 vtkDataSetAttributes* outda,
00094 vtkIdType pt1Id, vtkIdType pt2Id, double k);
00095 void IntegrateData3(vtkDataSetAttributes* inda,
00096 vtkDataSetAttributes* outda, vtkIdType pt1Id,
00097 vtkIdType pt2Id, vtkIdType pt3Id, double k);
00098
00099 private:
00100 vtkIntegrateAttributes(const vtkIntegrateAttributes&);
00101 void operator=(const vtkIntegrateAttributes&);
00102 };
00103
00104 #endif