C++
Coordinate System
Custom Coordinate
The default coordinate system in Eyedid C++ SDK is based on the camera coordinate system.
To use it more easily, you may need to use display coordinate system where the user is interacting with.
You can achieve it with CoordConverterV2
, which does transform/translation of 2D points.
Instead of creating CoordConverterV2
with manually written transform/translation matrix, you can use a helper functions with your display's size in both pixels and millimeters.
const auto main_display = eyedid::getDisplayLists()[0];
// This approximates as if your camera is located at the top-center of the display
gaze_tracker.converter() =
eyedid::makeDefaultCameraToDisplayConverter<float>(
main_display.widthPx, main_display.heightPx,
main_display.widthMm, main_display.heightMm);
Once you set a custom coordinate converter, all setters/getters in Eyedid SDK will work based on the new coordinate system.
You can use other helper functions.