diff --git a/common/lc_blenderpreferences.cpp b/common/lc_blenderpreferences.cpp index 2a9b0703..a9426a7e 100644 --- a/common/lc_blenderpreferences.cpp +++ b/common/lc_blenderpreferences.cpp @@ -123,7 +123,7 @@ lcBlenderPreferences::BlenderSettings lcBlenderPreferences::mDefaultSettings [N /* 2 LBL_BEVEL_EDGES */ {"beveledges", "1", QObject::tr("Bevel Edges"), QObject::tr("Adds a Bevel modifier for rounding off sharp edges")}, /* 3 LBL_BLENDFILE_TRUSTED */ {"blendfiletrusted", "0", QObject::tr("Trusted Blend File"), QObject::tr("Specify whether to treat the .blend file as being loaded from a trusted source")}, /* 4 LBL_CROP_IMAGE */ {"cropimage", "0", QObject::tr("Crop Image"), QObject::tr("Crop the image border at opaque content. Requires transparent background set to True")}, - /* 5 LBL_CURVED_WALLS */ {"curvedwalls", "1", QObject::tr("Curved Walls"), QObject::tr("Makes surfaces look slightly concave")}, + /* 5 LBL_CURVED_WALLS */ {"curvedwalls", "1", QObject::tr("Curved Walls"), QObject::tr("Makes surfaces look slightly concave, for interesting reflections")}, /* 6 LBL_FLATTEN_HIERARCHY */ {"flattenhierarchy", "0", QObject::tr("Flatten Hierarchy"), QObject::tr("In Scene Outline, all parts are placed directly below the root - there's no tree of submodels")}, /* 7 LBL_IMPORT_CAMERAS */ {"importcameras", "1", QObject::tr("Import Cameras"), QObject::tr("%1 can specify camera definitions within the ldraw data. Choose to load them or ignore them.").arg(LC_PRODUCTNAME_STR)}, /* 8 LBL_IMPORT_LIGHTS */ {"importlights", "1", QObject::tr("Import Lights"), QObject::tr("%1 can specify point and sunlight definitions within the ldraw data. Choose to load them or ignore them.").arg(LC_PRODUCTNAME_STR)}, @@ -147,12 +147,12 @@ lcBlenderPreferences::BlenderSettings lcBlenderPreferences::mDefaultSettings [N /*26 LBL_VERBOSE */ {"verbose", "1", QObject::tr("Verbose output"), QObject::tr("Output all messages while working, else only show warnings and errors")}, /*27/0 LBL_BEVEL_WIDTH */ {"bevelwidth", "0.5", QObject::tr("Bevel Width"), QObject::tr("Width of the bevelled edges")}, - /*28/1 LBL_CAMERA_BORDER_PERCENT */ {"cameraborderpercentage", "5.0", QObject::tr("Camera Border Percent"), QObject::tr("When positioning the camera, include a (percentage) border around the model in the render")}, + /*28/1 LBL_CAMERA_BORDER_PERCENT */ {"cameraborderpercentage", "5.0", QObject::tr("Camera Border Percent"), QObject::tr("When positioning the camera, include a (percentage) border leeway around the model in the rendered image")}, /*29/2 LBL_DEFAULT_COLOUR */ {"defaultcolour", "16", QObject::tr("Default Colour"), QObject::tr("Sets the default part colour using LDraw colour code")}, - /*20/3 LBL_GAPS_SIZE */ {"gapwidth", "0.01", QObject::tr("Gap Width"), QObject::tr("Amount of gap space between each part")}, + /*20/3 LBL_GAPS_SIZE */ {"realgapwidth", "0.0002", QObject::tr("Gap Width"), QObject::tr("Amount of space between each part (default 0.2mm)")}, /*31/4 LBL_IMAGE_WIDTH */ {"resolutionwidth", "800", QObject::tr("Image Width"), QObject::tr("Sets the rendered image width in pixels - from current step image, label shows config setting.")}, /*32/5 LBL_IMAGE_HEIGHT */ {"resolutionheight", "600", QObject::tr("Image Height"), QObject::tr("Sets the rendered image height in pixels - from current step image, label shows config setting.")}, - /*33/6 LBL_IMAGE_SCALE */ {"scale", "0.02", QObject::tr("Image Scale"), QObject::tr("Sets the imported model scale (between .01 and 1.0). Scale is 1.0 and is huge and unwieldy in the viewport")}, + /*33/6 LBL_IMAGE_SCALE */ {"realscale", "1.0", QObject::tr("Image Scale"), QObject::tr("Sets a scale for the model (1.0 = real life scale)")}, /*34/6 LBL_RENDER_PERCENTAGE */ {"renderpercentage", "100", QObject::tr("Render Percentage"), QObject::tr("Sets the rendered image percentage scale for its pixel resolution - updated from current step, label shows config setting.")}, /*35/0 LBL_COLOUR_SCHEME */ {"usecolourscheme", "lgeo", QObject::tr("Colour Scheme"), QObject::tr("Colour scheme options - Realistic (lgeo), Original (LDConfig), Alternate (LDCfgalt), Custom (User Defined)")}, @@ -183,29 +183,33 @@ lcBlenderPreferences::BlenderSettings lcBlenderPreferences::mDefaultSettingsMM /* 00 LBL_ADD_ENVIRONMENT_MM */ {"addenvironment", "1", QObject::tr("Add Environment"), QObject::tr("Adds a ground plane and environment texture")}, /* 01 LBL_BEVEL_EDGES_MM */ {"beveledges", "0", QObject::tr("Bevel Edgest"), QObject::tr("Bevel edges. Can cause some parts to render incorrectly")}, /* 02 LBL_BLEND_FILE_TRUSTED_MM */ {"blendfiletrusted", "0", QObject::tr("Trusted Blend File"), QObject::tr("Specify whether to treat the .blend file as being loaded from a trusted source")}, - /* 03 LBL_CROP_IMAGE_MM */ {"cropimage", "0", QObject::tr("Crop Image"), QObject::tr("Crop the image border at opaque content. Requires transparent background set to True")}, - /* 04 LBL_DISPLAY_LOGO */ {"displaylogo", "1", QObject::tr("Display Logo"), QObject::tr("Display the logo on the stud")}, - /* 05 LBL_IMPORT_CAMERAS_MM */ {"importcameras", "1", QObject::tr("Import Cameras"), QObject::tr("%1 can specify camera definitions within the ldraw data. Choose to load them or ignore them.").arg(LC_PRODUCTNAME_STR)}, - /* 06 LBL_IMPORT_EDGES */ {"importedges", "0", QObject::tr("Import Edges"), QObject::tr("Import LDraw edges as edges")}, - /* 07 LBL_IMPORT_LIGHTS_MM */ {"importlights", "0", QObject::tr("Import Lights"), QObject::tr("%1 can specify point and sunlight definitions within the ldraw data. Choose to load them or ignore them.").arg(LC_PRODUCTNAME_STR)}, - /* 08 LBL_KEEP_ASPECT_RATIO_MM */ {"keepaspectratio", "1", QObject::tr("Keep Aspect Ratio"), QObject::tr("Maintain the aspect ratio when resizing the output image - this attribute is not passed to Blender")}, - /* 09 LBL_MAKE_GAPS */ {"makegaps", "1", QObject::tr("Make Gaps"), QObject::tr("Make small gaps between bricks. A small gap is more realistic")}, - /* 10 LBL_META_BFC */ {"metabfc", "1", QObject::tr("BFC"), QObject::tr("Process LDraw Back Face Culling meta commands")}, - /* 11 LBL_META_CLEAR */ {"metaclear", "0", QObject::tr("CLEAR Command"), QObject::tr("Hides all parts in the timeline up to where this command is encountered")}, - /* 12 LBL_META_GROUP */ {"metagroup", "1", QObject::tr("GROUP Command"), QObject::tr("Process GROUP meta commands")}, - /* 13 LBL_META_PAUSE */ {"metapause", "0", QObject::tr("PAUSE Command"), QObject::tr("Not implemented")}, - /* 14 LBL_META_PRINT_WRITE */ {"metaprintwrite", "0", QObject::tr("PRINT/WRITE Command"), QObject::tr("Prints PRINT/WRITE META commands to the system console.")}, - /* 15 LBL_META_SAVE */ {"metasave", "0", QObject::tr("SAVE Command"), QObject::tr("Not implemented")}, - /* 16 LBL_META_STEP */ {"metastep", "0", QObject::tr("STEP Command"), QObject::tr("Adds a keyframe that shows the part at the moment in the timeline")}, - /* 17 LBL_META_STEP_GROUPS */ {"metastepgroups", "0", QObject::tr("STEP Groups"), QObject::tr("Create collection for individual steps")}, - /* 18 LBL_META_TEXMAP */ {"metatexmap", "1", QObject::tr("TEXMAP and DATA Command"), QObject::tr("Process TEXMAP and DATA meta commands")}, - /* 19 LBL_NO_STUDS */ {"nostuds", "0", QObject::tr("No Studs"), QObject::tr("Don't import studs")}, - /* 20 LBL_OVERWRITE_IMAGE_MM */ {"overwriteimage", "1", QObject::tr("Overwrite Image"), QObject::tr("Specify whether to overwrite an existing rendered image file")}, - /* 21 LBL_POSITION_CAMERA_MM */ {"positioncamera", "1", QObject::tr("Position Camera"), QObject::tr("Position the camera to show the whole model")}, - /* 22 LBL_PARENT_TO_EMPTY */ {"parenttoempty", "1", QObject::tr("Parent To Empty"), QObject::tr("Parent the model to an empty")}, - /* 23 LBL_PREFER_STUDIO */ {"preferstudio", "0", QObject::tr("Prefer Stud.io Library"), QObject::tr("Search for parts in Stud.io library first")}, - /* 24 LBL_PREFER_UNOFFICIAL */ {"preferunofficial", "0", QObject::tr("Prefer Unofficial Parts"), QObject::tr("Search for unofficial parts first")}, - /* 25 LBL_PRESERVE_HIERARCHY */ {"preservehierarchy", "0", QObject::tr("Preserve File Structure"), QObject::tr("Don't merge the constituent subparts and primitives into the top level part. Some parts may not render properly")}, +#ifdef Q_OS_LINUX + /* 03 LBL_CASE_SENSITIVE_FILESYSTEM */ {"casesensitivefilesystem", "1", QObject::tr("Case-sensitive Filesystem"),QObject::tr("Filesystem is case sensitive. Defaults to true on Linux.")}, +#else + /* 03 LBL_CASE_SENSITIVE_FILESYSTEM */ {"casesensitivefilesystem", "0", QObject::tr("Case-sensitive Filesystem"),QObject::tr("Filesystem case sensitive defaults to false Windows and MacOS. Set true if LDraw path set to case-sensitive on case-insensitive filesystem.")}, +#endif + /* 04 LBL_CROP_IMAGE_MM */ {"cropimage", "0", QObject::tr("Crop Image"), QObject::tr("Crop the image border at opaque content. Requires transparent background set to True")}, + /* 05 LBL_DISPLAY_LOGO */ {"displaylogo", "1", QObject::tr("Display Logo"), QObject::tr("Display the logo on the stud")}, + /* 06 LBL_IMPORT_CAMERAS_MM */ {"importcameras", "1", QObject::tr("Import Cameras"), QObject::tr("%1 can specify camera definitions within the ldraw data. Choose to load them or ignore them.").arg(LC_PRODUCTNAME_STR)}, + /* 07 LBL_IMPORT_EDGES */ {"importedges", "0", QObject::tr("Import Edges"), QObject::tr("Import LDraw edges as edges")}, + /* 08 LBL_IMPORT_LIGHTS_MM */ {"importlights", "0", QObject::tr("Import Lights"), QObject::tr("%1 can specify point and sunlight definitions within the ldraw data. Choose to load them or ignore them.").arg(LC_PRODUCTNAME_STR)}, + /* 09 LBL_KEEP_ASPECT_RATIO_MM */ {"keepaspectratio", "1", QObject::tr("Keep Aspect Ratio"), QObject::tr("Maintain the aspect ratio when resizing the output image - this attribute is not passed to Blender")}, + /* 10 LBL_MAKE_GAPS */ {"makegaps", "1", QObject::tr("Make Gaps"), QObject::tr("Make small gaps between bricks. A small gap is more realistic")}, + /* 11 LBL_META_BFC */ {"metabfc", "1", QObject::tr("BFC"), QObject::tr("Process LDraw Back Face Culling meta commands")}, + /* 12 LBL_META_CLEAR */ {"metaclear", "0", QObject::tr("CLEAR Command"), QObject::tr("Hides all parts in the timeline up to where this command is encountered")}, + /* 13 LBL_META_GROUP */ {"metagroup", "1", QObject::tr("GROUP Command"), QObject::tr("Process GROUP meta commands")}, + /* 14 LBL_META_PAUSE */ {"metapause", "0", QObject::tr("PAUSE Command"), QObject::tr("Not implemented")}, + /* 15 LBL_META_PRINT_WRITE */ {"metaprintwrite", "0", QObject::tr("PRINT/WRITE Command"), QObject::tr("Prints PRINT/WRITE META commands to the system console.")}, + /* 16 LBL_META_SAVE */ {"metasave", "0", QObject::tr("SAVE Command"), QObject::tr("Not implemented")}, + /* 17 LBL_META_STEP */ {"metastep", "0", QObject::tr("STEP Command"), QObject::tr("Adds a keyframe that shows the part at the moment in the timeline")}, + /* 18 LBL_META_STEP_GROUPS */ {"metastepgroups", "0", QObject::tr("STEP Groups"), QObject::tr("Create collection for individual steps")}, + /* 19 LBL_META_TEXMAP */ {"metatexmap", "1", QObject::tr("TEXMAP and DATA Command"), QObject::tr("Process TEXMAP and DATA meta commands")}, + /* 20 LBL_NO_STUDS */ {"nostuds", "0", QObject::tr("No Studs"), QObject::tr("Don't import studs")}, + /* 21 LBL_OVERWRITE_IMAGE_MM */ {"overwriteimage", "1", QObject::tr("Overwrite Image"), QObject::tr("Specify whether to overwrite an existing rendered image file")}, + /* 22 LBL_POSITION_CAMERA_MM */ {"positioncamera", "1", QObject::tr("Position Camera"), QObject::tr("Position the camera to show the whole model")}, + /* 23 LBL_PARENT_TO_EMPTY */ {"parenttoempty", "1", QObject::tr("Parent To Empty"), QObject::tr("Parent the model to an empty")}, + /* 24 LBL_PREFER_STUDIO */ {"preferstudio", "0", QObject::tr("Prefer Stud.io Library"), QObject::tr("Search for parts in Stud.io library first")}, + /* 25 LBL_PREFER_UNOFFICIAL */ {"preferunofficial", "0", QObject::tr("Prefer Unofficial Parts"), QObject::tr("Search for unofficial parts first")}, /* 26 LBL_PROFILE */ {"profile", "0", QObject::tr("Profile"), QObject::tr("Profile import performance")}, /* 27 LBL_RECALCULATE_NORMALS */ {"recalculatenormals", "0", QObject::tr("Recalculate Normals"), QObject::tr("Recalculate normals. Not recommended if BFC processing is active")}, /* 28 LBL_REMOVE_DOUBLES_MM */ {"removedoubles", "1", QObject::tr("No Duplicate Vertices"), QObject::tr("Merge vertices that are within a certain distance.")}, @@ -215,32 +219,32 @@ lcBlenderPreferences::BlenderSettings lcBlenderPreferences::mDefaultSettingsMM /* 32 LBL_SET_TIMELINE_MARKERS */ {"settimelinemarkers", "0", QObject::tr("Set Timeline Markers"), QObject::tr("Set timeline markers for meta commands")}, /* 33 LBL_SHADE_SMOOTH */ {"shadesmooth", "1", QObject::tr("Shade Smooth"), QObject::tr("Use flat or smooth shading for part faces")}, /* 34 LBL_TRANSPARENT_BACKGROUND_MM */ {"transparentbackground", "0", QObject::tr("Transparent Background"), QObject::tr("Specify whether to render a background")}, - /* 35 LBL_TREAT_MODELS_WITH_SUBPARTS_AS_PARTS */ {"treatmodelswithsubpartsasparts","1", QObject::tr("Treat Subparts As Parts"), QObject::tr("Treat subpart like a part by merging its constituent parts into one object")}, - /* 36 LBL_TREAT_SHORTCUT_AS_MODEL */ {"treatshortcutasmodel", "0", QObject::tr("Treat Shortcuts As Models"),QObject::tr("Split shortcut parts into their constituent pieces as if they were models")}, - /* 37 LBL_TRIANGULATE */ {"triangulate", "0", QObject::tr("Triangulate Faces"), QObject::tr("Triangulate all faces")}, - /* 38 LBL_USE_ARCHIVE_LIBRARY_MM */ {"usearchivelibrary", "0", QObject::tr("Use Archive Libraries"), QObject::tr("Add any archive (zip) libraries in the LDraw file path to the library search list")}, - /* 39 LBL_USE_FREESTYLE_EDGES */ {"usefreestyleedges", "0", QObject::tr("Use Freestyle Edges"), QObject::tr("Render LDraw edges using freestyle")}, - /* 40 LBL_VERBOSE_MM */ {"verbose", "1", QObject::tr("Verbose output"), QObject::tr("Output all messages while working, else only show warnings and errors")}, + /* 35 LBL_TREAT_SHORTCUT_AS_MODEL */ {"treatshortcutasmodel", "0", QObject::tr("Treat Shortcuts As Models"),QObject::tr("Split shortcut parts into their constituent pieces as if they were models")}, + /* 36 LBL_TRIANGULATE */ {"triangulate", "0", QObject::tr("Triangulate Faces"), QObject::tr("Triangulate all faces")}, + /* 37 LBL_USE_ARCHIVE_LIBRARY_MM */ {"usearchivelibrary", "0", QObject::tr("Use Archive Libraries"), QObject::tr("Add any archive (zip) libraries in the LDraw file path to the library search list")}, + /* 38 LBL_USE_FREESTYLE_EDGES */ {"usefreestyleedges", "0", QObject::tr("Use Freestyle Edges"), QObject::tr("Render LDraw edges using freestyle")}, + /* 39 LBL_VERBOSE_MM */ {"verbose", "1", QObject::tr("Verbose output"), QObject::tr("Output all messages while working, else only show warnings and errors")}, - /* 41/00 LBL_BEVEL_SEGMENTS */ {"bevelsegments", "4", QObject::tr("Bevel Segments"), QObject::tr("Bevel segments")}, - /* 42/01 LBL_BEVEL_WEIGHT */ {"bevelweight", "0.3", QObject::tr("Bevel Weight"), QObject::tr("Bevel weight")}, - /* 43/02 LBL_BEVEL_WIDTH_MM */ {"bevelwidth", "0.3", QObject::tr("Bevel Width"), QObject::tr("Width of the bevelled edges")}, - /* 44/03 LBL_CAMERA_BORDER_PERCENT_MM */ {"cameraborderpercent", "5", QObject::tr("Camera Border Percent"), QObject::tr("When positioning the camera, include a (percentage) border around the model in the render")}, - /* 45/04 LBL_FRAMES_PER_STEP */ {"framesperstep", "3", QObject::tr("Frames Per Step"), QObject::tr("Frames per step")}, - /* 46/05 LBL_GAP_SCALE */ {"gapscale", "0.997", QObject::tr("Gap Scale"), QObject::tr("Scale individual parts by this much to create the gap")}, - /* 47/06 LBL_IMPORT_SCALE */ {"importscale", "0.02", QObject::tr("Import Scale"), QObject::tr("What scale to import at. Full scale is 1.0 and is so huge that it is unwieldy in the viewport")}, - /* 48/07 LBL_MERGE_DISTANCE */ {"mergedistance", "0.05", QObject::tr("Merge Distance"), QObject::tr("Maximum distance between elements to merge")}, - /* 49/08 LBL_RENDER_PERCENTAGE_MM */ {"renderpercentage", "100", QObject::tr("Render Percentage"), QObject::tr("Sets the rendered image percentage scale for its pixel resolution - updated from current step, label shows config setting.")}, - /* 50/09 LBL_RESOLUTION_WIDTH */ {"resolutionwidth", "800", QObject::tr("Image Width"), QObject::tr("Sets the rendered image width in pixels - from current step image, label shows config setting.")}, - /* 51/10 LBL_RESOLUTION_HEIGHT */ {"resolutionheight", "600", QObject::tr("Image Height"), QObject::tr("Sets the rendered image height in pixels - from current step image, label shows config setting.")}, - /* 52/11 LBL_STARTING_STEP_FRAME */ {"startingstepframe", "1", QObject::tr("Starting Step Frame"), QObject::tr("Frame to add the first STEP meta command")}, + /* 40/00 LBL_BEVEL_SEGMENTS */ {"bevelsegments", "4", QObject::tr("Bevel Segments"), QObject::tr("Bevel segments")}, + /* 41/01 LBL_BEVEL_WEIGHT */ {"bevelweight", "0.3", QObject::tr("Bevel Weight"), QObject::tr("Bevel weight")}, + /* 42/02 LBL_BEVEL_WIDTH_MM */ {"bevelwidth", "0.3", QObject::tr("Bevel Width"), QObject::tr("Width of the bevelled edges")}, + /* 43/03 LBL_CAMERA_BORDER_PERCENT_MM */ {"cameraborderpercent", "5", QObject::tr("Camera Border Percent"), QObject::tr("When positioning the camera, include a (percentage) border around the model in the render")}, + /* 44/04 LBL_FRAMES_PER_STEP */ {"framesperstep", "3", QObject::tr("Frames Per Step"), QObject::tr("Frames per step")}, + /* 45/05 LBL_GAP_SCALE */ {"gapscale", "0.997", QObject::tr("Gap Scale"), QObject::tr("Scale individual parts by this much to create the gap")}, + /* 46/06 LBL_IMPORT_SCALE */ {"importscale", "0.02", QObject::tr("Import Scale"), QObject::tr("What scale to import at. Full scale is 1.0 and is so huge that it is unwieldy in the viewport")}, + /* 47/07 LBL_MERGE_DISTANCE */ {"mergedistance", "0.05", QObject::tr("Merge Distance"), QObject::tr("Maximum distance between elements to merge")}, + /* 48/08 LBL_RENDER_PERCENTAGE_MM */ {"renderpercentage", "100", QObject::tr("Render Percentage"), QObject::tr("Sets the rendered image percentage scale for its pixel resolution - updated from current step, label shows config setting.")}, + /* 49/09 LBL_RESOLUTION_WIDTH */ {"resolutionwidth", "800", QObject::tr("Image Width"), QObject::tr("Sets the rendered image width in pixels - from current step image, label shows config setting.")}, + /* 50/10 LBL_RESOLUTION_HEIGHT */ {"resolutionheight", "600", QObject::tr("Image Height"), QObject::tr("Sets the rendered image height in pixels - from current step image, label shows config setting.")}, + /* 51/11 LBL_STARTING_STEP_FRAME */ {"startingstepframe", "1", QObject::tr("Starting Step Frame"), QObject::tr("Frame to add the first STEP meta command")}, - /* 53/00 LBL_CHOSEN_LOGO */ {"chosenlogo", "logo3", QObject::tr("Chosen Logo"), QObject::tr("Which logo to display. logo and logo2 aren't used and are only included for completeness")}, - /* 54/01 LBL_COLOUR_SCHEME_MM */ {"usecolourscheme", "lgeo", QObject::tr("Colour Scheme"), QObject::tr("Colour scheme options - Realistic (lgeo), Original (LDConfig), Alternate (LDCfgalt), Custom (User Defined)")}, - /* 55/02 LBL_GAP_SCALE_STRATEGY */ {"gapscalestrategy", "constraint", QObject::tr("Gap Strategy"), QObject::tr("Apply gap to object directly or scale and empty to adjust to gaps between parts")}, - /* 56/03 LBL_GAP_TARGET */ {"gaptarget", "object", QObject::tr("Gap Target"), QObject::tr("Whether to scale the object data or mesh data")}, - /* 57/04 LBL_RESOLUTION_MM */ {"resolution", "Standard", QObject::tr("Resolution"), QObject::tr("Resolution of part primitives, ie. how much geometry they have")}, - /* 58/05 LBL_SMOOTH_TYPE */ {"smoothtype", "edge_split", QObject::tr("Smooth Type"), QObject::tr("Use either autosmooth or an edge split modifier to smooth part faces")} + /* 52/00 LBL_CHOSEN_LOGO */ {"chosenlogo", "logo3", QObject::tr("Chosen Logo"), QObject::tr("Which logo to display. logo and logo2 aren't used and are only included for completeness")}, + /* 53/01 LBL_COLOUR_SCHEME_MM */ {"usecolourscheme", "lgeo", QObject::tr("Colour Scheme"), QObject::tr("Colour scheme options - Realistic (lgeo), Original (LDConfig), Alternate (LDCfgalt), Custom (User Defined)")}, + /* 54/02 LBL_COLOUR_STRATEGY */ {"colorstrategy", "material", QObject::tr("How To Color Parts"), QObject::tr("Colour strategy options - Material (Default - use if exporting), Vertex colors (slightly quicker to import)")}, + /* 55/03 LBL_GAP_SCALE_STRATEGY */ {"gapscalestrategy", "constraint", QObject::tr("Gap Strategy"), QObject::tr("Apply gap to object directly or scale and empty to adjust to gaps between parts")}, + /* 56/04 LBL_GAP_TARGET */ {"gaptarget", "object", QObject::tr("Gap Target"), QObject::tr("Whether to scale the object data or mesh data")}, + /* 57/05 LBL_RESOLUTION_MM */ {"resolution", "Standard", QObject::tr("Resolution"), QObject::tr("Resolution of part primitives, ie. how much geometry they have")}, + /* 58/06 LBL_SMOOTH_TYPE */ {"smoothtype", "edge_split", QObject::tr("Smooth Type"), QObject::tr("Use either autosmooth or an edge split modifier to smooth part faces")} }; lcBlenderPreferences::ComboItems lcBlenderPreferences::mComboItemsMM [NUM_COMBO_ITEMS_MM] = @@ -248,10 +252,11 @@ lcBlenderPreferences::ComboItems lcBlenderPreferences::mComboItemsMM [NUM_COMBO /* FIRST item set as default Data Item: */ /* 00 LBL_CHOSEN_LOGO */ {"logo|logo2|logo3", QObject::tr("Logo (Not Used)|Logo2 (Not Used)|Flattened(3)")}, /* 01 LBL_COLOUR_SCHEME_MM */ {"lgeo|ldraw|alt|custom", QObject::tr("Realistic Colours|Original LDraw Colours|Alternate LDraw Colours|Custom Colours")}, - /* 02 LBL_GAP_SCALE_STRATEGY */ {"object|constraint", QObject::tr("Gap applied directly to object|Gap scaled to adjust to gaps between parts")}, - /* 03 LBL_GAP_TARGET */ {"object|mesh", QObject::tr("Scale object data|Scale mesh data")}, - /* 04 LBL_RESOLUTION_MM */ {"Low|Standard|High", QObject::tr("Low Resolution Primitives|Standard Primitives|High Resolution Primitives")}, - /* 05 LBL_SMOOTH_TYPE */ {"edge_split|auto_smooth|bmesh_split", QObject::tr("Smooth part faces with edge split modifier|Auto-smooth part faces|Split during initial mesh processing")} + /* 02 LBL_COLOUR_STRATEGY */ {"material|vertex_colors", QObject::tr("Material|Vertex Colors")}, + /* 03 LBL_GAP_SCALE_STRATEGY */ {"object|constraint", QObject::tr("Gap applied directly to object|Gap scaled to adjust to gaps between parts")}, + /* 04 LBL_GAP_TARGET */ {"object|mesh", QObject::tr("Scale object data|Scale mesh data")}, + /* 05 LBL_RESOLUTION_MM */ {"Low|Standard|High", QObject::tr("Low Resolution Primitives|Standard Primitives|High Resolution Primitives")}, + /* 06 LBL_SMOOTH_TYPE */ {"edge_split|auto_smooth|bmesh_split", QObject::tr("Smooth part faces with edge split modifier|Auto-smooth part faces|Split during initial mesh processing")} }; lcBlenderPreferences* gAddonPreferences; diff --git a/common/lc_blenderpreferences.h b/common/lc_blenderpreferences.h index 5c1f9bd6..c034b7bb 100644 --- a/common/lc_blenderpreferences.h +++ b/common/lc_blenderpreferences.h @@ -237,30 +237,30 @@ private: LBL_ADD_ENVIRONMENT_MM, // 0 QCheckBox LBL_BEVEL_EDGES_MM, // 1 QCheckBox LBL_BLEND_FILE_TRUSTED_MM, // 2 QCheckBox - LBL_CROP_IMAGE_MM, // 3 QCheckBox - LBL_DISPLAY_LOGO, // 4 QCheckBox - LBL_IMPORT_CAMERAS_MM, // 5 QCheckBox - LBL_IMPORT_EDGES, // 6 QCheckBox + LBL_CASE_SENSITIVE_FILESYSTEM, // 3 QCheckBox + LBL_CROP_IMAGE_MM, // 4 QCheckBox + LBL_DISPLAY_LOGO, // 5 QCheckBox + LBL_IMPORT_CAMERAS_MM, // 6 QCheckBox NUM_COMBO_ITEMS_MM, // 7 - LBL_IMPORT_LIGHTS_MM = NUM_COMBO_ITEMS_MM, // 7 QCheckBox - LBL_KEEP_ASPECT_RATIO_MM, // 8 QCheckBox - LBL_MAKE_GAPS, // 9 QCheckBox - LBL_META_BFC, // 10 QCheckBox - LBL_META_CLEAR, // 11 QCheckBox - LBL_META_GROUP, // 12 QCheckBox - LBL_META_PAUSE, // 13 QCheckBox - LBL_META_PRINT_WRITE, // 14 QCheckBox - LBL_META_SAVE, // 15 QCheckBox - LBL_META_STEP, // 16 QCheckBox - LBL_META_STEP_GROUPS, // 17 QCheckBox - LBL_META_TEXMAP, // 18 QCheckBox - LBL_NO_STUDS, // 19 QCheckBox - LBL_OVERWRITE_IMAGE_MM, // 20 QCheckBox - LBL_POSITION_CAMERA_MM, // 21 QCheckBox - LBL_PARENT_TO_EMPTY, // 22 QCheckBox - LBL_PREFER_STUDIO, // 23 QCheckBox - LBL_PREFER_UNOFFICIAL, // 24 QCheckBox - LBL_PRESERVE_HIERARCHY, // 25 QCheckBox + LBL_IMPORT_EDGES = NUM_COMBO_ITEMS_MM, // 7 QCheckBox + LBL_IMPORT_LIGHTS_MM, // 8 QCheckBox + LBL_KEEP_ASPECT_RATIO_MM, // 9 QCheckBox + LBL_MAKE_GAPS, // 10 QCheckBox + LBL_META_BFC, // 11 QCheckBox + LBL_META_CLEAR, // 12 QCheckBox + LBL_META_GROUP, // 13 QCheckBox + LBL_META_PAUSE, // 14 QCheckBox + LBL_META_PRINT_WRITE, // 15 QCheckBox + LBL_META_SAVE, // 16 QCheckBox + LBL_META_STEP, // 17 QCheckBox + LBL_META_STEP_GROUPS, // 18 QCheckBox + LBL_META_TEXMAP, // 19 QCheckBox + LBL_NO_STUDS, // 20 QCheckBox + LBL_OVERWRITE_IMAGE_MM, // 21 QCheckBox + LBL_POSITION_CAMERA_MM, // 22 QCheckBox + LBL_PARENT_TO_EMPTY, // 23 QCheckBox + LBL_PREFER_STUDIO, // 24 QCheckBox + LBL_PREFER_UNOFFICIAL, // 25 QCheckBox LBL_PROFILE, // 26 QCheckBox LBL_RECALCULATE_NORMALS, // 27 QCheckBox LBL_REMOVE_DOUBLES_MM, // 28 QCheckBox @@ -270,32 +270,32 @@ private: LBL_SET_TIMELINE_MARKERS, // 32 QCheckBox LBL_SHADE_SMOOTH, // 33 QCheckBox LBL_TRANSPARENT_BACKGROUND_MM, // 34 QCheckBox - LBL_TREAT_MODELS_WITH_SUBPARTS_AS_PARTS, // 35 QCheckBox - LBL_TREAT_SHORTCUT_AS_MODEL, // 36 QCheckBox - LBL_TRIANGULATE, // 37 QCheckBox - LBL_USE_ARCHIVE_LIBRARY_MM, // 38 QCheckBox - LBL_USE_FREESTYLE_EDGES, // 39 QCheckBox - LBL_VERBOSE_MM, // 40 QCheckBox + LBL_TREAT_SHORTCUT_AS_MODEL, // 35 QCheckBox + LBL_TRIANGULATE, // 36 QCheckBox + LBL_USE_ARCHIVE_LIBRARY_MM, // 37 QCheckBox + LBL_USE_FREESTYLE_EDGES, // 38 QCheckBox + LBL_VERBOSE_MM, // 39 QCheckBox - LBL_BEVEL_SEGMENTS, // 41/ 0 QLineEdit - LBL_BEVEL_WEIGHT, // 42/ 1 QLineEdit - LBL_BEVEL_WIDTH_MM, // 43/ 2 QLineEdit - LBL_CAMERA_BORDER_PERCENT_MM, // 44/ 3 QLineEdit - LBL_FRAMES_PER_STEP, // 45/ 4 QLineEdit - LBL_GAP_SCALE, // 46/ 5 QLineEdit - LBL_IMPORT_SCALE, // 47/ 6 QLineEdit - LBL_MERGE_DISTANCE, // 48/ 7 QLineEdit - LBL_RENDER_PERCENTAGE_MM, // 49/ 8 QLineEdit - LBL_RESOLUTION_WIDTH, // 50/ 9 QLineEdit - LBL_RESOLUTION_HEIGHT, // 51/10 QLineEdit - LBL_STARTING_STEP_FRAME, // 52/11 QLineEdit + LBL_BEVEL_SEGMENTS, // 40/ 0 QLineEdit + LBL_BEVEL_WEIGHT, // 41/ 1 QLineEdit + LBL_BEVEL_WIDTH_MM, // 42/ 2 QLineEdit + LBL_CAMERA_BORDER_PERCENT_MM, // 43/ 3 QLineEdit + LBL_FRAMES_PER_STEP, // 44/ 4 QLineEdit + LBL_GAP_SCALE, // 45/ 5 QLineEdit + LBL_IMPORT_SCALE, // 46/ 6 QLineEdit + LBL_MERGE_DISTANCE, // 47/ 7 QLineEdit + LBL_RENDER_PERCENTAGE_MM, // 48/ 8 QLineEdit + LBL_RESOLUTION_WIDTH, // 49/ 9 QLineEdit + LBL_RESOLUTION_HEIGHT, // 50/10 QLineEdit + LBL_STARTING_STEP_FRAME, // 51/11 QLineEdit - LBL_CHOSEN_LOGO, // 53/ 0 QComboBox - LBL_COLOUR_SCHEME_MM, // 54/ 1 QComboBox - LBL_GAP_SCALE_STRATEGY, // 55/ 2 QComboBox - LBL_GAP_TARGET, // 56/ 3 QComboBox - LBL_RESOLUTION_MM, // 57/ 4 QComboBox - LBL_SMOOTH_TYPE, // 58/ 5 QComboBox + LBL_CHOSEN_LOGO, // 52/ 0 QComboBox + LBL_COLOUR_SCHEME_MM, // 53/ 1 QComboBox + LBL_COLOUR_STRATEGY, // 54/ 2 QComboBox + LBL_GAP_SCALE_STRATEGY, // 55/ 3 QComboBox + LBL_GAP_TARGET, // 56/ 4 QComboBox + LBL_RESOLUTION_MM, // 57/ 5 QComboBox + LBL_SMOOTH_TYPE, // 58/ 6 QComboBox NUM_SETTINGS_MM }; @@ -311,42 +311,43 @@ private: CTL_COLOUR_SCHEME_COMBO_MM = CTL_BEVEL_EDGES_BOX_MM, // 1 CTL_BLEND_FILE_TRUSTED_BOX_MM, // 2 CTL_BEVEL_WIDTH_EDIT_MM = CTL_BLEND_FILE_TRUSTED_BOX_MM,// 2 - CTL_GAP_SCALE_STRATEGY_COMBO = CTL_BLEND_FILE_TRUSTED_BOX_MM,// 2 - CTL_CROP_IMAGE_BOX_MM, // 3 - CTL_CAMERA_BORDER_PERCENT_EDIT_MM = CTL_CROP_IMAGE_BOX_MM, // 3 - CTL_GAP_TARGET_COMBO = CTL_CROP_IMAGE_BOX_MM, // 3 - CTL_DISPLAY_LOGO_BOX, // 4 - CTL_FRAMES_PER_STEP_EDIT = CTL_DISPLAY_LOGO_BOX, // 4 - CTL_RESOLUTION_COMBO_MM = CTL_DISPLAY_LOGO_BOX, // 4 - CTL_IMPORT_CAMERAS_BOX_MM, // 5 - CTL_GAP_SCALE_EDIT = CTL_IMPORT_CAMERAS_BOX_MM, // 5 - CTL_SMOOTH_TYPE_COMBO = CTL_IMPORT_CAMERAS_BOX_MM, // 5 - CTL_IMPORT_EDGES_BOX, // 6 - CTL_IMPORT_SCALE_EDIT = CTL_IMPORT_EDGES_BOX, // 6 - CTL_IMPORT_LIGHTS_BOX_MM, // 7 - CTL_MERGE_DISTANCE_EDIT = CTL_IMPORT_LIGHTS_BOX_MM, // 7 - CTL_KEEP_ASPECT_RATIO_BOX_MM, // 8 - CTL_RENDER_PERCENTAGE_EDIT_MM = CTL_KEEP_ASPECT_RATIO_BOX_MM, // 8 - CTL_MAKE_GAPS_BOX, // 9 - CTL_RESOLUTION_WIDTH_EDIT = CTL_MAKE_GAPS_BOX, // 9 - CTL_META_BFC_BOX, // 10 - CTL_RESOLUTION_HEIGHT_EDIT = CTL_META_BFC_BOX, // 10 - CTL_META_CLEAR_BOX, // 11 - CTL_STARTING_STEP_FRAME_EDIT = CTL_META_CLEAR_BOX, // 11 - CTL_META_GROUP_BOX, // 12 - CTL_META_PAUSE_BOX, // 13 - CTL_META_PRINT_WRITE_BOX, // 14 - CTL_META_SAVE_BOX, // 15 - CTL_META_STEP_BOX, // 16 - CTL_META_STEP_GROUPS_BOX, // 17 - CTL_META_TEXMAP_BOX, // 18 - CTL_NO_STUDS_BOX, // 19 - CTL_POSITION_CAMERA_BOX_MM, // 10 - CTL_OVERWRITE_IMAGE_BOX_MM, // 21 - CTL_PARENT_TO_EMPTY_BOX, // 22 - CTL_PREFER_STUDIO_BOX, // 23 - CTL_PREFER_UNOFFICIAL_BOX, // 24 - CTL_PRESERVE_HIERARCHY_BOX, // 25 + CTL_COLOUR_STRATEGY_COMBO = CTL_BLEND_FILE_TRUSTED_BOX_MM,// 2 + CTL_CASE_SENSITIVE_FILESYSTEM_BOX, // 3 + CTL_CAMERA_BORDER_PERCENT_EDIT_MM = CTL_CASE_SENSITIVE_FILESYSTEM_BOX,// 3 + CTL_GAP_SCALE_STRATEGY_COMBO = CTL_CASE_SENSITIVE_FILESYSTEM_BOX,// 3 + CTL_CROP_IMAGE_BOX_MM, // 4 + CTL_FRAMES_PER_STEP_EDIT = CTL_CROP_IMAGE_BOX_MM, // 4 + CTL_GAP_TARGET_COMBO = CTL_CROP_IMAGE_BOX_MM, // 4 + CTL_DISPLAY_LOGO_BOX, // 5 + CTL_GAP_SCALE_EDIT = CTL_DISPLAY_LOGO_BOX, // 5 + CTL_RESOLUTION_COMBO_MM = CTL_DISPLAY_LOGO_BOX, // 5 + CTL_IMPORT_CAMERAS_BOX_MM, // 6 + CTL_IMPORT_SCALE_EDIT = CTL_IMPORT_CAMERAS_BOX_MM, // 6 + CTL_SMOOTH_TYPE_COMBO = CTL_IMPORT_CAMERAS_BOX_MM, // 6 + CTL_IMPORT_EDGES_BOX, // 7 + CTL_MERGE_DISTANCE_EDIT = CTL_IMPORT_EDGES_BOX, // 7 + CTL_IMPORT_LIGHTS_BOX_MM, // 8 + CTL_RENDER_PERCENTAGE_EDIT_MM = CTL_IMPORT_LIGHTS_BOX_MM, // 8 + CTL_KEEP_ASPECT_RATIO_BOX_MM, // 9 + CTL_RESOLUTION_WIDTH_EDIT = CTL_KEEP_ASPECT_RATIO_BOX_MM, // 9 + CTL_MAKE_GAPS_BOX, // 10 + CTL_RESOLUTION_HEIGHT_EDIT = CTL_MAKE_GAPS_BOX, // 10 + CTL_META_BFC_BOX, // 11 + CTL_STARTING_STEP_FRAME_EDIT = CTL_META_BFC_BOX, // 11 + CTL_META_CLEAR_BOX, // 12 + CTL_META_GROUP_BOX, // 13 + CTL_META_PAUSE_BOX, // 14 + CTL_META_PRINT_WRITE_BOX, // 15 + CTL_META_SAVE_BOX, // 16 + CTL_META_STEP_BOX, // 17 + CTL_META_STEP_GROUPS_BOX, // 18 + CTL_META_TEXMAP_BOX, // 19 + CTL_NO_STUDS_BOX, // 20 + CTL_POSITION_CAMERA_BOX_MM, // 21 + CTL_OVERWRITE_IMAGE_BOX_MM, // 22 + CTL_PARENT_TO_EMPTY_BOX, // 23 + CTL_PREFER_STUDIO_BOX, // 24 + CTL_PREFER_UNOFFICIAL_BOX, // 25 CTL_PROFILE_BOX, // 26 CTL_RECALCULATE_NORMALS_BOX, // 27 CTL_REMOVE_DOUBLES_BOX_MM, // 28 @@ -356,12 +357,11 @@ private: CTL_SET_TIMELINE_MARKERS_BOX, // 32 CTL_SHADE_SMOOTH_BOX, // 33 CTL_TRANSPARENT_BACKGROUND_BOX_MM, // 34 - CTL_TREAT_MODELS_WITH_SUBPARTS_AS_PARTS_BOX, // 35 - CTL_TREAT_SHORTCUT_AS_MODEL_BOX, // 36 - CTL_TRIANGULATE_BOX, // 37 - CTL_USE_ARCHIVE_LIBRARY_BOX_MM, // 38 - CTL_USE_FREESTYLE_EDGES_BOX, // 39 - CTL_VERBOSE_BOX_MM // 40 + CTL_TREAT_SHORTCUT_AS_MODEL_BOX, // 35 + CTL_TRIANGULATE_BOX, // 36 + CTL_USE_ARCHIVE_LIBRARY_BOX_MM, // 37 + CTL_USE_FREESTYLE_EDGES_BOX, // 38 + CTL_VERBOSE_BOX_MM // 39 }; enum BlenderBrickType