void Cube::initialize() { program.link(); color = glm::vec3(0.5, 0.5, 0.5); std::cout << "Cube: " << glGetError() << "\n"; initPoints(); initIndicies(); initNormals(); glBindVertexArray(vao); glBindBuffer(GL_ARRAY_BUFFER, vbo); glBufferData(GL_ARRAY_BUFFER, sizeof(GLfloat) * numPoints * 3, points, GL_STATIC_DRAW); glVertexAttribPointer(program.getAttribLocation("vVertex"), 3, GL_FLOAT, GL_FALSE, 0, 0); glEnableVertexAttribArray(program.getAttribLocation("vVertex")); std::cout << "Cube: " << glGetError() << "\n"; if (program.getAttribLocation("vNormal") > 0) { glBindBuffer(GL_ARRAY_BUFFER, vbn); glBufferData(GL_ARRAY_BUFFER, sizeof(glm::vec3) * 12, (const GLvoid *)sideNormals, GL_STATIC_DRAW); glVertexAttribPointer(program.getAttribLocation("vNormal"), 3, GL_FLOAT, GL_FALSE, 0, 0); glEnableVertexAttribArray(program.getAttribLocation("vNormal")); } std::cout << "Cube: " << glGetError() << "\n"; glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, vbi); glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(GLuint) * numIdx, indicies, GL_STATIC_DRAW); std::cout << "Cube: " << glGetError() << "\n"; glBindVertexArray(0); }
bool cScene::Init(FILE* fd) { maxHeight = 0; minHeight = SCENE_HEIGHT; int randomseed = 0; int amplitude = SCENE_HEIGHT/2; PerlinNoise noise = PerlinNoise(0.1,1,amplitude,8,randomseed); for(int z=0;z<SCENE_DEPTH;z++){ for(int x=0;x<SCENE_WIDTH;x++){ int alt = amplitude + (int)noise.GetHeight(x,z); int y; for (y = 0; y < alt; y++){ mapa[y][x][z] = 1; nCubes[y]++; } minHeight = min(y,minHeight); maxHeight = max(y,maxHeight); heightMap[x][z] = y; for(;y<SCENE_HEIGHT;y++){ mapa[y][x][z] = 0; } } } //fprintf(fd,"min-->%d\nmax-->%d\n",minHeight,maxHeight); initVBO(); initNormals(); unsigned long len = 0; if(shader.loadShader("vertexShader.vert", &len, VERTEX_SHADER) != OK) return false; if(shader.loadShader("fragmentShader.frag", &len, FRAGMENT_SHADER) != OK) return false; if(shader.compileShader(VERTEX_SHADER) != OK) { GLchar *log = shader.getCompilationLog(VERTEX_SHADER); return false; } if(shader.compileShader(FRAGMENT_SHADER) != OK) { GLchar *log = shader.getCompilationLog(FRAGMENT_SHADER); return false; } if(shader.linkShader(VERTEX_SHADER) != OK) { GLchar *log = shader.getLinkingLog(VERTEX_SHADER); return false; } if(shader.linkShader(FRAGMENT_SHADER) != OK) { GLchar *log = shader.getLinkingLog(FRAGMENT_SHADER); return false; } if(shader.useShader(VERTEX_SHADER) != OK) return false; //if(shader.useShader(FRAGMENT_SHADER) != OK) return false; return true; }
void ObjectModel::restCube() { initNormals(); m_cloudPoints = vector< vector<Point3f> >(6, vector<Point3f>()); m_pointStatus = vector< vector<FatoStatus> >(6,vector<FatoStatus>()); m_faceDescriptors = vector<Mat>(6, Mat()); m_faceKeypoints = vector< vector<KeyPoint> >(6, vector<KeyPoint>()); m_relativePointsPos = vector< vector<Point3f> >(6, vector<Point3f>()); }
ObjectModel::ObjectModel() : m_center(), m_width(0), m_height(0), m_depth(0), m_isLearned(6, false), m_appearanceRatio(6, 0), m_eigNormals(6, 3) { initNormals(); m_cloudPoints = vector< vector<Point3f> >(6, vector<Point3f>()); m_pointStatus = vector< vector<FatoStatus> >(6,vector<FatoStatus>()); m_faceDescriptors = vector<Mat>(6, Mat()); m_faceKeypoints = vector< vector<KeyPoint> >(6, vector<KeyPoint>()); m_relativePointsPos = vector< vector<Point3f> >(6, vector<Point3f>()); }