/*
JWildfire - an image and animation processor written in Java
Copyright (C) 1995-2017 Andreas Maschke
This is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser
General Public License as published by the Free Software Foundation; either version 2.1 of the
License, or (at your option) any later version.
This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with this software;
if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/
package org.jwildfire.base;
import java.awt.Color;
import java.awt.Font;
import java.io.File;
import java.net.InetAddress;
import java.util.ArrayList;
import java.util.List;
import org.jwildfire.base.mathlib.BaseMathLibType;
import org.jwildfire.base.mathlib.MathLib;
import org.jwildfire.create.tina.base.raster.RasterCreator;
import org.jwildfire.create.tina.random.RandomGeneratorType;
import org.jwildfire.create.tina.render.filter.FilterKernelType;
import org.jwildfire.create.tina.swing.EditorDoubleClickActionType;
import org.jwildfire.create.tina.swing.RandomBatchRefreshType;
import org.jwildfire.create.tina.swing.flamepanel.FlamePanelControlStyle;
import org.jwildfire.swing.LookAndFeelType;
import com.l2fprod.common.beans.editor.ComboBoxPropertyEditor;
public class Prefs extends ManagedObject {
// DON'T forget to update the assign() method after adding new properties!!!
static final String PREFS_FILE = "j-wildfire.properties";
static final String KEY_GENERAL_LOOK_AND_FEEL = "general.look_and_feel";
static final String KEY_GENERAL_LOOK_AND_FEEL_THEME = "general.look_and_feel.theme";
static final String KEY_GENERAL_PATH_IMAGES = "general.path.images";
static final String KEY_GENERAL_PATH_SCRIPTS = "general.path.scripts";
static final String KEY_GENERAL_PATH_SOUND_FILES = "sunflow.path.sound_files";
static final String KEY_GENERAL_SHOW_TIPS_AT_STARTUP = "general.show_tips_at_startup";
static final String KEY_GENERAL_DESKTOP_BACKGROUND_IMAGEPATH = "general.desktop_background_imagepath";
static final String KEY_GENERAL_DESKTOP_BACKGROUND_DARKEN_AMOUNT = "general.desktop_background_darken_amount";
static final String KEY_GENERAL_DEVELOPMENT_MODE = "general.development_mode";
static final String KEY_GENERAL_BASE_MATH_LIB = "general.base_math_lib";
static final String KEY_GENERAL_PATH_THUMBNAILS = "general.path.thumbnails";
static final String KEY_SUNFLOW_PATH_SCENES = "sunflow.path.scenes";
static final String KEY_TINA_FONTSCALE = "tina.general.font_scale";
static final String KEY_TINA_PRESERVE_FREE_CPUS = "tina.render.preserve_free_cpus";
static final String KEY_TINA_PROFILE_RESOLUTION_COUNT = "tina.profile.resolution.count";
static final String KEY_TINA_PROFILE_RESOLUTION_WIDTH = "tina.profile.resolution.width";
static final String KEY_TINA_PROFILE_RESOLUTION_HEIGHT = "tina.profile.resolution.height";
static final String KEY_TINA_PROFILE_RESOLUTION_DEFAULT_PROFILE = "tina.profile.resolution.default_profile";
static final String KEY_TINA_PROFILE_QUALITY_COUNT = "tina.profile.quality2.count";
static final String KEY_TINA_PROFILE_QUALITY_QUALITY = "tina.profile.quality2.quality";
static final String KEY_TINA_PROFILE_QUALITY_WITH_HDR = "tina.profile.quality2.with_hdr";
static final String KEY_TINA_PROFILE_QUALITY_WITH_ZBUFFER = "tina.profile.quality2.with_zbuffer";
static final String KEY_TINA_PROFILE_QUALITY_CAPTION = "tina.profile.quality2.caption";
static final String KEY_TINA_PROFILE_QUALITY_DEFAULT_PROFILE = "tina.profile.quality2.default_profile";
static final String KEY_TINA_PATH_MESHES = "tina.path.meshes";
static final String KEY_TINA_PATH_FLAMES = "tina.path.flames";
static final String KEY_TINA_PATH_JWFMOVIES = "tina.path.jwfmovies";
static final String KEY_TINA_PATH_JWFSCRIPTS = "tina.path.jwfscripts";
static final String KEY_TINA_PATH_CUSTOM_VARIATIONS = "tina.path.custom_variations";
static final String KEY_TINA_PATH_GRADIENTS = "tina.path.gradients";
static final String KEY_TINA_RENDER_MOVIE_FRAMES = "tina.render.movie.frames";
static final String KEY_TINA_PATH_MOVIEFLAMES = "tina.path.movie.flames";
static final String KEY_TINA_PATH_SVG = "tina.path.svg";
static final String KEY_TINA_PATH_RAW_MOTION_DATA = "tina.path.raw_motion_data";
static final String KEY_TINA_RENDER_REALTIME_QUALITY = "tina.render.realtime.quality";
static final String KEY_TINA_RENDER_PREVIEW_QUALITY = "tina.render.preview.quality";
static final String KEY_TINA_RENDER_DEFAULT_BG_TRANSPARENCY = "tina.render.default_bg_transparency";
static final String KEY_TINA_RENDER_DEFAULT_ANTIALIASING_AMOUNT = "tina.render.default_antialiasing_amount.8";
static final String KEY_TINA_RENDER_DEFAULT_ANTIALIASING_RADIUS = "tina.render.default_antialiasing_radius.5";
static final String KEY_TINA_PROFILE_ASSOCIATE_WITH_FLAMES = "tina.profile.associate_with_flames";
static final String KEY_TINA_DISABLE_SOLID_RANDGENS = "tina.disable_solid_randgens";
static final String KEY_TINA_RANDOM_GENERATOR = "tina.random.generator.2";
static final String KEY_TINA_RANDOMBATCH_SIZE = "tina.random_batch.size";
static final String KEY_TINA_RANDOMBATCH_DUALITY_PREFERED_VARIATION = "tina.random_batch.duality.prefered_variation";
static final String KEY_TINA_RANDOMBATCH_DUALITY_PREFERED_VARIATION_PROBABILITY1 = "tina.random_batch.duality.prefered_variation_probability1";
static final String KEY_TINA_RANDOMBATCH_DUALITY_PREFERED_VARIATION_PROBABILITY2 = "tina.random_batch.duality.prefered_variation_probability2";
static final String KEY_TINA_RANDOMMOVIEBATCH_SIZE = "tina.random_movie_batch.size";
static final String KEY_TINA_RASTER_TYPE = "tina.raster_type";
static final String KEY_TINA_RANDOMBATCH_BGCOLOR_RED = "tina.random_batch.bg_color.red";
static final String KEY_TINA_RANDOMBATCH_BGCOLOR_GREEN = "tina.random_batch.bg_color.green";
static final String KEY_TINA_RANDOMBATCH_BGCOLOR_BLUE = "tina.random_batch.bg_color.blue";
static final String KEY_TINA_RANDOMBATCH_REFRESH_TYPE = "tina.random_batch.refresh_type";
static final String KEY_TINA_EDITOR_CONTROLS_WITH_COLOR = "tina.editor.controls.with_color.3";
static final String KEY_TINA_EDITOR_PROGRESSIVE_PREVIEW = "tina.editor.progressive_preview";
static final String KEY_TINA_EDITOR_PROGRESSIVE_PREVIEW_MAX_RENDER_TIME = "tina.editor.progressive_preview.max_render_time.2";
static final String KEY_TINA_EDITOR_PROGRESSIVE_PREVIEW_MAX_RENDER_QUALITY = "tina.editor.progressive_preview.max_render_quality";
static final String KEY_TINA_EDITOR_CONTROLS_WITH_ANTIALIASING = "tina.editor.controls.with_antialising";
static final String KEY_TINA_EDITOR_CONTROLS_WITH_SHADOWS = "tina.editor.controls.with_shadows";
static final String KEY_TINA_EDITOR_CONTROLS_WITH_NUMBERS = "tina.editor.controls.with_numbers";
static final String KEY_TINA_EDITOR_CONTROLS_STYLE = "tina.editor.controls.style";
static final String KEY_TINA_EDITOR_GRID_SIZE = "tina.editor.grid_size";
static final String KEY_TINA_ADVANCED_CODE_EDITOR = "tina.advanced_code_editor";
static final String KEY_TINA_ADVANCED_CODE_EDITOR_COLOR_FIX = "tina.advanced_code_editor_color_fix";
static final String KEY_TINA_ADVANCED_CODE_EDITOR_FONT_SIZE = "tina.advanced_code_editor_font_size";
static final String KEY_TINA_EDITOR_GUIDES_LINE_WIDTH = "tina.editor.guides.linewidth";
static final String KEY_TINA_EDITOR_GUIDES_COLOR_CENTER_POINT = "tina.editor.guides.color.center_point";
static final String KEY_TINA_EDITOR_GUIDES_COLOR_RULE_OF_THIRDS = "tina.editor.guides.color.rule_of_thirds";
static final String KEY_TINA_EDITOR_GUIDES_COLOR_GOLDEN_RATIO = "tina.editor.guides.color.golden_ratio";
static final String KEY_TINA_DEFAULT_SPATIAL_OVERSAMPLING = "tina.default.spatial_oversampling.3";
static final String KEY_TINA_DEFAULT_POST_NOISE_FILTER = "tina.default.post_noise_filter.2";
static final String KEY_TINA_DEFAULT_POST_NOISE_FILTER_THRESHOLD = "tina.default.post_noise_filter_threshold";
static final String KEY_TINA_DEFAULT_FOREGROUND_OPACITY = "tina.default.foreground_opacity";
static final String KEY_TINA_DEFAULT_FILTER_KERNEL = "tina.default.filter_kernel.4";
static final String KEY_TINA_DEFAULT_FILTER_RADIUS = "tina.default.filter_radius";
static final String KEY_TINA_DEFAULT_FILTER_VISUALISATION_FLAT = "tina.default.filter_visualisation_flat";
public static final String KEY_TINA_EDITOR_DEFAULT_DOUBLECLICK_ACTION = "tina.editor.default.double_click_action";
public static final String KEY_TINA_DEFAULT_FADE_TO_WHITE_LEVEL = "tina.default.fade_to_white_level";
public static final String KEY_TINA_DEFAULT_FPS = "tina.default.fps";
static final String KEY_TINA_DEFAULT_EXPAND_NONLINEAR_PARAMS = "tina.initially_expand_nonlinear_params";
static final String KEY_TINA_FACLRENDER_PATH = "tina.faclrender_path";
static final String KEY_TINA_FACLRENDER_OPTS = "tina.faclrender_opts";
static final String KEY_TINA_AUTOLOAD_IMAGES_IN_IR = "tina.autoload_images_in_ir";
static final String KEY_TINA_SAVING_STORE_HDR_IN_IR = "tina.saving.store_hdr_in_ir";
static final String KEY_TINA_SAVING_STORE_FLAMES_WHEN_SAVING_IMAGE = "tina.saving.store_flames_when_saving_image";
static final String KEY_TINA_OPTIMIZED_RENDERING_IR = "tina.optimized_rendering_ir.5";
static final String KEY_TINA_DISABLE_WIKIMEDIA_COMMONS_WARNING = "tina.random_batch.disable_wikimedia_commons_warning";
static final String KEY_TINA_COLORMAP_RANDGEN_IMAGE_PATH = "tina.random_batch.random_gen.colormap.image_path";
public static final String KEY_TINA_FREE_CACHE_IN_BATCH_RENDERER = "tina.free_cache_in_batch_renderer";
public static final String KEY_TINA_CREATE_DEFAULT_MACRO_BUTTONS = "tina.create_default_macrobuttons.6";
public static final String KEY_TINA_VERTICAL_MACRO_BUTTONS = "tina.macro_buttons.vertical";
public static final String KEY_TINA_MACRO_TOOLBAR_WIDTH = "tina.toolbar.macro.width";
public static final String KEY_TINA_MACRO_TOOLBAR_HEIGHT = "tina.toolbar.macro.height";
public static final String KEY_TINA_MUTAGEN_MUTATIONTYPES_USER1 = "tina.mutagen.mutationtypes_user1";
public static final String KEY_TINA_MUTAGEN_MUTATIONTYPES_USER2 = "tina.mutagen.mutationtypes_user2";
public static final String KEY_TINA_MUTAGEN_MUTATIONTYPES_USER3 = "tina.mutagen.mutationtypes_user3";
public static final String KEY_TINA_MUTAGEN_MUTATIONTYPE_HORIZ1 = "tina.mutagen.mutationtype_horiz1";
public static final String KEY_TINA_MUTAGEN_MUTATIONTYPE_HORIZ2 = "tina.mutagen.mutationtype_horiz2";
public static final String KEY_TINA_MUTAGEN_MUTATIONTYPE_VERT1 = "tina.mutagen.mutationtype_vert1";
public static final String KEY_TINA_MUTAGEN_MUTATIONTYPE_VERT2 = "tina.mutagen.mutationtype_vert2";
static final String KEY_IFLAMES_LIBRARY_PATH_FLAMES = "iflames.library_path.flames";
static final String KEY_IFLAMES_LIBRARY_PATH_IMAGES = "iflames.library_path.images";
static final String KEY_IFLAMES_LOAD_LIBRARY_AT_STARTUP = "iflames.load_library_at_startup";
@Property(description = "Script drawer for the animation editor (please note that this NOT for scripts of the flame-editor)", category = PropertyCategory.MISC)
private String scriptPath = null;
private String lastInputScriptPath = null;
private String lastOutputScriptPath = null;
@Property(description = "Drawer for thumbnail-cache (restart of program after change required)", category = PropertyCategory.GENERAL)
private String thumbnailPath = null;
@Property(description = "Image drawer", category = PropertyCategory.GENERAL)
private String imagePath = null;
private String lastInputImagePath = null;
private String lastOutputImagePath = null;
@Property(description = "Sound file drawer", category = PropertyCategory.GENERAL)
private String soundFilePath = null;
private String lastInputSoundFilePath = null;
@Property(description = "Movie flames drawer", category = PropertyCategory.TINA)
private String movieFlamesPath = null;
private String lastOutputMovieFlamesPath = null;
@Property(description = "Number of preserved free cpus/cores", category = PropertyCategory.TINA)
private int tinaPreserveFreeCPUs = 0;
@Property(description = "Flame file drawer", category = PropertyCategory.TINA)
private String tinaFlamePath = null;
private String lastInputFlamePath = null;
private String lastOutputFlamePath = null;
@Property(description = "Mesh file drawer", category = PropertyCategory.TINA)
private String tinaMeshPath = null;
private String lastMeshPath = null;
@Property(description = "Background-image for the desktop, a change of this property requires a program-restart", category = PropertyCategory.GENERAL)
private String desktopBackgroundImagePath = null;
@Property(description = "Convenience background-image darken-amount (because a regular usually is too bright), a change of this property requires a program-restart", category = PropertyCategory.GENERAL)
private double desktopBackgroundDarkenAmount = 1.0;
@Property(description = "Show tips at startup", category = PropertyCategory.GENERAL)
private boolean showTipsAtStartup = true;
@Property(description = "Path to the flames building the flame-library for the IFlames", category = PropertyCategory.IFLAMES)
private String iflamesFlameLibraryPath = null;
@Property(description = "Path to the images building the image-library for the IFlames", category = PropertyCategory.IFLAMES)
private String iflamesImageLibraryPath = null;
@Property(description = "Automatically load the flame- and image-library when opening the IFlames-window", category = PropertyCategory.IFLAMES)
private boolean iflamesLoadLibraryAtStartup = false;
@Property(description = "Use an advanced editor with syntax-highlighting for editing scripts and custom variations. May not work on all systems and may not look good with all themes, so you can turn it off. A change of this property requires a program-restart", category = PropertyCategory.TINA)
private boolean tinaAdvancedCodeEditor = true;
@Property(description = "Make background color of advanced code editor white, overriding any look and feel settings. Only applies when advanced code editor is toggled on", category = PropertyCategory.TINA)
private boolean tinaAdvancedCodeEditorColorFix = true;
@Property(description = "Disable solid-flame-random-generators inside the global \"All\"-random-generator. This may make sense when you do not like solid flames at all or when the calculation takes too long on your machine. You may still manually select solid-flame-random-generators. A change of this property requires a program-restart", category = PropertyCategory.TINA)
private boolean tinaDisableSolidFlameRandGens = false;
@Property(description = "Set font size for advanced code editor. Only applies when advanced code editor is toggled on", category = PropertyCategory.TINA)
private int tinaAdvancedCodeEditorFontSize = 10;
@Property(description = "Expand the params in the non-linear tab per default. This is only the initial value, you may expand and collapse the params at any time manually", category = PropertyCategory.TINA)
private boolean tinaDefaultExpandNonlinearParams = false;
@Property(description = "Path to the external GPU renderer, currently only Windows-plattforms are supported. The software searches this path at program-start for a file called \"FACLRender.exe\", only when this file exists, the GPU-rendering-window is displayed, a change of this property requires a program-restart.", category = PropertyCategory.TINA)
private String tinaFACLRenderPath = null;
@Property(description = "Commandline-options added when invokling the external GPU-renderer. Refer to the documentation or sourcecode for more information.", category = PropertyCategory.TINA)
private String tinaFACLRenderOptions = "-nde";
@Property(description = "JWFMovie file drawer", category = PropertyCategory.TINA)
private String tinaJWFMoviePath = null;
private String lastInputJWFMoviePath = null;
private String lastOutputJWFMoviePath = null;
@Property(description = "Folder for user-scripts for the flame-editor", category = PropertyCategory.TINA)
private String tinaJWFScriptPath = null;
@Property(description = "Folder for custom-variations (currently only used by the custom-variation-loader-script by CozyG)", category = PropertyCategory.TINA)
private String tinaCustomVariationsPath = null;
@Property(description = "Drawer for raw motion data", category = PropertyCategory.TINA)
private String tinaRawMotionDataPath = null;
@Property(description = "Gradient file drawer", category = PropertyCategory.TINA)
private String tinaGradientPath = null;
@Property(description = "SVG file drawer", category = PropertyCategory.TINA)
private String tinaSVGPath = null;
@Property(description = "Associate profile information with flame files", category = PropertyCategory.TINA)
private boolean tinaAssociateProfilesWithFlames = false;
@Property(description = "Free the cacher after each rendered image in the batch-renderer", category = PropertyCategory.TINA)
private boolean tinaFreeCacheInBatchRenderer = false;
@Property(description = "Generate and save HDR images in the interactive renderer", category = PropertyCategory.TINA)
private boolean tinaSaveHDRInIR = false;
@Property(description = "Automatically re-load and display saved images from within the interactive renderer (in order to show the final result which may differ from the IR display). May be also activated per user-session in the IR itself", category = PropertyCategory.TINA)
private boolean tinaAutoloadSavedImagesInIR = true;
@Property(description = "Disable the warning about the usage of Wikimedia Commons random-flame-generator", category = PropertyCategory.TINA)
private boolean tinaDisableWikimediaCommonsWarning = false;
@Property(description = "Automatically save a flame-copy when a rendered image is saved", category = PropertyCategory.TINA)
private boolean tinaSaveFlamesWhenImageIsSaved = false;
@Property(description = "Used a colored display for affine transforms", category = PropertyCategory.TINA)
private boolean tinaEditorControlsWithColor = true;
@Property(description = "Turn on progressive preview-display in the main-editor by default", category = PropertyCategory.TINA)
private boolean tinaEditorProgressivePreview = true;
@Property(description = "Maximum render-time for the progressive preview-display", category = PropertyCategory.TINA)
private double tinaEditorProgressivePreviewMaxRenderTime = 25.0;
@Property(description = "Font-scale for the flame-fractal-editor (experimental, to apply changes a restart of the program is required)", category = PropertyCategory.TINA)
private double tinaFontScale = 1.0;
@Property(description = "Maximum render-quality for the progressive preview-display", category = PropertyCategory.TINA)
private double tinaEditorProgressivePreviewMaxRenderQuality = 200.0;
@Property(description = "Turn on antialiasing for drawing lines and triangle-symbols in the editor", category = PropertyCategory.TINA)
private boolean tinaEditorControlsWithAntialiasing = true;
@Property(description = "Display transform-numbers inside of the triangle-symbols in the editor", category = PropertyCategory.TINA)
private boolean tinaEditorControlsWithNumbers = true;
@Property(description = "Add small shadows to the controls, to increase contrast with background, in the editor", category = PropertyCategory.TINA)
private boolean tinaEditorControlsWithShadows = true;
@Property(description = "Default spatial oversampling setting, used when creating a new flame", category = PropertyCategory.TINA)
private int tinaDefaultSpatialOversampling = 2;
@Property(description = "Default setting for applying a post-noise-filter to rendered images", category = PropertyCategory.TINA)
private boolean tinaDefaultPostNoiseFilter = false;
@Property(description = "Default threshold-setting for the post-noise-filter", category = PropertyCategory.TINA)
private double tinaDefaultPostNoiseFilterThreshold = 0.35;
@Property(description = "Default foreground-opacity when rendering images with transparent background", category = PropertyCategory.TINA)
private double tinaDefaultForegroundOpacity = 1.0;
@Property(description = "Use flat (and faster) rendering to visualize filter-kernels", category = PropertyCategory.TINA)
private boolean tinaDefaultFilterVisualisationFlat = false;
@Property(description = "Default spatial filter-kernel, used when creating a new flame", category = PropertyCategory.TINA, editorClass = FilterKernelTypeEditor.class)
private FilterKernelType tinaDefaultSpatialFilterKernel = FilterKernelType.MITCHELL_SINEPOW;
@Property(description = "Default spatial filter-radius, used when creating a new flame (set to 0 in order to turn off spatial filtering)", category = PropertyCategory.TINA)
private double tinaDefaultSpatialFilterRadius = 0.75;
@Property(description = "Style of the controls (\"triangles\") in the editor", category = PropertyCategory.TINA, editorClass = FlamePanelTriangleStyleEditor.class)
private FlamePanelControlStyle tinaEditorControlsStyle = FlamePanelControlStyle.TRIANGLE;
@Property(description = "Action which is performed when you double-click at the editor-panel", category = PropertyCategory.TINA, editorClass = EditorDoubleClickActionTypeEditor.class)
private EditorDoubleClickActionType tinaEditorDoubleClickAction = EditorDoubleClickActionType.SWITCH_TRIANGLE_CAM_EDIT;
@Property(description = "Grid size (distance between two grid-lines) in the editor", category = PropertyCategory.TINA)
private double tinaEditorGridSize = 0.5;
@Property(description = "Default Fade-to-white-level of new generated flames", category = PropertyCategory.TINA)
private double tinaDefaultFadeToWhiteLevel = 220.0;
@Property(description = "Default FPS of new generated flames", category = PropertyCategory.TINA)
private int tinaDefaultFPS = 30;
@Property(description = "Optimize display-refresh in the interactive renderer, but may be slower at some really old computers", category = PropertyCategory.TINA)
private boolean tinaOptimizedRenderingIR = true;
@Property(description = "User-defined mutation-sub-types for mutation-type USER1 in the MutaGen", category = PropertyCategory.TINA)
private String tinaMutaGenMutationTypesUser1 = "ADD_TRANSFORM, CHANGE_WEIGHT, AFFINE, RANDOM_PARAMETER";
@Property(description = "User-defined mutation-sub-types for mutation-type USER2 in the MutaGen", category = PropertyCategory.TINA)
private String tinaMutaGenMutationTypesUser2 = "RANDOM_GRADIENT, LOCAL_GAMMA";
@Property(description = "User-defined mutation-sub-types for mutation-type USER3 in the MutaGen", category = PropertyCategory.TINA)
private String tinaMutaGenMutationTypesUser3 = "AFFINE_3D, BOKEH, RANDOM_FLAME";
@Property(description = "Default mutation-type at category \"Horiz 1\" in the MutaGen", category = PropertyCategory.TINA)
private String tinaMutaGenMutationTypeHoriz1 = "USER1";
@Property(description = "Default mutation-type at category \"Horiz 2\" in the MutaGen", category = PropertyCategory.TINA)
private String tinaMutaGenMutationTypeHoriz2 = "USER2";
@Property(description = "Default mutation-type at category \"Vert 1\" in the MutaGen", category = PropertyCategory.TINA)
private String tinaMutaGenMutationTypeVert1 = "ALL";
@Property(description = "Default mutation-type at category \"Vert 2\" in the MutaGen", category = PropertyCategory.TINA)
private String tinaMutaGenMutationTypeVert2 = "USER3";
@Property(description = "Sunflow scene file drawer", category = PropertyCategory.SUNFLOW)
private String sunflowScenePath = null;
private String lastInputSunflowScenePath = null;
private String lastOutputSunflowScenePath = null;
@Property(description = "Prefered variations of the \"Duality\"-random-flame generator. You may specify a comma-separated list of your favourite variations", category = PropertyCategory.TINA)
private String tinaRandGenDualityPreferedVariation = "spherical3D";
@Property(description = "Probability to use one of the prefered variations in the 1st transform by the \"Duality\"-random-flame generator.", category = PropertyCategory.TINA)
private double tinaRandGenDualityPreferedVariationProbability1 = 0.33;
@Property(description = "Probability to use one of the prefered variations in the 2nd transform by the \"Duality\"-random-flame generator.", category = PropertyCategory.TINA)
private double tinaRandGenDualityPreferedVariationProbability2 = 0.25;
@Property(description = "Image-input-path for the \"Color map\"-random-flame-generator (is scanned recursively, so BEWARE)", category = PropertyCategory.TINA)
private String tinaRandGenColorMapImagePath = null;
@Property(description = "Activate development mode", category = PropertyCategory.GENERAL)
private boolean developmentMode = false;
@Property(description = "Implementation of basic mathematical functions to use", category = PropertyCategory.GENERAL, editorClass = BaseMathLibTypeEditor.class)
private BaseMathLibType baseMathLibType = BaseMathLibType.getDefaultValue();
@Property(description = "Color of the guides for the center point (restart of program after change required)", category = PropertyCategory.TINA)
private Color tinaEditorGuidesCenterPointColor = new Color(255, 255, 255);
@Property(description = "Color of the guides for rule of thirds (restart of program after change required)", category = PropertyCategory.TINA)
private Color tinaEditorGuidesRuleOfThirdsColor = new Color(255, 0, 0);
@Property(description = "Color of the guides for rule of golden ratio (restart of program after change required)", category = PropertyCategory.TINA)
private Color tinaEditorGuidesGoldenRatioColor = new Color(0, 255, 0);
@Property(description = "Line width of the guides (restart of program after change required)", category = PropertyCategory.TINA)
private double tinaEditorGuidesLineWidth = 1.6;
@Property(description = "The width of the macro-toolbar when active and in vertical mode (restart of program after change required)", category = PropertyCategory.TINA)
private int tinaMacroToolbarWidth = 90;
@Property(description = "The height of the macro-toolbar when active and in horizontal mode (restart of program after change required)", category = PropertyCategory.TINA)
private int tinaMacroToolbarHeight = 28;
@Property(description = "Create a vertical toolbar to hold macro-buttons instead of the horizontal one (restart of program after change required)", category = PropertyCategory.TINA)
private boolean tinaMacroButtonsVertical = false;
private final List<QualityProfile> qualityProfiles = new ArrayList<QualityProfile>();
private final List<ResolutionProfile> resolutionProfiles = new ArrayList<ResolutionProfile>();
private final List<WindowPrefs> windowPrefs = new ArrayList<WindowPrefs>();
private boolean createTinaDefaultMacroButtons = true;
private final List<MacroButton> tinaMacroButtons = new ArrayList<MacroButton>();
public static class RandomBatchRefreshTypeEditor extends ComboBoxPropertyEditor {
public RandomBatchRefreshTypeEditor() {
super();
setAvailableValues(new RandomBatchRefreshType[] { RandomBatchRefreshType.CLEAR, RandomBatchRefreshType.INSERT, RandomBatchRefreshType.APPEND });
}
}
public static class BaseMathLibTypeEditor extends ComboBoxPropertyEditor {
public BaseMathLibTypeEditor() {
super();
setAvailableValues(new BaseMathLibType[] { BaseMathLibType.FAST_MATH, BaseMathLibType.JAVA_MATH });
}
}
public static class FlamePanelTriangleStyleEditor extends ComboBoxPropertyEditor {
public FlamePanelTriangleStyleEditor() {
super();
setAvailableValues(new FlamePanelControlStyle[] { FlamePanelControlStyle.AXIS, FlamePanelControlStyle.CROSSHAIR, FlamePanelControlStyle.RECTANGLE, FlamePanelControlStyle.TRIANGLE, FlamePanelControlStyle.HIDDEN });
}
}
public static class RandomGeneratorTypeEditor extends ComboBoxPropertyEditor {
public RandomGeneratorTypeEditor() {
super();
setAvailableValues(RandomGeneratorType.values());
}
}
public static class RasterCreatorEditor extends ComboBoxPropertyEditor {
public RasterCreatorEditor() {
super();
setAvailableValues(new RasterCreator[] { RasterCreator.FLOAT_INT_RASTER });
}
}
public static class EditorDoubleClickActionTypeEditor extends ComboBoxPropertyEditor {
public EditorDoubleClickActionTypeEditor() {
super();
setAvailableValues(new EditorDoubleClickActionType[] { EditorDoubleClickActionType.ACTIVATE_TRIANGLE_EDIT, EditorDoubleClickActionType.RENDER_FLAME, EditorDoubleClickActionType.SWITCH_TRIANGLE_CAM_EDIT, EditorDoubleClickActionType.NONE });
}
}
public static class FilterKernelTypeEditor extends ComboBoxPropertyEditor {
public FilterKernelTypeEditor() {
super();
setAvailableValues(FilterKernelType.values());
}
}
private LookAndFeelType lookAndFeelType = Tools.OSType.MAC.equals(Tools.getOSType()) ? LookAndFeelType.SYSTEM : LookAndFeelType.NIMBUS;
private String lookAndFeelTheme = "";
@Property(description = "Default number of frames for a movie", category = PropertyCategory.TINA)
private int tinaRenderMovieFrames = 90;
private static int tinaRenderThreads;
@Property(description = "Type of the iteration-raster (less precision needs less memory)", category = PropertyCategory.TINA, editorClass = RasterCreatorEditor.class)
private RasterCreator tinaRasterType = RasterCreator.getDefaultValue();
@Property(description = "Random number generator to use", category = PropertyCategory.TINA, editorClass = RandomGeneratorTypeEditor.class)
private RandomGeneratorType tinaRandomNumberGenerator = RandomGeneratorType.getDefaultValue();
@Property(description = "Quality for realtime rendering (please restart app after changing this)", category = PropertyCategory.TINA)
private double tinaRenderRealtimeQuality = 1.0;
@Property(description = "Number of generated flames by invoking the \"Random flames\" function", category = PropertyCategory.TINA)
private int tinaRandomBatchSize = 24;
@Property(description = "Number of generated movies by invoking the \"Random movies\" function", category = PropertyCategory.TINA)
private int tinaRandomMovieBatchSize = 12;
@Property(description = "Red component of the background color of randomly generated flames", category = PropertyCategory.TINA)
private int tinaRandomBatchBGColorRed = 0;
@Property(description = "Red component of the background color of randomly generated flames", category = PropertyCategory.TINA)
private int tinaRandomBatchBGColorGreen = 0;
@Property(description = "Red component of the background color of randomly generated flames", category = PropertyCategory.TINA)
private int tinaRandomBatchBGColorBlue = 0;
@Property(description = "How to refresh the thumbnail ribbon after creating a new random batch", category = PropertyCategory.TINA, editorClass = RandomBatchRefreshTypeEditor.class)
private RandomBatchRefreshType tinaRandomBatchRefreshType = RandomBatchRefreshType.CLEAR;
@Property(description = "Default background transparency", category = PropertyCategory.TINA)
private boolean tinaDefaultBGTransparency = false;
@Property(description = "Default antialiasing amount (set to zero to turn antialiasing off by default)", category = PropertyCategory.TINA)
private double tinaDefaultAntialiasingAmount = 0.25;
@Property(description = "Default antialiasing radius (set to zero to turn antialiasing off by default)", category = PropertyCategory.TINA)
private double tinaDefaultAntialiasingRadius = 0.5;
@Property(description = "Quality for preview rendering", category = PropertyCategory.TINA)
private int tinaRenderPreviewQuality = 100;
public String getInputScriptPath() {
return lastInputScriptPath != null ? lastInputScriptPath : scriptPath;
}
public String getInputSoundFilePath() {
return lastInputSoundFilePath != null ? lastInputSoundFilePath : soundFilePath;
}
public String getOutputScriptPath() {
return lastOutputScriptPath != null ? lastOutputScriptPath : scriptPath;
}
public String getOutputMovieFlamesPath() {
return lastOutputMovieFlamesPath != null ? lastOutputMovieFlamesPath : movieFlamesPath;
}
public void setScriptPath(String pScriptPath) {
this.scriptPath = pScriptPath;
}
public String getInputImagePath() {
return lastInputImagePath != null ? lastInputImagePath : imagePath;
}
public String getOutputImagePath() {
return lastOutputImagePath != null ? lastOutputImagePath : imagePath;
}
public void setLastInputScriptFile(File pFile) {
lastInputScriptPath = pFile.getParent();
if (imagePath == null || imagePath.length() == 0) {
imagePath = lastInputScriptPath;
}
}
public void setLastInputSoundFile(File pFile) {
lastInputSoundFilePath = pFile.getParent();
if (soundFilePath == null || soundFilePath.length() == 0) {
soundFilePath = lastInputSoundFilePath;
}
}
public void setLastOutputScriptFile(File pFile) {
lastOutputScriptPath = pFile.getParent();
if (scriptPath == null || scriptPath.length() == 0) {
scriptPath = lastOutputScriptPath;
}
}
public void setLastOutputMovieFlamesFile(File pFile) {
lastOutputMovieFlamesPath = pFile.getParent();
if (movieFlamesPath == null || movieFlamesPath.length() == 0) {
movieFlamesPath = lastOutputMovieFlamesPath;
}
}
public void setLastInputImageFile(File pFile) {
lastInputImagePath = pFile.getParent();
if (imagePath == null || imagePath.length() == 0) {
imagePath = lastInputImagePath;
}
}
public void setLastOutputImageFile(File pFile) {
lastOutputImagePath = pFile.getParent();
if (imagePath == null || imagePath.length() == 0) {
imagePath = lastOutputImagePath;
}
}
public String getInputFlamePath() {
return lastInputFlamePath != null ? lastInputFlamePath : tinaFlamePath;
}
public void setLastInputFlameFile(File pFile) {
lastInputFlamePath = pFile.getParent();
if (tinaFlamePath == null || tinaFlamePath.length() == 0) {
tinaFlamePath = lastInputFlamePath;
}
}
public void setLastMeshFile(File pFile) {
lastMeshPath = pFile.getParent();
if (tinaMeshPath == null || tinaMeshPath.length() == 0) {
tinaMeshPath = lastMeshPath;
}
}
public String getOutputFlamePath() {
return lastOutputFlamePath != null ? lastOutputFlamePath : tinaFlamePath;
}
public void setLastOutputFlameFile(File pFile) {
lastOutputFlamePath = pFile.getParent();
if (tinaFlamePath == null || tinaFlamePath.length() == 0) {
tinaFlamePath = lastOutputFlamePath;
}
}
public String getInputJWFMoviePath() {
return lastInputJWFMoviePath != null ? lastInputJWFMoviePath : tinaJWFMoviePath;
}
public void setLastInputJWFMovieFile(File pFile) {
lastInputJWFMoviePath = pFile.getParent();
if (tinaJWFMoviePath == null || tinaJWFMoviePath.length() == 0) {
tinaJWFMoviePath = lastInputJWFMoviePath;
}
}
public String getOutputJWFMoviePath() {
return lastOutputJWFMoviePath != null ? lastOutputJWFMoviePath : tinaJWFMoviePath;
}
public void setLastOutputJWFMovieFile(File pFile) {
lastOutputJWFMoviePath = pFile.getParent();
if (tinaJWFMoviePath == null || tinaJWFMoviePath.length() == 0) {
tinaJWFMoviePath = lastOutputJWFMoviePath;
}
}
public String getTinaJWFScriptPath() {
return tinaJWFScriptPath;
}
public void setTinaJWFScriptPath(String pTinaJWFScriptPath) {
tinaJWFScriptPath = pTinaJWFScriptPath;
}
public String getTinaGradientPath() {
return tinaGradientPath;
}
public void setTinaGradientPath(String pTinaGradientPath) {
tinaGradientPath = pTinaGradientPath;
}
public String getInputSunflowScenePath() {
return lastInputSunflowScenePath != null ? lastInputSunflowScenePath : sunflowScenePath;
}
public void setLastInputSunflowSceneFile(File pFile) {
lastInputSunflowScenePath = pFile.getParent();
if (sunflowScenePath == null || sunflowScenePath.length() == 0) {
sunflowScenePath = lastInputSunflowScenePath;
}
}
public String getOutputSunflowScenePath() {
return lastOutputSunflowScenePath != null ? lastOutputSunflowScenePath : sunflowScenePath;
}
public void setLastOutputSunflowSceneFile(File pFile) {
lastOutputSunflowScenePath = pFile.getParent();
if (sunflowScenePath == null || sunflowScenePath.length() == 0) {
sunflowScenePath = lastOutputSunflowScenePath;
}
}
private void loadFromFile() throws Exception {
new PrefsReader().readPrefs(this);
}
public void saveToFile() throws Exception {
new PrefsWriter().writePrefs(this);
}
public void setImagePath(String imagePath) {
this.imagePath = imagePath;
}
public void setTinaFlamePath(String flamePath) {
this.tinaFlamePath = flamePath;
}
public void setTinaJWFMoviePath(String jwfMoviePath) {
this.tinaJWFMoviePath = jwfMoviePath;
}
public void setSunflowScenePath(String sunflowScenePath) {
this.sunflowScenePath = sunflowScenePath;
}
public String getImagePath() {
return imagePath;
}
public String getTinaFlamePath() {
return tinaFlamePath;
}
public String getTinaJWFMoviePath() {
return tinaJWFMoviePath;
}
public String getSunflowScenePath() {
return sunflowScenePath;
}
public String getScriptPath() {
return scriptPath;
}
public void assign(Prefs pSrc) {
thumbnailPath = pSrc.thumbnailPath;
scriptPath = pSrc.scriptPath;
lastInputScriptPath = pSrc.lastInputScriptPath;
lastOutputScriptPath = pSrc.lastOutputScriptPath;
imagePath = pSrc.imagePath;
lastInputImagePath = pSrc.lastInputImagePath;
lastOutputImagePath = pSrc.lastOutputImagePath;
tinaFlamePath = pSrc.tinaFlamePath;
lastInputFlamePath = pSrc.lastInputFlamePath;
lastOutputFlamePath = pSrc.lastOutputFlamePath;
tinaMeshPath = pSrc.tinaMeshPath;
lastMeshPath = pSrc.lastMeshPath;
tinaJWFMoviePath = pSrc.tinaJWFMoviePath;
lastInputJWFMoviePath = pSrc.lastInputJWFMoviePath;
lastOutputJWFMoviePath = pSrc.lastOutputJWFMoviePath;
sunflowScenePath = pSrc.sunflowScenePath;
lastInputSunflowScenePath = pSrc.lastInputSunflowScenePath;
lastOutputSunflowScenePath = pSrc.lastOutputSunflowScenePath;
soundFilePath = pSrc.soundFilePath;
lastInputSoundFilePath = pSrc.lastInputSoundFilePath;
movieFlamesPath = pSrc.movieFlamesPath;
lastOutputMovieFlamesPath = pSrc.lastOutputMovieFlamesPath;
lookAndFeelType = pSrc.lookAndFeelType;
lookAndFeelTheme = pSrc.lookAndFeelTheme;
developmentMode = pSrc.developmentMode;
tinaRandomNumberGenerator = pSrc.tinaRandomNumberGenerator;
tinaPreserveFreeCPUs = pSrc.tinaPreserveFreeCPUs;
tinaDisableWikimediaCommonsWarning = pSrc.tinaDisableWikimediaCommonsWarning;
tinaEditorControlsWithColor = pSrc.tinaEditorControlsWithColor;
tinaEditorControlsWithAntialiasing = pSrc.tinaEditorControlsWithAntialiasing;
tinaEditorControlsWithShadows = pSrc.tinaEditorControlsWithShadows;
tinaEditorControlsStyle = pSrc.tinaEditorControlsStyle;
tinaEditorControlsWithNumbers = pSrc.tinaEditorControlsWithNumbers;
tinaEditorGridSize = pSrc.tinaEditorGridSize;
tinaRandGenColorMapImagePath = pSrc.tinaRandGenColorMapImagePath;
tinaDefaultAntialiasingAmount = pSrc.tinaDefaultAntialiasingAmount;
tinaDefaultAntialiasingRadius = pSrc.tinaDefaultAntialiasingRadius;
tinaRenderMovieFrames = pSrc.tinaRenderMovieFrames;
tinaRenderPreviewQuality = pSrc.tinaRenderPreviewQuality;
tinaRenderRealtimeQuality = pSrc.tinaRenderRealtimeQuality;
tinaRandomBatchSize = pSrc.tinaRandomBatchSize;
tinaRandomMovieBatchSize = pSrc.tinaRandomMovieBatchSize;
tinaRandomBatchBGColorRed = pSrc.tinaRandomBatchBGColorRed;
tinaRandomBatchBGColorGreen = pSrc.tinaRandomBatchBGColorGreen;
tinaRandomBatchBGColorBlue = pSrc.tinaRandomBatchBGColorBlue;
tinaRandomBatchRefreshType = pSrc.tinaRandomBatchRefreshType;
tinaAssociateProfilesWithFlames = pSrc.tinaAssociateProfilesWithFlames;
tinaSaveFlamesWhenImageIsSaved = pSrc.tinaSaveFlamesWhenImageIsSaved;
tinaSaveHDRInIR = pSrc.tinaSaveHDRInIR;
tinaAutoloadSavedImagesInIR = pSrc.tinaAutoloadSavedImagesInIR;
tinaDefaultBGTransparency = pSrc.tinaDefaultBGTransparency;
tinaRasterType = pSrc.tinaRasterType;
tinaJWFScriptPath = pSrc.tinaJWFScriptPath;
tinaCustomVariationsPath = pSrc.tinaCustomVariationsPath;
tinaGradientPath = pSrc.tinaGradientPath;
tinaSVGPath = pSrc.tinaSVGPath;
baseMathLibType = pSrc.baseMathLibType;
tinaOptimizedRenderingIR = pSrc.tinaOptimizedRenderingIR;
tinaMacroButtonsVertical = pSrc.tinaMacroButtonsVertical;
tinaMacroToolbarHeight = pSrc.tinaMacroToolbarHeight;
tinaFreeCacheInBatchRenderer = pSrc.tinaFreeCacheInBatchRenderer;
tinaRandGenDualityPreferedVariation = pSrc.tinaRandGenDualityPreferedVariation;
tinaRandGenDualityPreferedVariationProbability1 = pSrc.tinaRandGenDualityPreferedVariationProbability1;
tinaRandGenDualityPreferedVariationProbability2 = pSrc.tinaRandGenDualityPreferedVariationProbability2;
tinaEditorGuidesCenterPointColor = new Color(pSrc.tinaEditorGuidesCenterPointColor.getRed(), pSrc.tinaEditorGuidesCenterPointColor.getGreen(), pSrc.tinaEditorGuidesCenterPointColor.getBlue());
tinaEditorGuidesRuleOfThirdsColor = new Color(pSrc.tinaEditorGuidesRuleOfThirdsColor.getRed(), pSrc.tinaEditorGuidesRuleOfThirdsColor.getGreen(), pSrc.tinaEditorGuidesRuleOfThirdsColor.getBlue());
tinaEditorGuidesGoldenRatioColor = new Color(pSrc.tinaEditorGuidesGoldenRatioColor.getRed(), pSrc.tinaEditorGuidesGoldenRatioColor.getGreen(), pSrc.tinaEditorGuidesGoldenRatioColor.getBlue());
tinaEditorGuidesLineWidth = pSrc.tinaEditorGuidesLineWidth;
tinaMutaGenMutationTypesUser1 = pSrc.tinaMutaGenMutationTypesUser1;
tinaMutaGenMutationTypesUser2 = pSrc.tinaMutaGenMutationTypesUser2;
tinaMutaGenMutationTypesUser3 = pSrc.tinaMutaGenMutationTypesUser3;
tinaMutaGenMutationTypeHoriz1 = pSrc.tinaMutaGenMutationTypeHoriz1;
tinaMutaGenMutationTypeHoriz2 = pSrc.tinaMutaGenMutationTypeHoriz2;
tinaMutaGenMutationTypeVert1 = pSrc.tinaMutaGenMutationTypeVert1;
tinaMutaGenMutationTypeVert2 = pSrc.tinaMutaGenMutationTypeVert2;
tinaDefaultFadeToWhiteLevel = pSrc.tinaDefaultFadeToWhiteLevel;
tinaEditorDoubleClickAction = pSrc.tinaEditorDoubleClickAction;
tinaDefaultFPS = pSrc.tinaDefaultFPS;
tinaRawMotionDataPath = pSrc.tinaRawMotionDataPath;
tinaDefaultSpatialOversampling = pSrc.tinaDefaultSpatialOversampling;
tinaDefaultSpatialFilterKernel = pSrc.tinaDefaultSpatialFilterKernel;
tinaDefaultSpatialFilterRadius = pSrc.tinaDefaultSpatialFilterRadius;
tinaDefaultFilterVisualisationFlat = pSrc.tinaDefaultFilterVisualisationFlat;
tinaDefaultForegroundOpacity = pSrc.tinaDefaultForegroundOpacity;
tinaDefaultPostNoiseFilter = pSrc.tinaDefaultPostNoiseFilter;
tinaDefaultPostNoiseFilterThreshold = pSrc.tinaDefaultPostNoiseFilterThreshold;
tinaAdvancedCodeEditor = pSrc.tinaAdvancedCodeEditor;
tinaAdvancedCodeEditorColorFix = pSrc.tinaAdvancedCodeEditorColorFix;
tinaAdvancedCodeEditorFontSize = pSrc.tinaAdvancedCodeEditorFontSize;
tinaEditorProgressivePreview = pSrc.tinaEditorProgressivePreview;
tinaEditorProgressivePreviewMaxRenderTime = pSrc.tinaEditorProgressivePreviewMaxRenderTime;
tinaEditorProgressivePreviewMaxRenderQuality = pSrc.tinaEditorProgressivePreviewMaxRenderQuality;
tinaFontScale = pSrc.tinaFontScale;
desktopBackgroundImagePath = pSrc.desktopBackgroundImagePath;
desktopBackgroundDarkenAmount = pSrc.desktopBackgroundDarkenAmount;
showTipsAtStartup = pSrc.showTipsAtStartup;
tinaDisableSolidFlameRandGens = pSrc.tinaDisableSolidFlameRandGens;
tinaDefaultExpandNonlinearParams = pSrc.tinaDefaultExpandNonlinearParams;
tinaFACLRenderPath = pSrc.tinaFACLRenderPath;
tinaFACLRenderOptions = pSrc.tinaFACLRenderOptions;
resolutionProfiles.clear();
for (ResolutionProfile profile : pSrc.resolutionProfiles) {
resolutionProfiles.add((ResolutionProfile) profile.makeCopy());
}
qualityProfiles.clear();
for (QualityProfile profile : pSrc.qualityProfiles) {
qualityProfiles.add((QualityProfile) profile.makeCopy());
}
windowPrefs.clear();
for (WindowPrefs prefs : pSrc.windowPrefs) {
windowPrefs.add((WindowPrefs) prefs.makeCopy());
}
createTinaDefaultMacroButtons = pSrc.createTinaDefaultMacroButtons;
tinaMacroToolbarWidth = pSrc.tinaMacroToolbarWidth;
tinaMacroButtons.clear();
for (MacroButton macroButton : pSrc.tinaMacroButtons) {
tinaMacroButtons.add((MacroButton) macroButton.makeCopy());
}
iflamesFlameLibraryPath = pSrc.iflamesFlameLibraryPath;
iflamesImageLibraryPath = pSrc.iflamesImageLibraryPath;
iflamesLoadLibraryAtStartup = pSrc.iflamesLoadLibraryAtStartup;
}
public int getTinaRenderThreads() {
int numThreads = tinaRenderThreads - tinaPreserveFreeCPUs;
return numThreads > 1 ? numThreads : 1;
}
public int getTinaRenderPreviewQuality() {
return tinaRenderPreviewQuality;
}
public void setTinaRenderPreviewQuality(int tinaRenderPreviewQuality) {
this.tinaRenderPreviewQuality = tinaRenderPreviewQuality;
}
public int getTinaRenderMovieFrames() {
return tinaRenderMovieFrames;
}
public void setTinaRenderMovieFrames(int tinaRenderMovieFrames) {
this.tinaRenderMovieFrames = tinaRenderMovieFrames;
}
public double getTinaRenderRealtimeQuality() {
return tinaRenderRealtimeQuality;
}
public void setTinaRenderRealtimeQuality(double tinaRenderRealtimeQuality) {
this.tinaRenderRealtimeQuality = tinaRenderRealtimeQuality;
}
public int getTinaRandomBatchSize() {
return tinaRandomBatchSize;
}
public void setTinaRandomBatchSize(int tinaRandomBatchSize) {
this.tinaRandomBatchSize = tinaRandomBatchSize;
}
public int getTinaRandomBatchBGColorRed() {
return tinaRandomBatchBGColorRed;
}
public void setTinaRandomBatchBGColorRed(int tinaRandomBatchBGColorRed) {
this.tinaRandomBatchBGColorRed = tinaRandomBatchBGColorRed;
}
public int getTinaRandomBatchBGColorGreen() {
return tinaRandomBatchBGColorGreen;
}
public void setTinaRandomBatchBGColorGreen(int tinaRandomBatchBGColorGreen) {
this.tinaRandomBatchBGColorGreen = tinaRandomBatchBGColorGreen;
}
public int getTinaRandomBatchBGColorBlue() {
return tinaRandomBatchBGColorBlue;
}
public void setTinaRandomBatchBGColorBlue(int tinaRandomBatchBGColorBlue) {
this.tinaRandomBatchBGColorBlue = tinaRandomBatchBGColorBlue;
}
static {
tinaRenderThreads = Runtime.getRuntime().availableProcessors();
if (tinaRenderThreads < 1) {
tinaRenderThreads = 1;
}
}
public List<QualityProfile> getQualityProfiles() {
return qualityProfiles;
}
public List<ResolutionProfile> getResolutionProfiles() {
return resolutionProfiles;
}
public String getSoundFilePath() {
return soundFilePath;
}
public void setSoundFilePath(String soundFilePath) {
this.soundFilePath = soundFilePath;
}
public String getMovieFlamesPath() {
return movieFlamesPath;
}
public void setMovieFlamesPath(String movieFlamesPath) {
this.movieFlamesPath = movieFlamesPath;
}
public boolean isTinaAssociateProfilesWithFlames() {
return tinaAssociateProfilesWithFlames;
}
public void setTinaAssociateProfilesWithFlames(boolean tinaAssociateProfilesWithFlames) {
this.tinaAssociateProfilesWithFlames = tinaAssociateProfilesWithFlames;
}
public WindowPrefs getWindowPrefs(String pName) {
for (WindowPrefs prefs : windowPrefs) {
if (prefs.getName().equals(pName)) {
return prefs;
}
}
return null;
}
private Prefs() {
windowPrefs.add(new WindowPrefs(WindowPrefs.WINDOW_DESKTOP));
windowPrefs.add(new WindowPrefs(WindowPrefs.WINDOW_TINA));
windowPrefs.add(new WindowPrefs(WindowPrefs.WINDOW_NAVIGATOR));
windowPrefs.add(new WindowPrefs(WindowPrefs.WINDOW_TINA_PREVIEW));
windowPrefs.add(new WindowPrefs(WindowPrefs.WINDOW_FORMULAEXPLORER));
windowPrefs.add(new WindowPrefs(WindowPrefs.WINDOW_IFLAMES));
windowPrefs.add(new WindowPrefs(WindowPrefs.WINDOW_IMAGEPROCESSING));
windowPrefs.add(new WindowPrefs(WindowPrefs.WINDOW_FLAMEBROWSER));
windowPrefs.add(new WindowPrefs(WindowPrefs.WINDOW_EASYMOVIEMAKER));
windowPrefs.add(new WindowPrefs(WindowPrefs.WINDOW_DANCINGFLAMES));
windowPrefs.add(new WindowPrefs(WindowPrefs.WINDOW_MUTAGEN));
windowPrefs.add(new WindowPrefs(WindowPrefs.WINDOW_HELP));
windowPrefs.add(new WindowPrefs(WindowPrefs.WINDOW_INTERACTIVERENDERER));
windowPrefs.add(new WindowPrefs(WindowPrefs.WINDOW_MESHGEN));
windowPrefs.add(new WindowPrefs(WindowPrefs.WINDOW_BATCHFLAMERENDERER));
windowPrefs.add(new WindowPrefs(WindowPrefs.WINDOW_PREFERENCES));
windowPrefs.add(new WindowPrefs(WindowPrefs.WINDOW_SYSTEMINFO));
windowPrefs.add(new WindowPrefs(WindowPrefs.WINDOW_WELCOME));
windowPrefs.add(new WindowPrefs(WindowPrefs.WINDOW_TIPOFTHEDAY));
windowPrefs.add(new WindowPrefs(WindowPrefs.WINDOW_LOOKANDFEEL));
windowPrefs.add(new WindowPrefs(WindowPrefs.WINDOW_FLAMES_GPU));
windowPrefs.add(new WindowPrefs(WindowPrefs.WINDOW_LIST_OF_CHANGES));
windowPrefs.add(new WindowPrefs(WindowPrefs.WINDOW_GPU_RENDERING));
}
protected List<WindowPrefs> getWindowPrefs() {
return windowPrefs;
}
public boolean isDevelopmentMode() {
return developmentMode;
}
public void setDevelopmentMode(boolean developmentMode) {
this.developmentMode = developmentMode;
}
public boolean isTinaDefaultBGTransparency() {
return tinaDefaultBGTransparency;
}
public void setTinaDefaultBGTransparency(boolean tinaDefaultBGTransparency) {
this.tinaDefaultBGTransparency = tinaDefaultBGTransparency;
}
public RandomGeneratorType getTinaRandomNumberGenerator() {
return tinaRandomNumberGenerator;
}
public void setTinaRandomNumberGenerator(RandomGeneratorType pTinaRandomNumberGenerator) {
tinaRandomNumberGenerator = pTinaRandomNumberGenerator;
}
public BaseMathLibType getBaseMathLibType() {
return baseMathLibType;
}
public void setBaseMathLibType(BaseMathLibType baseMathLibType) {
MathLib.setBaseMathLibType(baseMathLibType);
this.baseMathLibType = baseMathLibType;
}
public RandomBatchRefreshType getTinaRandomBatchRefreshType() {
return tinaRandomBatchRefreshType;
}
public void setTinaRandomBatchRefreshType(RandomBatchRefreshType tinaRandomBatchRefreshType) {
this.tinaRandomBatchRefreshType = tinaRandomBatchRefreshType;
}
public String getTinaSVGPath() {
return tinaSVGPath;
}
public void setTinaSVGPath(String tinaSVGPath) {
this.tinaSVGPath = tinaSVGPath;
}
public boolean isTinaSaveHDRInIR() {
return tinaSaveHDRInIR;
}
public void setTinaSaveHDRInIR(boolean tinaSaveHDRInIR) {
this.tinaSaveHDRInIR = tinaSaveHDRInIR;
}
public boolean isTinaSaveFlamesWhenImageIsSaved() {
return tinaSaveFlamesWhenImageIsSaved;
}
public void setTinaSaveFlamesWhenImageIsSaved(boolean tinaSaveFlamesWhenImageIsSaved) {
this.tinaSaveFlamesWhenImageIsSaved = tinaSaveFlamesWhenImageIsSaved;
}
public int getTinaPreserveFreeCPUs() {
return tinaPreserveFreeCPUs;
}
public void setTinaPreserveFreeCPUs(int tinaPreserveFreeCPUs) {
this.tinaPreserveFreeCPUs = tinaPreserveFreeCPUs;
}
public boolean isTinaDisableWikimediaCommonsWarning() {
return tinaDisableWikimediaCommonsWarning;
}
public void setTinaDisableWikimediaCommonsWarning(boolean tinaDisableWikimediaCommonsWarning) {
this.tinaDisableWikimediaCommonsWarning = tinaDisableWikimediaCommonsWarning;
}
public int getTinaRandomMovieBatchSize() {
return tinaRandomMovieBatchSize;
}
public void setTinaRandomMovieBatchSize(int pTinaRandomMovieBatchSize) {
tinaRandomMovieBatchSize = pTinaRandomMovieBatchSize;
}
public LookAndFeelType getLookAndFeelType() {
return lookAndFeelType;
}
public void setLookAndFeelType(LookAndFeelType pLookAndFeelType) {
lookAndFeelType = pLookAndFeelType;
}
public String getLookAndFeelTheme() {
return lookAndFeelTheme;
}
public void setLookAndFeelTheme(String pLookAndFeelTheme) {
lookAndFeelTheme = pLookAndFeelTheme;
}
public double getTinaEditorGridSize() {
return tinaEditorGridSize;
}
public void setTinaEditorGridSize(double pTinaEditorGridSize) {
tinaEditorGridSize = pTinaEditorGridSize;
}
public boolean isTinaEditorControlsWithShadows() {
return tinaEditorControlsWithShadows;
}
public void setTinaEditorControlsWithShadows(boolean pTinaEditorControlsWithShadows) {
tinaEditorControlsWithShadows = pTinaEditorControlsWithShadows;
}
public boolean isTinaEditorControlsWithColor() {
return tinaEditorControlsWithColor;
}
public void setTinaEditorControlsWithColor(boolean pTinaEditorControlsWithColor) {
tinaEditorControlsWithColor = pTinaEditorControlsWithColor;
}
public boolean isTinaEditorControlsWithAntialiasing() {
return tinaEditorControlsWithAntialiasing;
}
public void setTinaEditorControlsWithAntialiasing(boolean pTinaEditorControlsWithAntialiasing) {
tinaEditorControlsWithAntialiasing = pTinaEditorControlsWithAntialiasing;
}
public boolean isTinaEditorControlsWithNumbers() {
return tinaEditorControlsWithNumbers;
}
public void setTinaEditorControlsWithNumbers(boolean pTinaEditorControlsWithNumbers) {
tinaEditorControlsWithNumbers = pTinaEditorControlsWithNumbers;
}
public String getTinaRandGenColorMapImagePath() {
return tinaRandGenColorMapImagePath;
}
public void setTinaRandGenColorMapImagePath(String pTinaRandGenColorMapImagePath) {
tinaRandGenColorMapImagePath = pTinaRandGenColorMapImagePath;
}
private static Prefs prefs;
public static Prefs getPrefs() {
if (prefs == null) {
Prefs p = new Prefs();
try {
p.loadFromFile();
}
catch (Exception ex) {
ex.printStackTrace();
}
prefs = p;
}
return prefs;
}
public FlamePanelControlStyle getTinaEditorControlsStyle() {
return tinaEditorControlsStyle;
}
public void setTinaEditorControlsStyle(FlamePanelControlStyle pTinaEditorControlsStyle) {
tinaEditorControlsStyle = pTinaEditorControlsStyle;
}
public String getTinaMeshPath() {
return tinaMeshPath;
}
public void setTinaMeshPath(String pTinaMeshPath) {
tinaMeshPath = pTinaMeshPath;
}
public boolean isTinaOptimizedRenderingIR() {
return tinaOptimizedRenderingIR;
}
public void setTinaOptimizedRenderingIR(boolean pTinaOptimizedRenderingIR) {
tinaOptimizedRenderingIR = pTinaOptimizedRenderingIR;
}
public static Prefs newInstance() {
return new Prefs();
}
public Color getTinaEditorGuidesCenterPointColor() {
return tinaEditorGuidesCenterPointColor;
}
public void setTinaEditorGuidesCenterPointColor(Color pTinaEditorGuidesCenterPointColor) {
tinaEditorGuidesCenterPointColor = pTinaEditorGuidesCenterPointColor;
}
public Color getTinaEditorGuidesRuleOfThirdsColor() {
return tinaEditorGuidesRuleOfThirdsColor;
}
public void setTinaEditorGuidesRuleOfThirdsColor(Color pTinaEditorGuidesRuleOfThirdsColor) {
tinaEditorGuidesRuleOfThirdsColor = pTinaEditorGuidesRuleOfThirdsColor;
}
public Color getTinaEditorGuidesGoldenRatioColor() {
return tinaEditorGuidesGoldenRatioColor;
}
public void setTinaEditorGuidesGoldenRatioColor(Color pTinaEditorGuidesGoldenRatioColor) {
tinaEditorGuidesGoldenRatioColor = pTinaEditorGuidesGoldenRatioColor;
}
public double getTinaEditorGuidesLineWidth() {
return tinaEditorGuidesLineWidth;
}
public void setTinaEditorGuidesLineWidth(double pTinaEditorGuidesLineWidth) {
tinaEditorGuidesLineWidth = pTinaEditorGuidesLineWidth;
}
public List<MacroButton> getTinaMacroButtons() {
return tinaMacroButtons;
}
public boolean isCreateTinaDefaultMacroButtons() {
return createTinaDefaultMacroButtons;
}
public void setCreateTinaDefaultMacroButtons(boolean createTinaDefaultMacroButtons) {
this.createTinaDefaultMacroButtons = createTinaDefaultMacroButtons;
}
public int getTinaMacroToolbarWidth() {
return tinaMacroToolbarWidth;
}
public void setTinaMacroToolbarWidth(int tinaMacroToolbarWidth) {
this.tinaMacroToolbarWidth = tinaMacroToolbarWidth;
if (this.tinaMacroToolbarWidth < 16)
this.tinaMacroToolbarWidth = 16;
}
public boolean isTinaMacroButtonsVertical() {
return tinaMacroButtonsVertical;
}
public void setTinaMacroButtonsVertical(boolean tinaMacroButtonsVertical) {
this.tinaMacroButtonsVertical = tinaMacroButtonsVertical;
}
public int getTinaMacroToolbarHeight() {
return tinaMacroToolbarHeight;
}
public void setTinaMacroToolbarHeight(int tinaMacroToolbarHeight) {
this.tinaMacroToolbarHeight = tinaMacroToolbarHeight;
}
private boolean hasCheckedExperimentalMode = false;
private boolean allowExperimentalFeatures = false;
public boolean isAllowExperimentalFeatures() {
if (!hasCheckedExperimentalMode) {
hasCheckedExperimentalMode = true;
try {
String username = System.getProperty("user.name");
String host = InetAddress.getLocalHost().getHostName();
allowExperimentalFeatures = username.toLowerCase().contains("thargor") && host.toLowerCase().contains("thargor") && isDevelopmentMode();
}
catch (Throwable ex) {
ex.printStackTrace();
}
}
return allowExperimentalFeatures;
}
public String getTinaRandGenDualityPreferedVariation() {
return tinaRandGenDualityPreferedVariation;
}
public void setTinaRandGenDualityPreferedVariation(String pTinaRandGenDualityPreferedVariation) {
tinaRandGenDualityPreferedVariation = pTinaRandGenDualityPreferedVariation;
}
public double getTinaRandGenDualityPreferedVariationProbability1() {
return tinaRandGenDualityPreferedVariationProbability1;
}
public void setTinaRandGenDualityPreferedVariationProbability1(double pTinaRandGenDualityPreferedVariationProbability1) {
tinaRandGenDualityPreferedVariationProbability1 = pTinaRandGenDualityPreferedVariationProbability1;
}
public double getTinaRandGenDualityPreferedVariationProbability2() {
return tinaRandGenDualityPreferedVariationProbability2;
}
public void setTinaRandGenDualityPreferedVariationProbability2(double pTinaRandGenDualityPreferedVariationProbability2) {
tinaRandGenDualityPreferedVariationProbability2 = pTinaRandGenDualityPreferedVariationProbability2;
}
public String getTinaMutaGenMutationTypesUser1() {
return tinaMutaGenMutationTypesUser1;
}
public void setTinaMutaGenMutationTypesUser1(String pTinaMutaGenMutationTypesUser1) {
tinaMutaGenMutationTypesUser1 = pTinaMutaGenMutationTypesUser1;
}
public String getTinaMutaGenMutationTypesUser2() {
return tinaMutaGenMutationTypesUser2;
}
public void setTinaMutaGenMutationTypesUser2(String pTinaMutaGenMutationTypesUser2) {
tinaMutaGenMutationTypesUser2 = pTinaMutaGenMutationTypesUser2;
}
public String getTinaMutaGenMutationTypesUser3() {
return tinaMutaGenMutationTypesUser3;
}
public void setTinaMutaGenMutationTypesUser3(String pTinaMutaGenMutationTypesUser3) {
tinaMutaGenMutationTypesUser3 = pTinaMutaGenMutationTypesUser3;
}
public String getTinaMutaGenMutationTypeHoriz1() {
return tinaMutaGenMutationTypeHoriz1;
}
public void setTinaMutaGenMutationTypeHoriz1(String pTinaMutaGenMutationTypeHoriz1) {
tinaMutaGenMutationTypeHoriz1 = pTinaMutaGenMutationTypeHoriz1;
}
public String getTinaMutaGenMutationTypeHoriz2() {
return tinaMutaGenMutationTypeHoriz2;
}
public void setTinaMutaGenMutationTypeHoriz2(String pTinaMutaGenMutationTypeHoriz2) {
tinaMutaGenMutationTypeHoriz2 = pTinaMutaGenMutationTypeHoriz2;
}
public String getTinaMutaGenMutationTypeVert1() {
return tinaMutaGenMutationTypeVert1;
}
public void setTinaMutaGenMutationTypeVert1(String pTinaMutaGenMutationTypeVert1) {
tinaMutaGenMutationTypeVert1 = pTinaMutaGenMutationTypeVert1;
}
public String getTinaMutaGenMutationTypeVert2() {
return tinaMutaGenMutationTypeVert2;
}
public void setTinaMutaGenMutationTypeVert2(String pTinaMutaGenMutationTypeVert2) {
tinaMutaGenMutationTypeVert2 = pTinaMutaGenMutationTypeVert2;
}
public String getIflamesFlameLibraryPath() {
return iflamesFlameLibraryPath;
}
public void setIflamesFlameLibraryPath(String pIflamesFlameLibraryPath) {
iflamesFlameLibraryPath = pIflamesFlameLibraryPath;
}
public String getIflamesImageLibraryPath() {
return iflamesImageLibraryPath;
}
public void setIflamesImageLibraryPath(String pIflamesImageLibraryPath) {
iflamesImageLibraryPath = pIflamesImageLibraryPath;
}
public boolean isIflamesLoadLibraryAtStartup() {
return iflamesLoadLibraryAtStartup;
}
public void setIflamesLoadLibraryAtStartup(boolean pIflamesLoadLibraryAtStartup) {
iflamesLoadLibraryAtStartup = pIflamesLoadLibraryAtStartup;
}
public String getThumbnailPath() {
return thumbnailPath;
}
public void setThumbnailPath(String pThumbnailPath) {
thumbnailPath = pThumbnailPath;
}
public boolean isTinaFreeCacheInBatchRenderer() {
return tinaFreeCacheInBatchRenderer;
}
public void setTinaFreeCacheInBatchRenderer(boolean pTinaFreeCacheInBatchRenderer) {
tinaFreeCacheInBatchRenderer = pTinaFreeCacheInBatchRenderer;
}
public EditorDoubleClickActionType getTinaEditorDoubleClickAction() {
return tinaEditorDoubleClickAction;
}
public void setTinaEditorDoubleClickAction(EditorDoubleClickActionType pTinaEditorDoubleClickAction) {
tinaEditorDoubleClickAction = pTinaEditorDoubleClickAction;
}
public double getTinaDefaultFadeToWhiteLevel() {
return tinaDefaultFadeToWhiteLevel;
}
public void setTinaDefaultFadeToWhiteLevel(double pTinaDefaultFadeToWhiteLevel) {
tinaDefaultFadeToWhiteLevel = pTinaDefaultFadeToWhiteLevel;
}
public int getTinaDefaultFPS() {
return tinaDefaultFPS;
}
public void setTinaDefaultFPS(int pTinaDefaultFPS) {
tinaDefaultFPS = pTinaDefaultFPS;
}
public String getTinaRawMotionDataPath() {
return tinaRawMotionDataPath;
}
public void setTinaRawMotionDataPath(String pTinaRawMotionDataPath) {
tinaRawMotionDataPath = pTinaRawMotionDataPath;
}
public int getTinaDefaultSpatialOversampling() {
return tinaDefaultSpatialOversampling;
}
public void setTinaDefaultSpatialOversampling(int pTinaDefaultSpatialOversampling) {
tinaDefaultSpatialOversampling = pTinaDefaultSpatialOversampling;
if (tinaDefaultSpatialOversampling < 1) {
tinaDefaultSpatialOversampling = 1;
}
else if (tinaDefaultSpatialOversampling > Tools.MAX_SPATIAL_OVERSAMPLING) {
tinaDefaultSpatialOversampling = Tools.MAX_SPATIAL_OVERSAMPLING;
}
}
public FilterKernelType getTinaDefaultSpatialFilterKernel() {
return tinaDefaultSpatialFilterKernel;
}
public void setTinaDefaultSpatialFilterKernel(FilterKernelType pTinaDefaultSpatialFilterKernel) {
tinaDefaultSpatialFilterKernel = pTinaDefaultSpatialFilterKernel;
}
public double getTinaDefaultSpatialFilterRadius() {
return tinaDefaultSpatialFilterRadius;
}
public void setTinaDefaultSpatialFilterRadius(double pTinaDefaultSpatialFilterRadius) {
tinaDefaultSpatialFilterRadius = pTinaDefaultSpatialFilterRadius;
}
public boolean isTinaDefaultFilterVisualisationFlat() {
return tinaDefaultFilterVisualisationFlat;
}
public void setTinaDefaultFilterVisualisationFlat(boolean pTinaDefaultFilterVisualisationFlat) {
tinaDefaultFilterVisualisationFlat = pTinaDefaultFilterVisualisationFlat;
}
public boolean isTinaDefaultPostNoiseFilter() {
return tinaDefaultPostNoiseFilter;
}
public void setTinaDefaultPostNoiseFilter(boolean pTinaDefaultPostNoiseFilter) {
tinaDefaultPostNoiseFilter = pTinaDefaultPostNoiseFilter;
}
public double getTinaDefaultPostNoiseFilterThreshold() {
return tinaDefaultPostNoiseFilterThreshold;
}
public void setTinaDefaultPostNoiseFilterThreshold(double pTinaDefaultPostNoiseFilterThreshold) {
tinaDefaultPostNoiseFilterThreshold = pTinaDefaultPostNoiseFilterThreshold;
}
public double getTinaDefaultForegroundOpacity() {
return tinaDefaultForegroundOpacity;
}
public void setTinaDefaultForegroundOpacity(double pTinaDefaultForegroundOpacity) {
tinaDefaultForegroundOpacity = pTinaDefaultForegroundOpacity;
}
public RasterCreator getTinaRasterType() {
return tinaRasterType;
}
public void setTinaRasterType(RasterCreator pTinaRasterType) {
tinaRasterType = pTinaRasterType;
}
public double getTinaDefaultAntialiasingAmount() {
return tinaDefaultAntialiasingAmount;
}
public void setTinaDefaultAntialiasingAmount(double pTinaDefaultAntialiasingAmount) {
tinaDefaultAntialiasingAmount = pTinaDefaultAntialiasingAmount;
}
public double getTinaDefaultAntialiasingRadius() {
return tinaDefaultAntialiasingRadius;
}
public void setTinaDefaultAntialiasingRadius(double pTinaDefaultAntialiasingRadius) {
tinaDefaultAntialiasingRadius = pTinaDefaultAntialiasingRadius;
}
public boolean isTinaAdvancedCodeEditor() {
return tinaAdvancedCodeEditor;
}
public void setTinaAdvancedCodeEditor(boolean pTinaAdvancedCodeEditor) {
tinaAdvancedCodeEditor = pTinaAdvancedCodeEditor;
}
public boolean isTinaAdvancedCodeEditorColorFix() {
return tinaAdvancedCodeEditorColorFix;
}
public void setTinaAdvancedCodeEditorColorFix(boolean pTinaAdvancedCodeEditorColorFix) {
tinaAdvancedCodeEditorColorFix = pTinaAdvancedCodeEditorColorFix;
}
public int getTinaAdvancedCodeEditorFontSize() {
return tinaAdvancedCodeEditorFontSize;
}
public void setTinaAdvancedCodeEditorFontSize(int font_size) {
if (font_size <= 0) {
font_size = 10;
}
tinaAdvancedCodeEditorFontSize = font_size;
}
public boolean isTinaEditorProgressivePreview() {
return tinaEditorProgressivePreview;
}
public void setTinaEditorProgressivePreview(boolean pTinaEditorProgressivePreview) {
tinaEditorProgressivePreview = pTinaEditorProgressivePreview;
}
public double getTinaEditorProgressivePreviewMaxRenderTime() {
return tinaEditorProgressivePreviewMaxRenderTime;
}
public void setTinaEditorProgressivePreviewMaxRenderTime(double pTinaEditorProgressivePreviewMaxRenderTime) {
tinaEditorProgressivePreviewMaxRenderTime = pTinaEditorProgressivePreviewMaxRenderTime;
}
public double getTinaEditorProgressivePreviewMaxRenderQuality() {
return tinaEditorProgressivePreviewMaxRenderQuality;
}
public void setTinaEditorProgressivePreviewMaxRenderQuality(double pTinaEditorProgressivePreviewMaxRenderQuality) {
tinaEditorProgressivePreviewMaxRenderQuality = pTinaEditorProgressivePreviewMaxRenderQuality;
}
public String getTinaCustomVariationsPath() {
return tinaCustomVariationsPath;
}
public void setTinaCustomVariationsPath(String pTinaCustomVariationsPath) {
tinaCustomVariationsPath = pTinaCustomVariationsPath;
}
public Font getFont(String pName, int pStyle, int pSize) {
int scaledSize = (int) (pSize * tinaFontScale);
if (scaledSize < 8) {
scaledSize = 8;
}
else if (scaledSize > 64) {
scaledSize = 64;
}
return new Font(pName, pStyle, scaledSize);
}
public double getTinaFontScale() {
return tinaFontScale;
}
public void setTinaFontScale(double pTinaFontScale) {
tinaFontScale = pTinaFontScale;
}
public String getDesktopBackgroundImagePath() {
return desktopBackgroundImagePath;
}
public void setDesktopBackgroundImagePath(String desktopBackgroundImagePath) {
this.desktopBackgroundImagePath = desktopBackgroundImagePath;
}
public double getDesktopBackgroundDarkenAmount() {
return desktopBackgroundDarkenAmount;
}
public void setDesktopBackgroundDarkenAmount(double desktopBackgroundDarkenAmount) {
this.desktopBackgroundDarkenAmount = desktopBackgroundDarkenAmount;
}
public boolean isShowTipsAtStartup() {
return showTipsAtStartup;
}
public void setShowTipsAtStartup(boolean showTipsAtStartup) {
this.showTipsAtStartup = showTipsAtStartup;
}
public boolean isTinaDisableSolidFlameRandGens() {
return tinaDisableSolidFlameRandGens;
}
public void setTinaDisableSolidFlameRandGens(boolean tinaDisableSolidFlameRandGens) {
this.tinaDisableSolidFlameRandGens = tinaDisableSolidFlameRandGens;
}
public boolean isTinaAutoloadSavedImagesInIR() {
return tinaAutoloadSavedImagesInIR;
}
public void setTinaAutoloadSavedImagesInIR(boolean tinaAutoloadSavedImagesInIR) {
this.tinaAutoloadSavedImagesInIR = tinaAutoloadSavedImagesInIR;
}
public boolean isTinaDefaultExpandNonlinearParams() {
return tinaDefaultExpandNonlinearParams;
}
public void setTinaDefaultExpandNonlinearParams(boolean tinaDefaultExpandNonlinearParams) {
this.tinaDefaultExpandNonlinearParams = tinaDefaultExpandNonlinearParams;
}
public String getTinaFACLRenderPath() {
return tinaFACLRenderPath;
}
public void setTinaFACLRenderPath(String tinaFACLRenderPath) {
this.tinaFACLRenderPath = tinaFACLRenderPath;
}
public String getTinaFACLRenderOptions() {
return tinaFACLRenderOptions;
}
public void setTinaFACLRenderOptions(String pTinaFACLRenderOptions) {
tinaFACLRenderOptions = pTinaFACLRenderOptions;
}
}