TMaze::TMaze(const char *DataFile, const char *t): TRectControl( TPixel(Viewport.ScreenLeft(), Viewport.ScreenTop()), TPixel(Viewport.ScreenRight(), Viewport.ScreenBottom()) ), Maze(MazeSize, DataFile), Cube(MazeSize, DataFile), Ship("Ship.DAT"), Crystal(NULL), Step(0), Frames(3), DeltaZ(0.3), Viewer(), AnimationType(aniNone), found(False) { tag = t; // First of all, "prepare" Maze Maze *= TShift(-0.5,-0.5,-0.5+DeltaZ); // Create new crystal Crystal = NewCrystal(); // View the maze and the ship Viewer << &Maze << &Ship << Crystal; Viewer.Update(); Ship *= TScale(0.05, 0.08, 0.08) *= TShift(0, -0.2 , 0.1) *= TPivotRotateX(-M_PI/30,0,0.5) ; Viewer.Sort(); }
void TMaze::Show() // Shows everything { Viewport.Set(); Viewer.Sort(); Viewer.Show(); g_Screen.Set(); TRectangle( TPixel(Viewport.ScreenLeft(), Viewport.ScreenTop()), TPixel(Viewport.ScreenRight(), Viewport.ScreenBottom()) ).Draw(BLACK, BLACK, WHITE, WHITE); }
void CleanupSwatch::CleanupSwatchArea::updateCleanupped Versione ricalcolo Al Release Del mouse(bool dragging) { TAffine aff = getFinalAff(); TRect rectToCompute = convert(aff.inv() * convert(m_r->getBounds())); rectToCompute = rectToCompute.enlarge(TCleanupper::instance()->getParameters()->m_despeckling); TRect outRect = m_sw->m_resampledRaster->getBounds() * rectToCompute; if (outRect.isEmpty()) return; if (dragging && m_sw->m_lastRasCleanupped) m_r->fill(TPixel(200, 200, 200)); else { m_sw->m_lastRasCleanupped = TCleanupper::instance()->processColors(m_sw->m_resampledRaster->extract(outRect)); m_sw->m_lastCleanuppedPos = convert(outRect.getP00()); } TRop::quickPut(m_r, m_sw->m_lastRasCleanupped, aff * TTranslation(m_sw->m_lastCleanuppedPos)); }
//------------------------------------------------------------------------------ void CleanupSwatch::CleanupSwatchArea::updateRaster(bool dragging) { if (isHidden() || m_sw->m_lx == 0 || m_sw->m_ly == 0) return; if (!m_r || m_r->getLx() != m_sw->m_lx || m_r->getLy() != m_sw->m_ly) m_r = TRaster32P(m_sw->m_lx, m_sw->m_ly); if (!m_sw->m_resampledRaster) m_r->fill(TPixel(200, 200, 200)); else { m_r->fill(TPixel::White); if (m_isLeft) TRop::quickPut(m_r, m_sw->m_origRaster, getFinalAff() * m_sw->m_resampleAff); else updateCleanupped(dragging); } if (dragging) repaint(); else update(); }
void Convert2Tlv::buildInksForNAAImage(TRasterCM32P &rout, const TRaster32P &rin) { std::map<TPixel, int>::iterator it; TPixel curColor = TPixel::Transparent; int i, j; int curIndex; //prima passata: identifico i colori di inchiostro e metto in rout i pixel di inchiostro puro for (i = 0; i < rin->getLy(); i++) { TPixel *pixin = rin->pixels(i); TPixelCM32 *pixout = rout->pixels(i); for (j = 0; j < rin->getLx(); j++, pixin++, pixout++) { TPixel colorIn; /*- treat white/transparent pixels as transparent -*/ if (*pixin == TPixel(255, 255, 255) || *pixin == TPixel::Transparent) { *pixout = TPixelCM32(0, 0, 255); continue; } if (curColor != *pixin) { curColor = *pixin; if ((it = m_colorMap.find(curColor)) == m_colorMap.end()) { if (m_lastIndex < 4095) m_colorMap[curColor] = ++m_lastIndex; curIndex = m_lastIndex; } else curIndex = it->second; } *pixout = TPixelCM32(curIndex, 0, 0); } } if (m_colorMap.empty()) m_colorMap[TPixel::Black] = ++m_lastIndex; }
Preferences::Preferences() : m_units("mm"), m_cameraUnits("inch"), m_scanLevelType("tif"), m_defLevelWidth(0.0), m_defLevelHeight(0.0), m_defLevelDpi(0.0), m_iconSize(160, 120), m_blankColor(TPixel32::White), m_frontOnionColor(TPixel::Black), m_backOnionColor(TPixel::Black), m_transpCheckBg(TPixel::White), m_transpCheckInk(TPixel::Black), m_transpCheckPaint(TPixel(127, 127, 127)), m_autosavePeriod(15), m_chunkSize(10), m_rasterOptimizedMemory(0), m_shrink(1), m_step(1), m_blanksCount(0), m_keyframeType(3), m_animationStep(1), m_textureSize(0), m_xsheetStep(10), m_shmmax(-1), m_shmseg(-1), m_shmall(-1), m_shmmni(-1), m_onionPaperThickness(50), m_currentLanguage(0), m_currentStyleSheet(0), m_undoMemorySize(100), m_dragCellsBehaviour(0), m_lineTestFpsCapture(25), m_defLevelType(0), m_autocreationType(1), m_autoExposeEnabled(true), m_autoCreateEnabled(true), m_subsceneFolderEnabled(true), m_generatedMovieViewEnabled(true), m_xsheetAutopanEnabled(true), m_ignoreAlphaonColumn1Enabled(false), m_rewindAfterPlaybackEnabled(true), m_fitToFlipbookEnabled(false), m_previewAlwaysOpenNewFlipEnabled(false), m_autosaveEnabled(false), m_defaultViewerEnabled(false), m_saveUnpaintedInCleanup(true), m_askForOverrideRender(true), m_automaticSVNFolderRefreshEnabled(true), m_SVNEnabled(false), m_minimizeSaveboxAfterEditing(true), m_levelsBackupEnabled(false), m_sceneNumberingEnabled(false), m_animationSheetEnabled(false), m_inksOnly(false), m_fillOnlySavebox(false), m_show0ThickLines(true), m_regionAntialias(false), m_viewerBGColor(128, 128, 128, 255), m_previewBGColor(64, 64, 64, 255), m_chessboardColor1(180, 180, 180), m_chessboardColor2(230, 230, 230), m_showRasterImagesDarkenBlendedInViewer(false), m_actualPixelViewOnSceneEditingMode(false), m_viewerZoomCenter(0), m_initialLoadTlvCachingBehavior(0), m_removeSceneNumberFromLoadedLevelName(false), m_replaceAfterSaveLevelAs(true), m_showFrameNumberWithLetters(false), m_levelNameOnEachMarker(false), m_columnIconLoadingPolicy((int)LoadAtOnce), m_moveCurrentFrameByClickCellArea(true), m_onionSkinEnabled(false), m_multiLayerStylePickerEnabled(false), m_paletteTypeOnLoadRasterImageAsColorModel(0), m_showKeyframesOnXsheetCellArea(true) { TCamera camera; m_defLevelType = PLI_XSHLEVEL; m_defLevelWidth = camera.getSize().lx; m_defLevelHeight = camera.getSize().ly; m_defLevelDpi = camera.getDpi().x; TFilePath layoutDir = ToonzFolder::getMyModuleDir(); TFilePath savePath = layoutDir + TFilePath("preferences.ini"); m_settings.reset(new QSettings(QString::fromStdWString(savePath.getWideString()), QSettings::IniFormat)); getValue(*m_settings, "autoExposeEnabled", m_autoExposeEnabled); getValue(*m_settings, "autoCreateEnabled", m_autoCreateEnabled); getValue(*m_settings, "subsceneFolderEnabled", m_subsceneFolderEnabled); getValue(*m_settings, "generatedMovieViewEnabled", m_generatedMovieViewEnabled); getValue(*m_settings, "xsheetAutopanEnabled", m_xsheetAutopanEnabled); getValue(*m_settings, "ignoreAlphaonColumn1Enabled", m_ignoreAlphaonColumn1Enabled); getValue(*m_settings, "rewindAfterPlayback", m_rewindAfterPlaybackEnabled); getValue(*m_settings, "previewAlwaysOpenNewFlip", m_previewAlwaysOpenNewFlipEnabled); getValue(*m_settings, "fitToFlipbook", m_fitToFlipbookEnabled); getValue(*m_settings, "automaticSVNFolderRefreshEnabled", m_automaticSVNFolderRefreshEnabled); getValue(*m_settings, "SVNEnabled", m_SVNEnabled); getValue(*m_settings, "minimizeSaveboxAfterEditing", m_minimizeSaveboxAfterEditing); getValue(*m_settings, "levelsBackupEnabled", m_levelsBackupEnabled); getValue(*m_settings, "sceneNumberingEnabled", m_sceneNumberingEnabled); getValue(*m_settings, "animationSheetEnabled", m_animationSheetEnabled); getValue(*m_settings, "autosaveEnabled", m_autosaveEnabled); getValue(*m_settings, "defaultViewerEnabled", m_defaultViewerEnabled); getValue(*m_settings, "rasterOptimizedMemory", m_rasterOptimizedMemory); getValue(*m_settings, "saveUnpaintedInCleanup", m_saveUnpaintedInCleanup); getValue(*m_settings, "autosavePeriod", m_autosavePeriod); getValue(*m_settings, "taskchunksize", m_chunkSize); getValue(*m_settings, "xsheetStep", m_xsheetStep); int r = 0, g = 0, b = 0; getValue(*m_settings, "frontOnionColor.r", r); getValue(*m_settings, "frontOnionColor.g", g); getValue(*m_settings, "frontOnionColor.b", b); m_frontOnionColor = TPixel32(r, g, b); getValue(*m_settings, "onionPaperThickness", m_onionPaperThickness); r = 0, g = 0, b = 0; getValue(*m_settings, "backOnionColor.r", r); getValue(*m_settings, "backOnionColor.g", g); getValue(*m_settings, "backOnionColor.b", b); m_backOnionColor = TPixel32(r, g, b); r = m_transpCheckBg.r, g = m_transpCheckBg.g, b = m_transpCheckBg.b; getValue(*m_settings, "transpCheckInkOnBlack.r", r); getValue(*m_settings, "transpCheckInkOnBlack.g", g); getValue(*m_settings, "transpCheckInkOnBlack.b", b); m_transpCheckBg = TPixel32(r, g, b); r = m_transpCheckInk.r, g = m_transpCheckInk.g, b = m_transpCheckInk.b; getValue(*m_settings, "transpCheckInkOnWhite.r", r); getValue(*m_settings, "transpCheckInkOnWhite.g", g); getValue(*m_settings, "transpCheckInkOnWhite.b", b); m_transpCheckInk = TPixel32(r, g, b); r = m_transpCheckPaint.r, g = m_transpCheckPaint.g, b = m_transpCheckPaint.b; getValue(*m_settings, "transpCheckPaint.r", r); getValue(*m_settings, "transpCheckPaint.g", g); getValue(*m_settings, "transpCheckPaint.b", b); m_transpCheckPaint = TPixel32(r, g, b); getValue(*m_settings, "onionInksOnly", m_inksOnly); getValue(*m_settings, "iconSizeX", m_iconSize.lx); getValue(*m_settings, "iconSizeY", m_iconSize.ly); getValue(*m_settings, s_show0ThickLines, m_show0ThickLines); getValue(*m_settings, s_regionAntialias, m_regionAntialias); getValue(*m_settings, "viewShrink", m_shrink); getValue(*m_settings, "viewStep", m_step); getValue(*m_settings, "blanksCount", m_blanksCount); getValue(*m_settings, "askForOverrideRender", m_askForOverrideRender); r = 255, g = 255, b = 255; getValue(*m_settings, "blankColor.r", r); getValue(*m_settings, "blankColor.g", g); getValue(*m_settings, "blankColor.b", b); getValue(*m_settings, "undoMemorySize", m_undoMemorySize); setUndoMemorySize(m_undoMemorySize); m_blankColor = TPixel32(r, g, b); QString units; units = m_settings->value("linearUnits").toString(); if (units != "") m_units = units; setUnits(m_units.toStdString()); units = m_settings->value("cameraUnits").toString(); if (units != "") m_cameraUnits = units; setCameraUnits(m_cameraUnits.toStdString()); getValue(*m_settings, "keyframeType", m_keyframeType); getValue(*m_settings, "animationStep", m_animationStep); getValue(*m_settings, "textureSize", m_textureSize); QString scanLevelType; scanLevelType = m_settings->value("scanLevelType").toString(); if (scanLevelType != "") m_scanLevelType = scanLevelType; setScanLevelType(m_scanLevelType.toStdString()); getValue(*m_settings, "shmmax", m_shmmax); getValue(*m_settings, "shmseg", m_shmseg); getValue(*m_settings, "shmall", m_shmall); getValue(*m_settings, "shmmni", m_shmmni); // Load level formats getDefaultLevelFormats(m_levelFormats); getValue(*m_settings, m_levelFormats); std::sort(m_levelFormats.begin(), m_levelFormats.end(), // Format sorting must be formatLess); // enforced TFilePath lang_path = TEnv::getConfigDir() + "loc"; TFilePathSet lang_fpset; m_languageMaps[0] = "english"; //m_currentLanguage=0; try { TFileStatus langPathFs(lang_path); if (langPathFs.doesExist() && langPathFs.isDirectory()) { TSystem::readDirectory(lang_fpset, lang_path, true, false); } else { } TFilePathSet::iterator it = lang_fpset.begin(); int i = 1; for (it; it != lang_fpset.end(); it++, i++) { TFilePath newPath = *it; if (newPath == lang_path) continue; if (TFileStatus(newPath).isDirectory()) { QString string = QString::fromStdWString(newPath.getWideName()); m_languageMaps[i] = string; } } } catch (...) { } TFilePath path(TEnv::getConfigDir() + "qss"); TFilePathSet fpset; try { TSystem::readDirectory(fpset, path, true, false); TFilePathSet::iterator it = fpset.begin(); int i = 0; for (it; it != fpset.end(); it++, i++) { TFilePath newPath = *it; if (newPath == path) continue; QString fpName = QString::fromStdWString(newPath.getWideName()); #ifdef MACOSX QString string = fpName + QString("/") + fpName + QString("_mac.qss"); #else QString string = fpName + QString("/") + fpName + QString(".qss"); #endif if (fpName == QString("standard")) m_currentStyleSheet = i; m_styleSheetMaps[i] = "file:///" + path.getQString() + "/" + string; } } catch (...) { } getValue(*m_settings, "CurrentLanguage", m_currentLanguage); getValue(*m_settings, "CurrentStyleSheet", m_currentStyleSheet); getValue(*m_settings, "DragCellsBehaviour", m_dragCellsBehaviour); getValue(*m_settings, "LineTestFpsCapture", m_lineTestFpsCapture); getValue(*m_settings, "FillOnlysavebox", m_fillOnlySavebox); getValue(*m_settings, "AutocreationType", m_autocreationType); getValue(*m_settings, "DefLevelType", m_defLevelType); getValue(*m_settings, "DefLevelWidth", m_defLevelWidth); getValue(*m_settings, "DefLevelHeight", m_defLevelHeight); getValue(*m_settings, "DefLevelDpi", m_defLevelDpi); getValue(*m_settings, "viewerBGColor", m_viewerBGColor); getValue(*m_settings, "previewBGColor", m_previewBGColor); getValue(*m_settings, "chessboardColor1", m_chessboardColor1); getValue(*m_settings, "chessboardColor2", m_chessboardColor2); getValue(*m_settings, "showRasterImagesDarkenBlendedInViewer", m_showRasterImagesDarkenBlendedInViewer); getValue(*m_settings, "actualPixelViewOnSceneEditingMode", m_actualPixelViewOnSceneEditingMode); getValue(*m_settings, "viewerZoomCenter", m_viewerZoomCenter); getValue(*m_settings, "initialLoadTlvCachingBehavior", m_initialLoadTlvCachingBehavior); getValue(*m_settings, "removeSceneNumberFromLoadedLevelName", m_removeSceneNumberFromLoadedLevelName); getValue(*m_settings, "replaceAfterSaveLevelAs", m_replaceAfterSaveLevelAs); getValue(*m_settings, "showFrameNumberWithLetters", m_showFrameNumberWithLetters); getValue(*m_settings, "levelNameOnEachMarkerEnabled", m_levelNameOnEachMarker); getValue(*m_settings, "columnIconLoadingPolicy", m_columnIconLoadingPolicy); getValue(*m_settings, "moveCurrentFrameByClickCellArea", m_moveCurrentFrameByClickCellArea); getValue(*m_settings, "onionSkinEnabled", m_onionSkinEnabled); getValue(*m_settings, "multiLayerStylePickerEnabled", m_multiLayerStylePickerEnabled); getValue(*m_settings, "paletteTypeOnLoadRasterImageAsColorModel", m_paletteTypeOnLoadRasterImageAsColorModel); getValue(*m_settings, "showKeyframesOnXsheetCellArea", m_showKeyframesOnXsheetCellArea); }
void QmitkConnectomicsNetworkOperationsView::TurnIntoRGBA( itk::Image<TPixel, VImageDimension>* inputImage) { typedef itk::RGBAPixel< unsigned char > RGBAPixelType; typedef itk::Image< TPixel, VImageDimension > TemplateImageType; typedef itk::Image< RGBAPixelType, VImageDimension > RGBAImageType; itk::ImageRegionIterator<TemplateImageType> it_inputImage(inputImage, inputImage->GetLargestPossibleRegion()); TPixel minimumValue, maximumValue; it_inputImage.GoToBegin(); maximumValue = minimumValue = it_inputImage.Value(); for(it_inputImage.GoToBegin(); !it_inputImage.IsAtEnd(); ++it_inputImage) { if ( it_inputImage.Value() < minimumValue ) { minimumValue = it_inputImage.Value(); } else { if ( it_inputImage.Value() > maximumValue ) { maximumValue = it_inputImage.Value(); } } } int range = int ( maximumValue - minimumValue ); //needs to be castable to int int offset = int ( minimumValue ); if ( range < 0 ) //error { return; } std::vector< unsigned int > histogram; histogram.resize( range + 1, 0 ); for(it_inputImage.GoToBegin(); !it_inputImage.IsAtEnd(); ++it_inputImage) { histogram[ int ( it_inputImage.Value() ) - offset ] += 1; } int gapCounter = 0; //this variable will be used to count the empty labels //stores how much has to be subtracted from the image to remove gaps std::vector< TPixel > subtractionStorage; subtractionStorage.resize( range + 1, 0 ); for( int index = 0; index <= range; index++ ) { if( histogram[ index ] == 0 ) { gapCounter++; //if the label is empty, increase gapCounter } else { subtractionStorage[ index ] = TPixel ( gapCounter ); } } //remove gaps from label image for(it_inputImage.GoToBegin(); !it_inputImage.IsAtEnd(); ++it_inputImage) { it_inputImage.Value() = it_inputImage.Value() - subtractionStorage[int ( it_inputImage.Value() ) - offset ]; } // create colour vector std::vector< RGBAPixelType > lookupTable; { RGBAPixelType backgroundColour; for( int elementIndex = 0; elementIndex < 4; ++elementIndex ) { backgroundColour.SetElement( elementIndex, 0 ); } lookupTable.push_back( backgroundColour ); for(int colourNumber = 0; colourNumber < range ; ++colourNumber) { RGBAPixelType colour; for( int elementIndex = 0; elementIndex < 3; ++elementIndex ) { colour.SetElement( elementIndex, rand() % 256 ); } colour.SetAlpha( 255 ); lookupTable.push_back( colour ); } } // create RGBA image typename RGBAImageType::Pointer rgbaImage = RGBAImageType::New(); rgbaImage->SetRegions(inputImage->GetLargestPossibleRegion().GetSize()); rgbaImage->SetSpacing(inputImage->GetSpacing()); rgbaImage->SetOrigin(inputImage->GetOrigin()); rgbaImage->Allocate(); //fill with appropriate colours itk::ImageRegionIterator<RGBAImageType> it_rgbaImage(rgbaImage, rgbaImage->GetLargestPossibleRegion()); for(it_inputImage.GoToBegin(), it_rgbaImage.GoToBegin(); !it_inputImage.IsAtEnd(); ++it_inputImage, ++it_rgbaImage) { it_rgbaImage.Value() = lookupTable[ int ( it_inputImage.Value() ) - offset ]; } mitk::Image::Pointer mitkRGBAImage = mitk::ImportItkImage( rgbaImage )->Clone(); mitk::DataNode::Pointer rgbaImageNode = mitk::DataNode::New(); rgbaImageNode->SetData(mitkRGBAImage); rgbaImageNode->SetProperty(mitk::ConnectomicsConstantsManager::CONNECTOMICS_PROPERTY_NAME, mitk::StringProperty::New(mitk::ConnectomicsConstantsManager::CONNECTOMICS_PROPERTY_DEFAULT_RGBA_NAME)); rgbaImageNode->SetBoolProperty( mitk::ConnectomicsConstantsManager::CONNECTOMICS_PROPERTY_VOLUMERENDERING, true); this->GetDefaultDataStorage()->Add( rgbaImageNode ); }