VectorXd linear::vfield_to_vctr(const kind::f vectorf , int comp ) { std::vector<int> indices; std::vector<FT> ff; for(F_v_it fv=T.finite_vertices_begin(); fv!=T.finite_vertices_end(); fv++) { indices.push_back( fv->idx.val() ); if(comp==0) ff.push_back( fv->vf(vectorf).val().x() ); else ff.push_back( fv->vf(vectorf).val().y() ); } int N=indices.size(); VectorXd vctr(N); for(int nn=0; nn<indices.size(); nn++) vctr(indices[nn])=ff[nn]; return vctr; }
string countAndSay(int n) { vector<vector<int> > vctr(2); vctr[0].push_back(1); int flag = 1; for(int i=0; i<n-1; ++i) { vctr[flag].clear(); int ind = 0; while(ind < vctr[!flag].size()) { int cnt = 1; for(int j=ind+1; j<vctr[!flag].size()&&vctr[!flag][j]==vctr[!flag][ind]; ++j, ++cnt) ; stack<int> vals; int count = cnt; while(cnt) { vals.push(cnt%10); cnt /= 10; } while(!vals.empty()) { vctr[flag].push_back(vals.top()); vals.pop(); } vctr[flag].push_back(vctr[!flag][ind]); ind += count; } flag = !flag; } string result; for(int i=0; i<vctr[!flag].size(); ++i) result.push_back(vctr[!flag][i] + '0'); return result; }
org::opensplice::core::EntitySet::vector org::opensplice::core::EntitySet::copy() { org::opensplice::core::ScopedMutexLock scopedLock(this->mutex); vector vctr(this->entities.size()); std::copy(this->entities.begin(), this->entities.end(), vctr.begin()); return vctr; }
void vkeGameRendererDynamic::initRenderer(){ VulkanDC *dc = VulkanDC::Get(); VulkanDC::Device *device = dc->getDevice(); m_instance_count = 128; glWaitVkSemaphoreNV = (PFNGLWAITVKSEMAPHORENVPROC)NVPWindow::sysGetProcAddress("glWaitVkSemaphoreNV"); glSignalVkSemaphoreNV = (PFNGLSIGNALVKSEMAPHORENVPROC)NVPWindow::sysGetProcAddress("glSignalVkSemaphoreNV"); glSignalVkFenceNV = (PFNGLSIGNALVKFENCENVPROC)NVPWindow::sysGetProcAddress("glSignalVkFenceNV"); glDrawVkImageNV = (PFNGLDRAWVKIMAGENVPROC)NVPWindow::sysGetProcAddress("glDrawVkImageNV"); VkSemaphoreCreateInfo semInfo = { VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO }; VkFenceCreateInfo fenceInfo = {VK_STRUCTURE_TYPE_FENCE_CREATE_INFO}; VKA_CHECK_ERROR(vkCreateSemaphore(device->getVKDevice(), &semInfo, NULL, &m_present_done[0]), "Could not create present done semaphore.\n"); VKA_CHECK_ERROR(vkCreateSemaphore(device->getVKDevice(), &semInfo, NULL, &m_render_done[0]), "Could not create render done semaphore.\n"); VKA_CHECK_ERROR(vkCreateSemaphore(device->getVKDevice(), &semInfo, NULL, &m_present_done[1]), "Could not create present done semaphore.\n"); VKA_CHECK_ERROR(vkCreateSemaphore(device->getVKDevice(), &semInfo, NULL, &m_render_done[1]), "Could not create render done semaphore.\n"); VKA_CHECK_ERROR(vkCreateFence(device->getVKDevice(), &fenceInfo, NULL, &m_update_fence[0]), "Could not create update fence.\n"); fenceInfo.flags = VK_FENCE_CREATE_SIGNALED_BIT; VKA_CHECK_ERROR(vkCreateFence(device->getVKDevice(), &fenceInfo, NULL, &m_update_fence[1]), "Could not create update fence.\n"); m_terrain_command[0] = VK_NULL_HANDLE; m_terrain_command[1] = VK_NULL_HANDLE; m_framebuffers[0] = VK_NULL_HANDLE; m_framebuffers[1] = VK_NULL_HANDLE; m_update_commands[0] = VK_NULL_HANDLE; m_update_commands[1] = VK_NULL_HANDLE; m_is_first_frame = true; nv_math::vec3f table[128][128]; for (int v = 0; v < 128; ++v){ for (int u = 0; u < 128; ++u){ nv_math::vec2f vctr(quickRandomUVD(), quickRandomUVD()); vctr = nv_math::normalize(vctr); table[u][v] = nv_math::vec3f(vctr.x, vctr.y, vctr.x); } } m_cube_textures.newTexture(1)->loadCubeDDS("environ.dds"); m_screen_quad.initQuadData(); m_terrain_quad.initQuadData(); m_textures.newTexture(0)->setFormat(VK_FORMAT_R32G32B32_SFLOAT); m_textures.getTexture(0)->loadTextureFloatData((float *)&(table[0][0].x), 128, 128, 3); m_flight_paths = (FlightPath**)malloc(sizeof(FlightPath*) * m_instance_count); for (uint32_t i = 0; i < m_instance_count; ++i){ nv_math::vec2f initPos(quickRandomUVD()*100.0, -200 + (quickRandomUVD() * 20)); nv_math::vec2f endPos(quickRandomUVD()*100.0, 200 + (quickRandomUVD() * 20)); m_flight_paths[i] = new FlightPath(initPos, endPos, quickRandomUVD() * 0.5 + 0.5, quickRandomUVD() * 4 + 10); } /* Just initialises the draw call objects not the threads. They store thread local data for the threaded cmd buffer builds. */ initDrawCalls(); /* Create primary command pool for the */ VkCommandPoolCreateInfo cmdPoolInfo = { VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO }; cmdPoolInfo.queueFamilyIndex = 0; cmdPoolInfo.flags = VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT; VKA_CHECK_ERROR(vkCreateCommandPool(device->getVKDevice(), &cmdPoolInfo, NULL, &m_primary_buffer_cmd_pool), "Could not create primary command pool.\n"); m_primary_commands[0] = VK_NULL_HANDLE; m_primary_commands[1] = VK_NULL_HANDLE; VkCommandBufferAllocateInfo cmdBufInfo = { VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO }; cmdBufInfo.commandBufferCount = 2; cmdBufInfo.level = VK_COMMAND_BUFFER_LEVEL_PRIMARY; cmdBufInfo.commandPool = m_primary_buffer_cmd_pool; VKA_CHECK_ERROR(vkAllocateCommandBuffers(device->getVKDevice(), &cmdBufInfo, m_primary_commands), "Could not allocate primary command buffers.\n"); VKA_CHECK_ERROR(vkAllocateCommandBuffers(device->getVKDevice(), &cmdBufInfo, m_update_commands), "Could not allocate primary command buffers.\n"); m_current_buffer_index = 0; }