00001 00002 #include "vtkJoiner.h" 00003 00004 vtkJoiner::vtkJoiner(){ 00005 } 00006 00007 vtkJoiner::~vtkJoiner(){ 00008 } 00009 00010 00011 vtkImageData* vtkJoiner::join(vtkImageData *a, vtkImageData *b){ 00012 00013 int extent[6]; 00014 vtkImageData *c = vtkImageData::New(); 00015 c->DeepCopy(a); 00016 00017 unsigned char *ptrA = NULL; 00018 unsigned char *ptrB = NULL; 00019 unsigned char *ptrC = NULL; 00020 00021 a->GetExtent(extent); 00022 int i, j, k; 00023 for(i=extent[0];i<=extent[1];i++){ 00024 for(j=extent[2];j<=extent[3];j++){ 00025 for(k=extent[4];k<=extent[5];k++){ 00026 ptrA = (unsigned char *) a->GetScalarPointer(i,j,k); 00027 ptrB = (unsigned char *) b->GetScalarPointer(i,j,k); 00028 ptrC = (unsigned char *) c->GetScalarPointer(i,j,k); 00029 if ((*ptrA != 0) || (*ptrB != 0)){ 00030 *ptrC=255; 00031 } 00032 else{ 00033 *ptrC = 0; 00034 } 00035 } 00036 } 00037 } 00038 00039 return c; 00040 }