void keyReleased(int key);
void mouseMoved(int x, int y );
void mouseDragged(int x, int y, int button);
void mousePressed(int x, int y, int button);
void mouseReleased(int x, int y, int button);
void windowResized(int w, int h);
void dragEvent(ofDragInfo dragInfo);
void gotMessage(ofMessage msg);
ofEasyCam easyCam;
private:
ofMesh mesh; // ofVboMesh
vector < vector > points;
vector < vector > colors;
vector < vector > indexs;
i have a problem with “vector”, error “cuse of class template vector requires template arguments” what can it be? what template argumnes and where i must write it?
i now that ther is in C++.
what is in your testApp? i think you get that error because it’s not defined as a type.
as it is, you can:
vector <ofVec2f> points
vector <ofPoint> points
but what exactly do you want to do?
int step = int(5 + int(scaledVol*15));
int total = 0;
for (int j = 0; j < kinect.height; j+=step)
vector temppoints;
vector tempcolors;
points.push_back(temppoints);
colors.push_back(tempcolors);
for (int i = 0; i < kinect.width; i+=step)
float distance = kinect.getDistanceAt(i, j);
if(distance>50 && distance<1000)
ofVec3f tempPoint;
ofColor tempColor;
tempPoint = ofVec3f(i, j, distance*-2.0 );
tempColor = ofColor(kinect.getColorAt(i,j));
points[j/step].push_back(tempPoint);
colors[j/step].push_back(tempColor);
total++;
}else{
ofVec3f tempPoint2;
ofColor tempColor2;
tempPoint2 = ofVec3f(i,j,0);
tempColor2 = ofColor(0);
points[j/step].push_back(tempPoint2);
colors[j/step].push_back(tempColor2);
int ind = 0;
for (int m = 0; m < kinect.height; m+=step)
vector tempindexs;
indexs.push_back(tempindexs);
for (int n = 0; n < kinect.width; n+=step)
if(points[m/step][n/step].z != 0){
// cout << points[m][n] << endl;
mesh.addColor(colors[m/step][n/step]);
mesh.addVertex(points[m/step][n/step]);
indexs[m/step].push_back(ind);
ind++;
}else{
indexs[m/step].push_back(-1);
int W = int(kinect.width/step);
for (int b = 0; b < kinect.height-step; b+=step){
for (int a = 0; a < kinect.width-1; a+=step)
if( (indexs[int(b/step)][int(a/step)]!=-1 && indexs[int(b/step)][int(a/step+1)]!=-1) && (indexs[int(b/step+1)][int(a/step+1)]!=-1 && indexs[int(b/step+1)][int(a/step)]!=-1) ){
mesh.addTriangle(indexs[int(b/step)][int(a/step)],indexs[int(b/step)][int(a/step+1)],indexs[int(b/step+1)][int(a/step+1)]);
mesh.addTriangle(indexs[int(b/step)][int(a/step)],indexs[int(b/step+1)][int(a/step+1)],indexs[int(b/step+1)][int(a/step)]);
//// draw ////
mesh.setMode(OF_PRIMITIVE_TRIANGLES);
glLineWidth(int(LINE_WEIGHT));
mesh.drawWireframe();
i’m tried this before, and i have this errors:
no viable conversion from "vector to ‘const value_type’ (aka 'const ofVec3f)
No member named ‘push_back’ in ‘ofVec3f’
int step = int(5 + int(scaledVol*15));
int total = 0;
for (int j = 0; j < kinect.height; j+=step)
ofVec3f temppoints;
ofColor tempcolors;
points.push_back(temppoints);
colors.push_back(tempcolors);
for (int i = 0; i < kinect.width; i+=step)
float distance = kinect.getDistanceAt(i, j);
if(distance>50 && distance<1000)
ofVec3f tempPoint;
ofColor tempColor;
tempPoint = ofVec3f(i, j, distance*-2.0 );
tempColor = ofColor(kinect.getColorAt(i,j));
points[j/step].push_back(tempPoint);
colors[j/step].push_back(tempColor);
total++;
}else{
ofVec3f tempPoint2;
ofColor tempColor2;
tempPoint2 = ofVec3f(i,j,0);
tempColor2 = ofColor(0);
points[j/step].push_back(tempPoint2);
colors[j/step].push_back(tempColor2);
int ind = 0;
for (int m = 0; m < kinect.height; m+=step)
int tempindexs;
indexs.push_back(tempindexs);
for (int n = 0; n < kinect.width; n+=step)
if(points[m/step][n/step].z != 0){
// cout << points[m][n] << endl;
mesh.addColor(colors[m/step][n/step]);
mesh.addVertex(points[m/step][n/step]);
indexs[m/step].push_back(ind);
ind++;
}else{
indexs[m/step].push_back(-1);
int W = int(kinect.width/step);
for (int b = 0; b < kinect.height-step; b+=step){
for (int a = 0; a < kinect.width-1; a+=step)
if( (indexs[int(b/step)][int(a/step)]!=-1 && indexs[int(b/step)][int(a/step+1)]!=-1) && (indexs[int(b/step+1)][int(a/step+1)]!=-1 && indexs[int(b/step+1)][int(a/step)]!=-1) ){
mesh.addTriangle(indexs[int(b/step)][int(a/step)],indexs[int(b/step)][int(a/step+1)],indexs[int(b/step+1)][int(a/step+1)]);
mesh.addTriangle(indexs[int(b/step)][int(a/step)],indexs[int(b/step+1)][int(a/step+1)],indexs[int(b/step+1)][int(a/step)]);
//// draw ////
mesh.setMode(OF_PRIMITIVE_TRIANGLES);
glLineWidth(int(LINE_WEIGHT));
mesh.drawWireframe();
points[j/step].push_back(tempPoint); - No member named ‘push_back’ in ‘ofVec3f’
colors[j/step].push_back(tempColor); -No member named ‘push_back’ in ‘ofColor_’
points[j/step].push_back(tempPoint2); - No member named ‘push_back’ in ‘ofVec3f’
colors[j/step].push_back(tempColor2); -No member named ‘push_back’ in ‘ofColor_’
indexs[m/step].push_back(ind); - member reference base type ‘int’ is not a structure union
indexs[m/step].push_back(-1); - member reference base type ‘int’ is not a structure union
if(points[m/step][n/step].z != 0){ - member reference base type ‘float’ is not structure of union
i looked at the blog. i can’t understand anything, sorry. google translate is very bad in this case… but what i can say is that for me
vector < vector > points;
vector < vector > colors;
vector < vector > indexs;
this is wrong because you can make a vector of a vector but you must defined what type of vector.
vector <vector <ofVec3f>> points;
vector <vector<ofColor>> colors;
vector<vector<int>>indexs;
also i don’t know if the all the code is posted in the blog and if could be others relevant and important sections or errors like the above.
let me know if this help a bit, i’m also learning to use the ofxKinect!
maybe you can also ask an advice to the author of the article in the blog…
Hi Guys,
I am also trying to hack at that same piece of code… struggling to get it working.
Can somebody post the resolved piece of code?
Cheers!
hi
@oliverellmers
you can find that code in my github repo :
https://github.com/kalwalt/OFexamples/tree/master/delaunayKinect
.
tell me if you find some issue and report in the OF forum . Thanks