int main(int argc, char** argv) { QApplication app(argc, argv); app.setStyle(new QPlastiqueStyle); boost::shared_ptr<Model> modelPtr(new Model); boost::shared_ptr<Controller> controllerPtr(new Controller(modelPtr.get())); Window window(controllerPtr, modelPtr); //modelPtr.get()->loadData(json); return app.exec(); }
ModelPtr MultiPointCloud::model( ) { // Count all points that need to be exported pc_attr_it it; size_t c = 0; for(it = m_clouds.begin(); it != m_clouds.end(); it++) { PointCloud* pc = it->second->cloud; if(pc->isActive()) { vector<uColorVertex>::iterator p_it; for(p_it = pc->m_points.begin(); p_it != pc->m_points.end(); p_it++) { c++; } } } // Create a new model and save points PointBufferPtr pcBuffer( new PointBuffer); floatArr pointBuffer(new float[3 * c]); ucharArr colorBuffer(new unsigned char[3 * c]); c = 0; for(it = m_clouds.begin(); it != m_clouds.end(); it++) { PointCloud* pc = it->second->cloud; if(pc->isActive()) { vector<uColorVertex>::iterator p_it; for(p_it = pc->m_points.begin(); p_it != pc->m_points.end(); p_it++) { size_t bufferPos = 3 * c; uColorVertex v = *p_it; pointBuffer[bufferPos ] = v.x; pointBuffer[bufferPos + 1] = v.y; pointBuffer[bufferPos + 2] = v.z; colorBuffer[bufferPos ] = v.r; colorBuffer[bufferPos + 1] = v.g; colorBuffer[bufferPos + 2] = v.b; c++; } } } pcBuffer->setPointArray(pointBuffer, c); pcBuffer->setPointColorArray(colorBuffer, c); ModelPtr modelPtr(new Model); modelPtr->m_pointCloud = pcBuffer; return modelPtr; }