Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ImGui-based console #1748

Merged
merged 28 commits into from
Dec 11, 2024
Merged
Show file tree
Hide file tree
Changes from 19 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions .github/actions/generic-ci/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -174,7 +174,6 @@ runs:
-DF3D_TESTING_ENABLE_LONG_TIMEOUT_TESTS=${{ (runner.os == 'Linux' || runner.os == 'Windows') && 'ON' || 'OFF' }}
-DF3D_TESTING_ENABLE_OSMESA_TESTS=${{ runner.os == 'Linux' && 'ON' || 'OFF' }}
-DF3D_TESTING_FORCE_RENDERING_BACKEND=${{ inputs.rendering_backend }}
-DF3D_WINDOWS_GUI=ON
${{ runner.os == 'Windows' && '-Ax64 -DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreadedDLL' || null }}
${{ runner.os == 'macOS' && '-DCMAKE_OSX_DEPLOYMENT_TARGET=10.15' || null }}
Expand Down Expand Up @@ -348,7 +347,7 @@ runs:
inputs.cpu != 'arm64' && inputs.static_label == 'no-static' && inputs.optional_deps_label == 'optional-deps'
shell: bash
working-directory: ${{github.workspace}}/install
run: F3D_PLUGINS_PATH=$(pwd)/../build_plugins/example-plugin${{ runner.os == 'Windows' && '/Release' || null }} ${{ env.F3D_BIN_PATH }} ../source/examples/plugins/example-plugin/data.expl --load-plugins=example --output=../install_example_plugin_output.png --ref=../source/.github/baselines/install_example_plugin_output.png --resolution=300,300 --verbose
run: F3D_PLUGINS_PATH=$(pwd)/../build_plugins/example-plugin${{ runner.os == 'Windows' && '/Release' || null }} ${{ env.F3D_BIN_PATH }} ../source/examples/plugins/example-plugin/data.expl --load-plugins=example --output=../install_example_plugin_output.png --ref=../source/.github/baselines/install_example_plugin_output.png --resolution=300,300 --rendering-backend=${{ inputs.rendering_backend }} --verbose

- name: Install plugin examples
if: inputs.static_label == 'no-static'
Expand Down
3 changes: 1 addition & 2 deletions .github/actions/python-ci/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -87,8 +87,7 @@ runs:
-DF3D_PLUGIN_BUILD_VDB=${{ runner.os == 'macOS' && 'OFF' || 'ON' }};
-DF3D_MACOS_BUNDLE=OFF;
-DF3D_MODULE_EXR=ON;
-DF3D_MODULE_UI=ON;
-DF3D_WINDOWS_GUI=OFF" >> $GITHUB_ENV
-DF3D_MODULE_UI=ON" >> $GITHUB_ENV

- name: Set up Python
uses: actions/setup-python@v5
Expand Down
13 changes: 5 additions & 8 deletions application/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -173,14 +173,11 @@ if(APPLE)
target_link_libraries(f3d PRIVATE "-framework Cocoa")
endif()

# Windows executable without console
if(WIN32)
if(F3D_WINDOWS_GUI)
set_target_properties(f3d PROPERTIES WIN32_EXECUTABLE TRUE)
else()
# force usage of wWinMainCRTStartup in console mode for Unicode support
list(APPEND f3d_link_options_public "/ENTRY:wWinMainCRTStartup")
endif()
if(F3D_WINDOWS_GUI)
# Windows executable without console
set_target_properties(f3d PROPERTIES WIN32_EXECUTABLE TRUE)
# force usage of wWinMainCRTStartup for Unicode support
list(APPEND f3d_link_options_public "/ENTRY:wWinMainCRTStartup")
endif()

target_compile_options(f3d PUBLIC ${f3d_compile_options_public} PRIVATE ${f3d_compile_options_private})
Expand Down
4 changes: 2 additions & 2 deletions application/F3DConfigFileTools.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -145,10 +145,10 @@ F3DConfigFileTools::ReadConfigFiles(const std::string& userConfig)
}
}

// If we used a configSearch but did not find any, warn the user
// If we used a configSearch but did not find any, inform the user
if (!configSearch.empty() && actualConfigFilePaths.empty())
{
f3d::log::warn("Configuration file for \"", configSearch, "\" could not be found");
f3d::log::info("Configuration file for \"", configSearch, "\" could not be found");
}

// Read config files
Expand Down
4 changes: 0 additions & 4 deletions application/F3DOptionsTools.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -219,7 +219,6 @@ void PrintHelp(const std::string& execName, const cxxopts::Options& cxxOptions)
}
f3d::log::info("\nReport bugs to https://github.com/f3d-app/f3d/issues");
f3d::log::setUseColoring(true);
f3d::log::waitForUser();
}

//----------------------------------------------------------------------------
Expand Down Expand Up @@ -266,7 +265,6 @@ void PrintVersion()
}
f3d::log::info("License " + libInfo.License + ".");
f3d::log::setUseColoring(true);
f3d::log::waitForUser();
}

//----------------------------------------------------------------------------
Expand Down Expand Up @@ -338,7 +336,6 @@ void PrintReadersList()
f3d::log::info(readerLine.str());
}
}
f3d::log::waitForUser();
}
}

Expand Down Expand Up @@ -530,7 +527,6 @@ F3DOptionsTools::OptionsDict F3DOptionsTools::ParseCLIOptions(
}
if (foundUnknownOption)
{
f3d::log::waitForUser();
throw F3DExFailure("unknown options");
}

Expand Down
9 changes: 7 additions & 2 deletions application/F3DStarter.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -376,14 +376,14 @@ class F3DStarter::F3DInternals
if (std::regex_match(var, numberingRe))
{
std::stringstream formattedNumber;
const std::string fmt = std::regex_replace(var, numberingRe, "$2");
try
{
const std::string fmt = std::regex_replace(var, numberingRe, "$2");
formattedNumber << std::setfill('0') << std::setw(std::stoi(fmt)) << number;
}
catch (std::invalid_argument&)
{
if (number == 1) /* avoid spamming the log */
if (!fmt.empty() && number == 1) /* avoid spamming the log */
{
f3d::log::warn("ignoring invalid number format for \"", var, "\"");
}
Expand Down Expand Up @@ -671,6 +671,9 @@ class F3DStarter::F3DInternals
interactor.addBinding({ mod_t::NONE, "Drop" }, "add_files_or_set_hdri", "Others", std::bind(docString, "Load dropped files, folder or HDRI"));
interactor.addBinding({ mod_t::CTRL, "Drop" }, "add_files", "Others", std::bind(docString, "Load dropped files or folder"));
interactor.addBinding({ mod_t::SHIFT, "Drop" }, "set_hdri", "Others", std::bind(docString, "Set HDRI and use it"));

interactor.removeBinding({mod_t::CTRL, "Q"});
interactor.addBinding({mod_t::CTRL, "Q"}, "exit", "Others", std::bind(docString, "Quit"));
// clang-format on

f3d::log::debug("Adding config defined bindings if any: ");
Expand Down Expand Up @@ -1377,6 +1380,7 @@ void F3DStarter::SaveScreenshot(const std::string& filenameTemplate, bool minima
{
options.ui.scalar_bar = false;
options.ui.cheatsheet = false;
options.ui.console = false;
options.ui.filename = false;
options.ui.fps = false;
options.ui.metadata = false;
Expand Down Expand Up @@ -1636,4 +1640,5 @@ void F3DStarter::AddCommands()
}
}
});
interactor.addCommand("exit", [&](const std::vector<std::string>&) { interactor.stop(); });
}
1 change: 0 additions & 1 deletion application/main.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@ int main(int argc, char** argv)
{
f3d::log::error("F3D encountered an unexpected exception:");
f3d::log::error(ex.what());
f3d::log::waitForUser();
exit(EXIT_FAILURE);
}

Expand Down
30 changes: 19 additions & 11 deletions application/testing/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@ f3d_test(NAME TestVTU DATA dragon.vtu)
f3d_test(NAME TestVTP DATA cow.vtp)
f3d_test(NAME TestVTR DATA RectGrid2.vtr ARGS --scalar-coloring --roughness=1)
f3d_test(NAME TestVTS DATA bluntfin.vts)
f3d_test(NAME TestVTM DATA mb.vtm)
f3d_test(NAME TestVTM DATA mb.vtm UI)
f3d_test(NAME TestVTK DATA cow.vtk)
f3d_test(NAME TestNRRD DATA beach.nrrd ARGS -s)
f3d_test(NAME TestSPLAT DATA small.splat ARGS -osy --up=-Y --point-sprites-size=1)
Expand Down Expand Up @@ -226,8 +226,8 @@ f3d_test(NAME TestComponentName DATA from_abq.vtu ARGS --scalar-coloring --bar -
f3d_test(NAME TestNoRender DATA dragon.vtu NO_RENDER)
f3d_test(NAME TestNoRenderWithOptions DATA dragon.vtu ARGS --hdri-ambient --axis NO_RENDER) # These options causes issues if not handled correctly
f3d_test(NAME TestNoFile NO_DATA_FORCE_RENDER)
f3d_test(NAME TestMultiFile DATA mb/recursive ARGS --multi-file-mode=all)
f3d_test(NAME TestMultiFileColoring DATA mb/recursive ARGS --multi-file-mode=all -s --coloring-array=Polynomial -b)
f3d_test(NAME TestMultiFile DATA mb/recursive ARGS --multi-file-mode=all UI)
f3d_test(NAME TestMultiFileColoring DATA mb/recursive ARGS --multi-file-mode=all -s --coloring-array=Polynomial -b UI)
f3d_test(NAME TestMultiFileVolume DATA multi ARGS --multi-file-mode=all -vsb --coloring-array=Scalars_)
f3d_test(NAME TestMultiFileColoringTexture DATA mb/recursive/mb_1_0.vtp mb/recursive/mb_2_0.vtp world.obj ARGS --multi-file-mode=all -sb --coloring-array=Normals --comp=1)
f3d_test(NAME TestMultiFilePositionals DATA mb/recursive/mb_0_0.vtu mb/recursive/mb_1_0.vtp ARGS --multi-file-mode=all -s --coloring-array=Polynomial -b)
Expand Down Expand Up @@ -466,7 +466,7 @@ if(VTK_VERSION VERSION_GREATER_EQUAL 9.2.20221220)
f3d_test(NAME TestInvalidHDRI DATA cow.vtp HDRI invalid.png REGEXP "Cannot open HDRI file" NO_BASELINE)

# Use a dummy HDRI for simplicity to test default HDRI
f3d_test(NAME TestHDRIDefault DATA suzanne.ply HDRI dummy.png THRESHOLD 0.11) # Threshold is needed for legacy comparison method for VTK 9.3
f3d_test(NAME TestHDRIDefault DATA suzanne.ply HDRI dummy.png THRESHOLD 0.11 UI) # Threshold is needed for legacy comparison method for VTK 9.3

configure_file("${F3D_SOURCE_DIR}/testing/configs/hdri.json.in" "${CMAKE_BINARY_DIR}/hdri.json")
f3d_test(NAME TestConfigFileHDRI DATA dragon.vtu CONFIG "${CMAKE_BINARY_DIR}/hdri.json" LONG_TIMEOUT)
Expand Down Expand Up @@ -770,18 +770,18 @@ f3d_test(NAME TestInteractionVolumeAfterColoring DATA waveletArrays.vti ARGS INT
f3d_test(NAME TestInteractionVolumeInverse DATA HeadMRVolume.mhd ARGS --camera-position=127.5,-400,127.5 --camera-view-up=0,0,1 INTERACTION) #VI
f3d_test(NAME TestInteractionMultiFileVolume DATA multi ARGS --multi-file-mode=all INTERACTION) #SSVB
f3d_test(NAME TestInteractionPointCloud DATA pointsCloud.vtp ARGS --point-sprites-size=20 INTERACTION) #O
f3d_test(NAME TestInteractionDirectory DATA mb INTERACTION ARGS --scalar-coloring) #Right;Right;Right;Left;Up;
f3d_test(NAME TestInteractionDirectory DATA mb INTERACTION ARGS --scalar-coloring UI) #Right;Right;Right;Left;Up;
f3d_test(NAME TestInteractionDirectoryLoop DATA mb/recursive INTERACTION ARGS --scalar-coloring --filename UI) #Left;Left;Left;Left;Left;
f3d_test(NAME TestInteractionDirectoryEmpty DATA mb INTERACTION NO_DATA_FORCE_RENDER) #Right;Right;Right;
f3d_test(NAME TestInteractionDirectoryEmpty DATA mb INTERACTION NO_DATA_FORCE_RENDER UI) #Right;Right;Right;
f3d_test(NAME TestInteractionDirectoryEmptyVerbose DATA mb ARGS --verbose NO_BASELINE INTERACTION REGEXP "is not a file of a supported file format") #Right;Right;Right;HMCSY
f3d_test(NAME TestInteractionAnimationNotStopped DATA InterpolationTest.glb NO_BASELINE INTERACTION)#Space;
f3d_test(NAME TestInteractionResetCamera DATA dragon.vtu INTERACTION LONG_TIMEOUT)#MouseMovements;Return;
f3d_test(NAME TestInteractionResetCameraWithCameraIndex DATA CameraAnimated.glb ARGS --camera-index=0 INTERACTION)#MouseMovements;Return;
f3d_test(NAME TestInteractionTensorsCycleComp DATA tensors.vti ARGS --scalar-coloring --comp=-2 INTERACTION) #SYYYYYYYYYY
f3d_test(NAME TestInteractionTensorsCycleComp DATA tensors.vti ARGS --scalar-coloring --comp=-2 INTERACTION UI) #SYYYYYYYYYY
f3d_test(NAME TestInteractionCycleScalarsCompCheck DATA dragon.vtu ARGS -b --scalar-coloring --comp=2 INTERACTION) #S
f3d_test(NAME TestInteractionConfigFileNoColorBar DATA multi CONFIG ${F3D_SOURCE_DIR}/testing/configs/complex.json INTERACTION) #Right;Right;Left
f3d_test(NAME TestInteractionConfigFileBindings DATA dragon.vtu CONFIG ${F3D_SOURCE_DIR}/testing/configs/bindings.json INTERACTION UI) #Ctrl+Shift+O;Ctrl+O;Shift+O;O;3
f3d_test(NAME TestInteractionConfigFileMulti DATA multi CONFIG ${F3D_SOURCE_DIR}/testing/configs/complex.json INTERACTION) #SY;Right;XG;Right;N;Right;Right
f3d_test(NAME TestInteractionConfigFileMulti DATA multi CONFIG ${F3D_SOURCE_DIR}/testing/configs/complex.json INTERACTION UI) #SY;Right;XG;Right;N;Right;Right
f3d_test(NAME TestInteractionConfigFileAndCommand DATA multi ARGS -o CONFIG ${F3D_SOURCE_DIR}/testing/configs/complex.json INTERACTION UI) #OX;Right;N;Right;Right;Right
f3d_test(NAME TestInteractionDumpSceneState DATA dragon.vtu NO_BASELINE INTERACTION REGEXP "Camera position: 2.23745,3.83305,507.598")#?
f3d_test(NAME TestInteractionCycleVerbose DATA dragon.vtu ARGS --verbose -s NO_BASELINE INTERACTION REGEXP "Not coloring")#SSSSYC
Expand All @@ -791,7 +791,7 @@ f3d_test(NAME TestInteractionFocalPointPickingDefault DATA dragon.vtu INTERACTIO
f3d_test(NAME TestInteractionFocalPointPickingShift DATA dragon.vtu INTERACTION LONG_TIMEOUT)
f3d_test(NAME TestInteractionFocalPointPickingPoints DATA pointsCloud.vtp INTERACTION)
f3d_test(NAME TestInteractionLightIntensity DATA dragon.vtu INTERACTION LONG_TIMEOUT)
f3d_test(NAME TestInteractionMultiFileColoring DATA mb/recursive ARGS --multi-file-mode=all INTERACTION) #SSSB
f3d_test(NAME TestInteractionMultiFileColoring DATA mb/recursive ARGS --multi-file-mode=all INTERACTION UI) #SSSB
f3d_test(NAME TestInteractionReload DATA dragon.vtu ARGS -e INTERACTION) #Up;
f3d_test(NAME TestInteractionLoadParentDirectory DATA multi/dragon.vtu ARGS --filename INTERACTION UI) #Down;
f3d_test(NAME TestInteractionEmptyLoadParentDirectory INTERACTION NO_BASELINE REGEXP "No files loaded, no rendering performed") #Down;
Expand All @@ -805,6 +805,14 @@ f3d_test(NAME TestInteractionRotateCameraMinus90 DATA f3d.glb INTERACTION)
f3d_test(NAME TestInteractionRotateCamera90 DATA f3d.glb INTERACTION)
f3d_test(NAME TestInteractionPanWithShift DATA f3d.glb INTERACTION) #Shift;LeftMouse;MouseMovements
f3d_test(NAME TestInteractionFileOpen INTERACTION NO_BASELINE ENV CTEST_OPEN_DIALOG_FILE=${F3D_SOURCE_DIR}/testing/data/cow.vtp)
f3d_test(NAME TestInteractionConsoleOpen DATA f3d.glb INTERACTION UI) #Escape
f3d_test(NAME TestInteractionConsoleOpenExit DATA f3d.glb INTERACTION UI) #Escape;exit;Return
f3d_test(NAME TestInteractionConsoleOpenWarningKeyboard DATA f3d.glb ARGS --position=0 INTERACTION UI) #Escape
f3d_test(NAME TestInteractionConsoleOpenWarningClick DATA f3d.glb ARGS --position=0 INTERACTION UI) #Click badge
f3d_test(NAME TestInteractionConsoleToggleGrid DATA f3d.glb INTERACTION UI) #Escape;toggle render.grid.enable;Return;Escape
f3d_test(NAME TestInteractionConsoleInvalidCommand DATA f3d.glb INTERACTION UI) #Escape;foo;Return
f3d_test(NAME TestInteractionConsoleInvalidOption DATA f3d.glb INTERACTION UI) #Escape;toggle foo;Return
f3d_test(NAME TestInteractionConsoleTypingSceneInfo DATA f3d.glb INTERACTION UI) #Escape;e;Escape;printt;BackSpace;_scee;Left;Right;_info;Return

# Progress test
f3d_test(NAME TestProgress DATA cow.vtp ARGS --progress NO_BASELINE)
Expand All @@ -817,7 +825,7 @@ f3d_test(NAME TestInteractionCycleAnimationNoAnimation DATA cow.vtp INTERACTION

f3d_test(NAME TestInteractionDropFiles ARGS -n INTERACTION_CONFIGURE UI)#X;DropEvent cow.vtp;DropEvent dragon.vtu suzanne.stl;
f3d_test(NAME TestInteractionMultiFileDrop ARGS --multi-file-mode=all -e INTERACTION_CONFIGURE) #DropEvent mb_1_0.vtp mb_2_0.vtp
f3d_test(NAME TestInteractionDropSameFiles ARGS -x INTERACTION_CONFIGURE)#DropEvent cow.vtp;#DropEvent dragon.vtu;#DropEvent cow.vtp#DropEvent cow.vtp;
f3d_test(NAME TestInteractionDropSameFiles ARGS -x INTERACTION_CONFIGURE UI) #DropEvent cow.vtp;#DropEvent dragon.vtu;#DropEvent cow.vtp#DropEvent cow.vtp;

# A proper test for this is not possible because of the double quotes
f3d_test(NAME TestInteractionDropFileWithQuotes ARGS -n INTERACTION REGEXP "\"'`Quotes\"'`.stl does not exist" NO_BASELINE)#X;DropEvent "'`Quotes"'`.stl";
Expand Down Expand Up @@ -1062,7 +1070,7 @@ f3d_test(NAME TestRenderingBackendAuto DATA cow.vtp RENDERING_BACKEND auto)
if(UNIX AND NOT APPLE AND VTK_VERSION VERSION_GREATER_EQUAL 9.3.20240914 AND F3D_SANITIZER STREQUAL "none")
if(F3D_TESTING_ENABLE_EGL_TESTS)
f3d_test(NAME TestRenderingBackendEGL DATA cow.vtp RENDERING_BACKEND egl)
f3d_test(NAME TestRenderingBackendEGLCheckClass DATA cow.vtp RENDERING_BACKEND egl ARGS --verbose REGEXP "vtkEGLRenderWindow" NO_BASELINE)
f3d_test(NAME TestRenderingBackendEGLCheckClass DATA cow.vtp RENDERING_BACKEND egl ARGS --verbose REGEXP "vtkF3DEGLRenderWindow" NO_BASELINE)
f3d_test(NAME TestRenderingBackendEGLNoInteractiveVerbose RENDERING_BACKEND egl REGEXP "You are using an offscreen configuration, interactive rendering is disabled" NO_BASELINE NO_OUTPUT)
endif()

Expand Down
1 change: 1 addition & 0 deletions doc/libf3d/OPTIONS.md
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,7 @@ Option|Type<br>Default<br>Trigger|Description|F3D option
:---:|:---:|:---|:---:
ui.scalar_bar|bool<br>false<br>render|Show *scalar bar* of the coloring by data array.|\-\-bar
ui.cheatsheet|bool<br>false<br>render|Show a interactor cheatsheet
ui.console|bool<br>false<br>render|Show the console
ui.filename|bool<br>false<br>render|Display the *filename info content* on top of the window.|\-\-filename
ui.filename_info|string<br>-<br>render|Content of *filename info* to display.
ui.font_file|string<br>optional<br>render|Use the provided FreeType compatible font file to display text.<br>Can be useful to display non-ASCII filenames.|\-\-font-file
Expand Down
6 changes: 6 additions & 0 deletions doc/user/COMMANDS.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,8 @@ eg: `add_files /path/to/dragon.vtu`.

The F3D application provides a few more commands.

`exit`: A specific command to quit the application. No argument.

`load_previous_file_group`: A specific command to load the previous file or file group. No argument.

`load_next_file_group`: A specific command to load the next file or file group. No argument.
Expand Down Expand Up @@ -91,6 +93,10 @@ print_scene_info # Another comment
increase_light_intensity
```

## Console

If F3D is built with `F3D_MODULE_UI` support, pressing <kbd>Esc</kbd> will open the console mode. It's possible to type any command in the input field and pressing <kbd>Enter</kbd> will trigger the command instantly.

## Command syntax

Command syntax is similar to bash, as in they will be split by "token" to be processed.
Expand Down
3 changes: 2 additions & 1 deletion doc/user/INTERACTIONS.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,8 @@ Other hotkeys and interactions are available:

* <kbd>H</kbd>: key to toggle the display of a cheat sheet showing all these hotkeys and their statuses.
* <kbd>?</kbd>: key to print scene description to the terminal.
* <kbd>Esc</kbd>: close the window and quit F3D.
* <kbd>CTRL</kbd> + <kbd>Q</kbd>: close the window and quit F3D.
* <kbd>Esc</kbd>: display/hide the console.
* <kbd>Space</kbd>: play the animation if any.
* <kbd>&larr;</kbd>: load the previous file if any and reset the camera.
* <kbd>&rarr;</kbd>: load the next file if any and reset the camera.
Expand Down
4 changes: 4 additions & 0 deletions library/options.json
Original file line number Diff line number Diff line change
Expand Up @@ -158,6 +158,10 @@
"type": "bool",
"default_value": "false"
},
"console": {
"type": "bool",
"default_value": "false"
},
"dropzone": {
"type": "bool",
"default_value": "false"
Expand Down
7 changes: 0 additions & 7 deletions library/public/log.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@ namespace f3d
* A class to output logs to the standard output.
* It supports different levels, errors, warnings and info, with associated coloring.
* A few static methods exists to control the coloring and the verbosity level
* A waitForUser utility static method exist for windows.
*
*/
class F3D_EXPORT log
Expand Down Expand Up @@ -106,12 +105,6 @@ class F3D_EXPORT log
*/
static void setVerboseLevel(VerboseLevel level, bool forceStdErr = false);

/**
* Wait for user if applicable (eg: win32 output window).
* No effect otherwise.
*/
static void waitForUser();

protected:
//! @cond
static void appendArg(std::stringstream&)
Expand Down
Loading
Loading