本文整理汇总了C++中Pixel::getId方法的典型用法代码示例。如果您正苦于以下问题:C++ Pixel::getId方法的具体用法?C++ Pixel::getId怎么用?C++ Pixel::getId使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Pixel
的用法示例。
在下文中一共展示了Pixel::getId方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: buildFrameToTransmit
DTFrame* ServerClientProxy::buildFrameToTransmit(){
vector<Pixel*>::iterator it;
it=this->pixelsFast.begin();
vector<DTPixel*>* dtVector = new vector<DTPixel*>();
int size=this->pixelsFast.size();
cl_float* newPixelArray = new cl_float[size * 4];
int cont=0;
while (it != this->pixelsFast.end())
{
Pixel* px = *it;
int pId = px->getId();
float pR = px->getR();
float pG = px->getG();
float pB = px->getB();
float pA = px->getA();
DTPixel * pixelForNewFrame= px->getDTPixel();
dtVector->push_back(pixelForNewFrame);
newPixelArray[(cont*4)] = (cl_float)pR;
newPixelArray[(cont*4)+1] = (cl_float)pG;
newPixelArray[(cont*4)+2] = (cl_float)pB;
newPixelArray[(cont*4)+3] = (cl_float)pA;
cont++;
it++;
}
return new DTFrame(0, dtVector, newPixelArray, this->pixelsFast.size(), 0);
}
示例2: updateParticulas
void Recuerdo::updateParticulas(double tiempoSeg, double tiempoMil){
// a que recuerdo llamo con tiempo en segundo.
bool* pixelBool = new bool[(int)this->pixels->size()];
std::fill_n( pixelBool, (int)this->pixels->size(), 0 );
vector<Particula*>::iterator it = this->particulas->begin();
vector<Pixel*>::iterator itpixels;
Pixel *pixel;
Particula* particula;
Punto *ptoAnt = NULL;
Punto *ptoSig = NULL;
Punto *ptoAct = NULL;
long a;// = ofGetElapsedTimeMillis() % 1000;
bool recTienePar=false;
while (it!=this->particulas->end())
{
particula = *it;
// a = fmod(tiempoMil,particula->frecuencia);
a = fmod(tiempoMil - (particula->tiempoini),particula->frecuencia );//+ particula->tiempoini*1000;
itpixels = pixels->begin();
//if (particula->tiempoini <= tiempoSeg && particula->tiempofin >= tiempoSeg){
if (particula->tiempoini <= tiempoMil && particula->tiempofin >= tiempoMil){
ptoAnt = anterior(particula, a);
ptoSig = siguiente(particula,a);
if (ptoAnt != NULL && ptoSig != NULL){
ptoAct = ptoActual(ptoAnt,ptoSig,a);
//Gonzalo
//ptoAct->draw(ptoAct);
//ofPushMatrix();
//particula->draw(ptoAct);
//ofPopMatrix();
cout << particula->id;
while (itpixels != pixels->end()){
pixel = *itpixels;
ofVec3f pos = pixel->getPosition();
int dis = sqrt((pos.x - ptoAct->x)*(pos.x - ptoAct->x) + (pos.z - ptoAct->z)* (pos.z - ptoAct->z));
if (dis <= ptoAct->intensidad){
//Aca va el decaimiento del color
ofVec3f colores(ptoAct->r, ptoAct->g,ptoAct->b);
ofVec3f retColores = decaimiento (colores,dis,ptoAct->intensidad);
pixel->blendRGBA(retColores.x, retColores.y, retColores.z,0,0.4f);
//pixel->blendRGBA(ptoAct->r,ptoAct->g,ptoAct->b,0,0.4f);
pixelBool[(int)pixel->getId()] = true;
}
itpixels++;
}
}
}
it++;
}// Busco
itpixels = pixels->begin();
if (recTienePar) {
while (itpixels != pixels->end()){
Pixel* px = *itpixels;
if (!pixelBool[(int)px->getId()]){
px->blendRGBA(0, 0, 0, 255, 0.4f);
}
itpixels++;
}
}
delete[] pixelBool;
this->draw();
};
示例3: transmitFrame
void GenericClientManager::transmitFrame() {
//construyo DTFrame en base a los pixels mezclados
if(this->waitForReceiver==0) { // envio solo si el server no me pidio esperarpor error
vector<DTPixel*>* newVector = new vector<DTPixel*>;
map<int,Pixel*>::iterator it = this->pixels->begin();
while (it!=this->pixels->end())
{
Pixel* px = it->second;
ofVec3f position = px->getPosition();
ofVec3f front = px->getFront();
ofVec3f up = px->getUp();
string modelName = px->getModelName();
DTPixel* dtPix = new DTPixel(px->getId(), px->getR(), px->getG(), px->getB(), px->getA(), position.x, position.y, position.z, front, up, modelName);
newVector->push_back(dtPix);
it++;
}
DTFrame * newFrame = new DTFrame(0, newVector, this->pixels->size() , this->sequenceNumber);
// slice the DTFrame and transmit by piece.
int pixelQuantity = newVector->size();
int minId=0;
int maxId=pixelQuantity-1;
while(pixelQuantity>0) {
celebra_packet_t toTransmit;
int headerSize =18;
if (pixelQuantity<=341) {
toTransmit=newFrame->getBinaryPacketFromFrame(minId, maxId, this->sequenceNumber, 1);
int sent = this->udpManager.SendAll((char *)&toTransmit, headerSize+((maxId-minId+1)*3));
pixelQuantity=0;
}
else {
toTransmit=newFrame->getBinaryPacketFromFrame(minId, minId+340, this->sequenceNumber, 0);
int sent = this->udpManager.SendAll((char *)&toTransmit, headerSize+(341*3));
pixelQuantity=pixelQuantity-341;
minId = minId + 341;
}
// must increment sequence number.
if (this->sequenceNumber==65535) {
this->sequenceNumber=0;
}
else {
this->sequenceNumber++;
}
}
delete newFrame;
}
else {
this->waitForReceiver-=1;
}
}