You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add in-app log console; stop launching a separate terminal window (#4)
* Add in-app log console; stop launching a separate terminal window
Launching the app from a GUI no longer opens a separate console window
(CMD on Windows, Terminal on macOS). All logging now appears in a docked
"Log" console along the bottom of the app window, and still prints to the
terminal when the app is launched from one.
Logging
- New LogConsole (include/Log.h, src/Log.cpp): tees std::cout/std::cerr so
every line goes to both the original stream (terminal) and a bounded,
thread-safe ring buffer rendered as the bottom panel. No changes needed
at the ~54 existing log call sites. The render path snapshots under the
lock and draws unlocked, so a worker thread logging never blocks the GUI
and there is no re-entrancy path back into the lock.
No separate console on launch
- Windows: built as a GUI-subsystem executable (WIN32_EXECUTABLE +
/ENTRY:mainCRTStartup to keep int main). AttachConsole(ATTACH_PARENT_PROCESS)
reattaches stdio when started from a terminal so logs still print there.
- macOS: CMake now builds an ir-tracking-app.app bundle (Info.plist.in +
icon), so double-clicking in Finder does not spawn Terminal. release.yml's
macOS packaging consumes the CMake bundle (dylibbundler + PlistBuddy
version stamp) instead of hand-assembling it.
macOS data directory
- A Finder-launched .app has working directory "/", which broke the relative
"Tools" folder and CSV paths. On macOS these now live under
~/Library/Application Support/IR Tracking App/ regardless of launch method;
Windows and Linux keep their current working-directory behavior. The data
directory is logged at startup.
Layout
- Default window grown to 1060x900; IR/Depth monitors lifted above the log
console and clamped so they never render off the top on a short window.
Tracker fixes (from code review)
- UdpThreadFunction: GetToolTransform() returns 8 floats, so copying
begin()+3..end() wrote 5 floats into data.quaternion[4] (out-of-bounds).
Copy exactly the 4 quaternion components.
- MIN_SPHERES 4 -> 3 to match the tracker, which supports 3-sphere tools in
both AddTool and CalibrateTool. The old value rejected valid 3-sphere
manual/ROM definitions and 3-sphere calibration results.
* Update ViewerWindow.cpp
> Note: on macOS, tool definitions (`Tools/`) and recorded CSV files are stored
74
+
> under `~/Library/Application Support/IR Tracking App/` regardless of how the
75
+
> app is launched (the data directory is also printed to the log console at
76
+
> startup). On Windows and Linux these are read/written relative to the current
77
+
> working directory, as before.
57
78
## RealSense Camera Modification: Adding a Light Diffuser
58
79
59
80
The laser projector of the RealSense camera emits a sharp, focused IR dot pattern. While this is generally beneficial for depth sensing, it is not ideal for doing thresholding on IR stream to find retroreflective surfaces.
0 commit comments