View Issue Details

IDProjectCategoryView StatusLast Update
0002089NoesisGUIC++ SDKpublic2021-09-02 18:02
Reporterkrupitskas Assigned Tohcpizzi  
PrioritynormalSeverityblockReproducibilityalways
Status resolvedResolutionfixed 
Product Version3.1 
Target Version3.1.1Fixed in Version3.1.1 
Summary0002089: view->SetProjectionMatrix() not affect hit test functionality
DescriptionWe use 3.0, but still 3.1 also has this bug.
We are using textblocks as 3d elements in our world and we need to be able to select them, but it's not possible right now.
I've created reproducible scenario.
Open IntegrationGLUT example, go to

static void DisplayFunc(void)

add this code in the beginning

    const auto perspective = Noesis::Matrix4::PerspectiveFov(90.0f, float(glutGet(GLUT_WINDOW_WIDTH)) / float(glutGet(GLUT_WINDOW_HEIGHT)), 0.01f);
    const auto viewport = Noesis::Matrix4::Viewport(float(glutGet(GLUT_WINDOW_WIDTH)), float(glutGet(GLUT_WINDOW_HEIGHT)));
    const auto offset = Noesis::Transform3::Trans(0.0f, 0.0f, 500.0f).ToMatrix4();

    const auto prod = offset * perspective * viewport;

    _view->SetProjectionMatrix(prod);

You will see that layout moved, but when you will try to click on button, it will be unsuccessful, because hit test still works in old projection matrix in 2D. Just try to click on this imaginable 2D position without transformations.
Steps To Reproduce1. Open IntegrationGLUT
2. Add my code
3. See incorrect behaviour

Correct behaviour is:
Possibility to pass correct hit test at the any position in the world, based on provided matrix
TagsC++, Hittest, matrix
PlatformAny

Activities

hcpizzi

hcpizzi

2021-09-02 18:02

developer   ~0007401

Hit testing with arbitrary projection matrices has been fixed.

Issue History

Date Modified Username Field Change
2021-08-24 09:32 krupitskas New Issue
2021-08-24 09:32 krupitskas Tag Attached: C++
2021-08-24 09:32 krupitskas Tag Attached: Hittest
2021-08-24 09:32 krupitskas Tag Attached: matrix
2021-08-24 10:31 sfernandez Assigned To => hcpizzi
2021-08-24 10:31 sfernandez Status new => assigned
2021-08-24 10:31 sfernandez Target Version => 3.1.1
2021-09-02 18:02 hcpizzi Status assigned => resolved
2021-09-02 18:02 hcpizzi Resolution open => fixed
2021-09-02 18:02 hcpizzi Fixed in Version => 3.1.1
2021-09-02 18:02 hcpizzi Note Added: 0007401