Zugriff über Koordinaten



  • Ich habe eine Volumen:

    typedef struct  {
    	     uint Width;
    	     uint Height;
    	     uint Depth;
    	     QGLColormap *Colormap;
    	     int VoxelWidth;
    	     int VoxelHeight;
    	     int VoxelDepth;
    	     uint Value;
    	  } Volume;
    

    und möchte an einem bestimmten punkt auf dieses volumen zugreifen, hab dazu noch einen zweiten strukt geschrieben:

    typedef struct {
    	uint X, Y, Z;
    	} Voxel;
    

    bekomme ich jetzt durch diesen teil des programmes auch wirklich den value an diesem bestimmten punkt? 😕

    int qsplatdrr::GetVoxel(){
     return qsplatdrrVolume -> Value;    			 
      }
    
    float qsplatdrr::qsplatdrrPrepareVolume(int intMin, int intMax, short intensitiesSet) {
         int w,h,d,wi,hi,di;
        long ri;
        int greyval;
        Voxel vox;
        time_t time1, time2;
    
        time1 = clock();
        if (qsplatdrrVolLoadedFlag) {
    	Volume_MaxMin();
    	if (!intensitiesSet) {
    	    intMin = (int)volIntMin+1;
    	    intMax = (int)volIntMax;
    	}
    
    	w = qsplatdrrVolume->Width;
    	h = qsplatdrrVolume->Height;
    	d = qsplatdrrVolume->Depth;
    	ri = 0;
    	qsplatdrrMaxVoxelNo = 0;
    	for (wi = 0; wi < w; wi++) {
    	    for (hi = 0; hi < h; hi++) {
    		for (di = 0; di < d; di++) {	
    
    	          vox.X = wi;
    	          vox.Y = hi;
                            vox.Z = di; 
    
    		    greyval =  GetVoxel();		
    		    if ((greyval >= intMin) && (greyval <= intMax)) {
    			if (ri < 20000000) {
    			    qsplatdrrReorderedVolume[ri][0] = greyval;
    			    qsplatdrrReorderedVolume[ri][1] = wi;
    			    qsplatdrrReorderedVolume[ri][2] = hi;
    			    qsplatdrrReorderedVolume[ri][3] = di;
    			    ri++;
    			} else {
    			    printf("Volume exceeds maximum number of non-blank voxels and is too large...\n");
    			    return(-1.0);
    			}
    		    } 
    		}
    	    }
    	}
    	qsplatdrrMaxVoxelNo = ri--;
        } else {
    	printf("No Volume loaded - cannot initiate sorting algorithm...\n");
    	return(-2.0);
        }
         time2 = clock();
         return(((time2-time1)/ ((float)CLOCKS_PER_SEC)));
    }
    

    bin mir recht unsicher ob ich wirklich jetzt an diesem punkt vox auf den value zugreife....bin für jede hilfe dankbar!!! 🙂



  • Dieser Thread wurde von Moderator/in kingruedi aus dem Forum Rund um die Programmierung in das Forum Spiele-/Grafikprogrammierung verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.


Anmelden zum Antworten