bool GiGraphics::drawHandle(const Point2d& pnt, int type, float angle, bool modelUnit) { if (m_impl->canvas && type >= 0 && !m_impl->stopping && !pnt.isDegenerate()) { Point2d ptd(pnt * S2D(xf(), modelUnit)); return m_impl->canvas->drawHandle(ptd.x, ptd.y, type, angle); } return false; }
bool GiGraphics::drawHandle(const Point2d& pnt, int type, bool modelUnit) { if (m_impl->canvas && type >= 0 && !m_impl->stopping) { Point2d ptd(pnt * S2D(xf(), modelUnit)); m_impl->canvas->drawHandle(ptd.x, ptd.y, type); return true; } return false; }
/* PaletteEntryPanel::tint * Tints the colours of the current palette *******************************************************************/ bool PaletteEntryPanel::tint() { Palette8bit* pal = new Palette8bit; if (pal == NULL) return false; pal->copyPalette(palettes[cur_palette]); PaletteTintDialog ptd(theMainWindow, pal); if (ptd.ShowModal() == wxID_OK) { palettes[cur_palette]->copyPalette(ptd.getFinalPalette()); showPalette(cur_palette); setModified(); } delete pal; return true; }
float GiGraphics::drawTextAt(GiTextWidthCallback* c, int argb, const char* text, const Point2d& pnt, float h, int align, float angle) { float ret = 0; if (m_impl->canvas && text && h > 0 && !m_impl->stopping && !pnt.isDegenerate()) { Point2d ptd(pnt * xf().modelToDisplay()); float w2d = xf().getWorldToDisplayY(h < 0); h = fabsf(h) * w2d; if (!mgIsZero(angle)) { angle = (Vector2d::angledVector(angle, 1) * xf().modelToWorld()).angle2(); } GiContext ctx; ctx.setFillARGB(argb ? argb : 0xFF000000); if (setBrush(&ctx)) { TextWidthCallback1 *cw = c ? new TextWidthCallback1(c, w2d) : (TextWidthCallback1 *)0; ret = m_impl->canvas->drawTextAt(cw, text, ptd.x, ptd.y, h, align, angle) / w2d; } } return ret; }
bool GrDrawingManager::ProgramUnitTest(GrContext* context, int maxStages, int maxLevels) { GrDrawingManager* drawingManager = context->contextPriv().drawingManager(); GrProxyProvider* proxyProvider = context->contextPriv().proxyProvider(); sk_sp<GrTextureProxy> proxies[2]; // setup dummy textures { GrSurfaceDesc dummyDesc; dummyDesc.fFlags = kRenderTarget_GrSurfaceFlag; dummyDesc.fWidth = 34; dummyDesc.fHeight = 18; dummyDesc.fConfig = kRGBA_8888_GrPixelConfig; proxies[0] = proxyProvider->createProxy(dummyDesc, kBottomLeft_GrSurfaceOrigin, SkBackingFit::kExact, SkBudgeted::kNo); } { GrSurfaceDesc dummyDesc; dummyDesc.fFlags = kNone_GrSurfaceFlags; dummyDesc.fWidth = 16; dummyDesc.fHeight = 22; dummyDesc.fConfig = kAlpha_8_GrPixelConfig; proxies[1] = proxyProvider->createProxy(dummyDesc, kTopLeft_GrSurfaceOrigin, SkBackingFit::kExact, SkBudgeted::kNo); } if (!proxies[0] || !proxies[1]) { SkDebugf("Could not allocate dummy textures"); return false; } // dummy scissor state GrScissorState scissor; SkRandom random; static const int NUM_TESTS = 1024; for (int t = 0; t < NUM_TESTS; t++) { // setup random render target(can fail) sk_sp<GrRenderTargetContext> renderTargetContext(random_render_target_context( context, &random, context->caps())); if (!renderTargetContext) { SkDebugf("Could not allocate renderTargetContext"); return false; } GrPaint paint; GrProcessorTestData ptd(&random, context, renderTargetContext.get(), proxies); set_random_color_coverage_stages(&paint, &ptd, maxStages, maxLevels); set_random_xpf(&paint, &ptd); set_random_state(&paint, &random); GrDrawRandomOp(&random, renderTargetContext.get(), std::move(paint)); } // Flush everything, test passes if flush is successful(ie, no asserts are hit, no crashes) drawingManager->flush(nullptr); // Validate that GrFPs work correctly without an input. sk_sp<GrRenderTargetContext> renderTargetContext( context->contextPriv().makeDeferredRenderTargetContext(SkBackingFit::kExact, kRenderTargetWidth, kRenderTargetHeight, kRGBA_8888_GrPixelConfig, nullptr)); if (!renderTargetContext) { SkDebugf("Could not allocate a renderTargetContext"); return false; } int fpFactoryCnt = GrFragmentProcessorTestFactory::Count(); for (int i = 0; i < fpFactoryCnt; ++i) { // Since FP factories internally randomize, call each 10 times. for (int j = 0; j < 10; ++j) { GrProcessorTestData ptd(&random, context, renderTargetContext.get(), proxies); GrPaint paint; paint.setXPFactory(GrPorterDuffXPFactory::Get(SkBlendMode::kSrc)); auto fp = GrFragmentProcessorTestFactory::MakeIdx(i, &ptd); auto blockFP = BlockInputFragmentProcessor::Make(std::move(fp)); paint.addColorFragmentProcessor(std::move(blockFP)); GrDrawRandomOp(&random, renderTargetContext.get(), std::move(paint)); drawingManager->flush(nullptr); } } return true; }
bool GrDrawingManager::ProgramUnitTest(GrContext* context, int maxStages) { GrDrawingManager* drawingManager = context->drawingManager(); // setup dummy textures GrSurfaceDesc dummyDesc; dummyDesc.fFlags = kRenderTarget_GrSurfaceFlag; dummyDesc.fConfig = kSkia8888_GrPixelConfig; dummyDesc.fWidth = 34; dummyDesc.fHeight = 18; SkAutoTUnref<GrTexture> dummyTexture1( context->textureProvider()->createTexture(dummyDesc, SkBudgeted::kNo, nullptr, 0)); dummyDesc.fFlags = kNone_GrSurfaceFlags; dummyDesc.fConfig = kAlpha_8_GrPixelConfig; dummyDesc.fWidth = 16; dummyDesc.fHeight = 22; SkAutoTUnref<GrTexture> dummyTexture2( context->textureProvider()->createTexture(dummyDesc, SkBudgeted::kNo, nullptr, 0)); if (!dummyTexture1 || ! dummyTexture2) { SkDebugf("Could not allocate dummy textures"); return false; } GrTexture* dummyTextures[] = {dummyTexture1.get(), dummyTexture2.get()}; // dummy scissor state GrScissorState scissor; SkRandom random; static const int NUM_TESTS = 1024; for (int t = 0; t < NUM_TESTS; t++) { // setup random render target(can fail) sk_sp<GrDrawContext> drawContext(random_draw_context(context, &random, context->caps())); if (!drawContext) { SkDebugf("Could not allocate drawContext"); return false; } GrPaint grPaint; SkAutoTUnref<GrDrawBatch> batch(GrRandomDrawBatch(&random, context)); SkASSERT(batch); GrProcessorTestData ptd(&random, context, context->caps(), drawContext.get(), dummyTextures); set_random_color_coverage_stages(&grPaint, &ptd, maxStages); set_random_xpf(&grPaint, &ptd); bool snapToCenters = set_random_state(&grPaint, &random); const GrUserStencilSettings* uss = get_random_stencil(&random); drawContext->drawContextPriv().testingOnly_drawBatch(grPaint, batch, uss, snapToCenters); } // Flush everything, test passes if flush is successful(ie, no asserts are hit, no crashes) drawingManager->flush(); // Validate that GrFPs work correctly without an input. sk_sp<GrDrawContext> drawContext(context->newDrawContext(SkBackingFit::kExact, kRenderTargetWidth, kRenderTargetHeight, kRGBA_8888_GrPixelConfig)); if (!drawContext) { SkDebugf("Could not allocate a drawContext"); return false; } int fpFactoryCnt = GrProcessorTestFactory<GrFragmentProcessor>::Count(); for (int i = 0; i < fpFactoryCnt; ++i) { // Since FP factories internally randomize, call each 10 times. for (int j = 0; j < 10; ++j) { SkAutoTUnref<GrDrawBatch> batch(GrRandomDrawBatch(&random, context)); SkASSERT(batch); GrProcessorTestData ptd(&random, context, context->caps(), drawContext.get(), dummyTextures); GrPaint grPaint; grPaint.setXPFactory(GrPorterDuffXPFactory::Make(SkXfermode::kSrc_Mode)); sk_sp<GrFragmentProcessor> fp( GrProcessorTestFactory<GrFragmentProcessor>::MakeIdx(i, &ptd)); sk_sp<GrFragmentProcessor> blockFP( BlockInputFragmentProcessor::Make(std::move(fp))); grPaint.addColorFragmentProcessor(std::move(blockFP)); drawContext->drawContextPriv().testingOnly_drawBatch(grPaint, batch); drawingManager->flush(); } } return true; }
bool GrDrawingManager::ProgramUnitTest(GrContext* context, GrDrawTarget* drawTarget, int maxStages) { GrDrawingManager* drawingManager = context->drawingManager(); // setup dummy textures GrSurfaceDesc dummyDesc; dummyDesc.fFlags = kRenderTarget_GrSurfaceFlag; dummyDesc.fConfig = kSkia8888_GrPixelConfig; dummyDesc.fWidth = 34; dummyDesc.fHeight = 18; SkAutoTUnref<GrTexture> dummyTexture1( context->textureProvider()->createTexture(dummyDesc, false, nullptr, 0)); dummyDesc.fFlags = kNone_GrSurfaceFlags; dummyDesc.fConfig = kAlpha_8_GrPixelConfig; dummyDesc.fWidth = 16; dummyDesc.fHeight = 22; SkAutoTUnref<GrTexture> dummyTexture2( context->textureProvider()->createTexture(dummyDesc, false, nullptr, 0)); if (!dummyTexture1 || ! dummyTexture2) { SkDebugf("Could not allocate dummy textures"); return false; } GrTexture* dummyTextures[] = {dummyTexture1.get(), dummyTexture2.get()}; // dummy scissor state GrScissorState scissor; // wide open clip GrClip clip; SkRandom random; static const int NUM_TESTS = 2048; for (int t = 0; t < NUM_TESTS; t++) { // setup random render target(can fail) SkAutoTUnref<GrRenderTarget> rt(random_render_target( context->textureProvider(), &random, context->caps())); if (!rt.get()) { SkDebugf("Could not allocate render target"); return false; } GrPipelineBuilder pipelineBuilder; pipelineBuilder.setRenderTarget(rt.get()); pipelineBuilder.setClip(clip); SkAutoTUnref<GrDrawBatch> batch(GrRandomDrawBatch(&random, context)); SkASSERT(batch); GrProcessorTestData ptd(&random, context, context->caps(), dummyTextures); set_random_color_coverage_stages(&pipelineBuilder, &ptd, maxStages); set_random_xpf(&pipelineBuilder, &ptd); set_random_state(&pipelineBuilder, &random); set_random_stencil(&pipelineBuilder, &random); drawTarget->drawBatch(pipelineBuilder, batch); } // Flush everything, test passes if flush is successful(ie, no asserts are hit, no crashes) drawingManager->flush(); // Validate that GrFPs work correctly without an input. GrSurfaceDesc rtDesc; rtDesc.fWidth = kRenderTargetWidth; rtDesc.fHeight = kRenderTargetHeight; rtDesc.fFlags = kRenderTarget_GrSurfaceFlag; rtDesc.fConfig = kRGBA_8888_GrPixelConfig; SkAutoTUnref<GrRenderTarget> rt( context->textureProvider()->createTexture(rtDesc, false)->asRenderTarget()); int fpFactoryCnt = GrProcessorTestFactory<GrFragmentProcessor>::Count(); for (int i = 0; i < fpFactoryCnt; ++i) { // Since FP factories internally randomize, call each 10 times. for (int j = 0; j < 10; ++j) { SkAutoTUnref<GrDrawBatch> batch(GrRandomDrawBatch(&random, context)); SkASSERT(batch); GrProcessorTestData ptd(&random, context, context->caps(), dummyTextures); GrPipelineBuilder builder; builder.setXPFactory(GrPorterDuffXPFactory::Create(SkXfermode::kSrc_Mode))->unref(); builder.setRenderTarget(rt); builder.setClip(clip); SkAutoTUnref<const GrFragmentProcessor> fp( GrProcessorTestFactory<GrFragmentProcessor>::CreateIdx(i, &ptd)); SkAutoTUnref<const GrFragmentProcessor> blockFP( BlockInputFragmentProcessor::Create(fp)); builder.addColorFragmentProcessor(blockFP); drawTarget->drawBatch(builder, batch); drawingManager->flush(); } } return true; }
void EditAssetTypeDialog::editTemplates() { PathTemplatesDialog ptd( this ); ptd.exec(); }
typename pcl::PointCloud<PointT>::Ptr get_point_cloud(int distance, bool colored) { //get rgb and depth data while(!device -> getDepth(depth_map)){} while(!device -> getRGB(rgb)){} int depth_width = 640; int depth_height = 480; //create the empty Pointcloud boost::shared_ptr<pcl::PointCloud<PointT>> cloud (new pcl::PointCloud<PointT>); //initialize the PointCloud height and width //cloud->height = std::max (image_height, depth_height); //cloud->width = std::max (image_width, depth_width); //allow infinite values for points coordinates cloud->is_dense = false; //set camera parameters for kinect float focal_x_depth = 585.187492217609;//5.9421434211923247e+02; float focal_y_depth = 585.308616340665;//5.9104053696870778e+02; float center_x_depth = 322.714077555293;//3.3930780975300314e+02; float center_y_depth = 248.626108676666;//2.4273913761751615e+02; float bad_point = std::numeric_limits<float>::quiet_NaN (); #pragma omp parallel for for (unsigned int y = 0; y < depth_height; ++y) for ( unsigned int x = 0; x < depth_width; ++x){ PointT ptout; uint16_t dz = depth_map[y*depth_width + x]; if (abs(dz) < distance){ // project Eigen::Vector3d ptd((x - center_x_depth) * dz / focal_x_depth, (y - center_y_depth) * dz/focal_y_depth, dz); // assign output xyz ptout.x = ptd.x()*0.001f; ptout.y = ptd.y()*0.001f; ptout.z = ptd.z()*0.001f; if(colored){ uint8_t r = rgb[(y*depth_width + x)*3]; uint8_t g = rgb[(y*depth_width + x)*3 + 1]; uint8_t b = rgb[(y*depth_width + x)*3 + 2]; ptout.rgba = pcl::PointXYZRGB(r, g, b).rgba; //assign color //ptout.rgba = pcl::PointXYZRGB(0, 0, 0).rgba; } else ptout.rgba = pcl::PointXYZRGB(0, 0, 0).rgba; #pragma omp critical cloud->points.push_back(ptout); //assigns point to cloud } } cloud->height = 1; cloud->width = cloud->points.size(); return (cloud); }
bool GrDrawTarget::programUnitTest(GrContext* context, int maxStages) { // setup dummy textures GrSurfaceDesc dummyDesc; dummyDesc.fFlags = kRenderTarget_GrSurfaceFlag; dummyDesc.fConfig = kSkia8888_GrPixelConfig; dummyDesc.fWidth = 34; dummyDesc.fHeight = 18; SkAutoTUnref<GrTexture> dummyTexture1( context->textureProvider()->createTexture(dummyDesc, false, nullptr, 0)); dummyDesc.fFlags = kNone_GrSurfaceFlags; dummyDesc.fConfig = kAlpha_8_GrPixelConfig; dummyDesc.fWidth = 16; dummyDesc.fHeight = 22; SkAutoTUnref<GrTexture> dummyTexture2( context->textureProvider()->createTexture(dummyDesc, false, nullptr, 0)); if (!dummyTexture1 || ! dummyTexture2) { SkDebugf("Could not allocate dummy textures"); return false; } GrTexture* dummyTextures[] = {dummyTexture1.get(), dummyTexture2.get()}; // dummy scissor state GrScissorState scissor; // wide open clip GrClip clip; SkRandom random; static const int NUM_TESTS = 2048; for (int t = 0; t < NUM_TESTS; t++) { // setup random render target(can fail) SkAutoTUnref<GrRenderTarget> rt(random_render_target( context->textureProvider(), &random, this->caps())); if (!rt.get()) { SkDebugf("Could not allocate render target"); return false; } GrPipelineBuilder pipelineBuilder; pipelineBuilder.setRenderTarget(rt.get()); pipelineBuilder.setClip(clip); SkAutoTUnref<GrDrawBatch> batch(GrRandomDrawBatch(&random, context)); SkASSERT(batch); GrProcessorDataManager procDataManager; GrProcessorTestData ptd(&random, context, &procDataManager, fGpu->caps(), dummyTextures); set_random_color_coverage_stages(&pipelineBuilder, &ptd, maxStages); set_random_xpf(&pipelineBuilder, &ptd); set_random_state(&pipelineBuilder, &random); set_random_stencil(&pipelineBuilder, &random); this->drawBatch(pipelineBuilder, batch); } // Flush everything, test passes if flush is successful(ie, no asserts are hit, no crashes) this->flush(); return true; }