void FourDimensionalScene::MakeSlice(const HyperPlane &hp) { ClearSlice(); std::vector<FourDimensionalObject *>::const_iterator it = mObjects.cbegin(); for (; it != mObjects.cend(); ++it) mSlice.push_back((*it)->Slice(hp).release()); }
//--- Private initializer for everything void c_Histogram::InitHist(const int f, const int s, const int c, const int sm) { if(!isInitialized) { histogram = new c_HistSlice[f](); rawSlice = new RGBA_uint32_t[256]; curFrame = 0; totFrames = f; frameSize = s; channels = c; scaleMode = sm; ClearSlice(); isInitialized = true; } }
void c_Histogram::ProcessFrame(const unsigned char* frameData) { for(int px = 0; px < (frameSize * channels); px += 3) { //histogram[curFrame].Inc('r', frameData[px + 0], rawSlice); //histogram[curFrame].Inc('g', frameData[px + 1], rawSlice); //histogram[curFrame].Inc('b', frameData[px + 2], rawSlice); histogram[curFrame].IncFastInline((unsigned char)frameData[px + 0], (unsigned char)frameData[px + 1], (unsigned char)frameData[px + 2], rawSlice); } //histogram->PrintMaxValues(); histogram[curFrame].Normalize(scaleMode, rawSlice); ClearSlice(); curFrame++; }