How to use TransformToVisual with PlaneProjection present?
I have a child inside a scrollviewer that is offset from it about (10,80) pixels. The code below works OK as long as the firstChild control has no PlaneProjection attached.
Without PlaneProjection, I get resultVector == -16,-79.21875,0,1
With PlaneProjection on firstChild, I get resultVector == -268.247,488.8769,-2322.5,0.9999921
This is not a blocker, since I can compute the offsets before applying any transforms (in which case I can just use matrix[3].XY since there's only translation), however curious to know.
Code: Select all
// get coordinates of a specific point relative to parent
Point pointToTransform = new Point(10, 20);
Matrix4 matrix = container.TransformToVisual(firstChild)
Vector4 resultVector = (new Vector4(pointToTransform.X, pointToTransform.Y, 0, 1) * transformMatrix);
Point result = resultVector.XY;
With PlaneProjection on firstChild, I get resultVector == -268.247,488.8769,-2322.5,0.9999921
This is not a blocker, since I can compute the offsets before applying any transforms (in which case I can just use matrix[3].XY since there's only translation), however curious to know.
-
sfernandez
Site Admin
- Posts: 2984
- Joined:
Re: How to use TransformToVisual with PlaneProjection present?
Hi,
Could you please create a ticket in our bugtracker and attach the xaml+cs so we can debug and investigate this issue?
Thanks.
Could you please create a ticket in our bugtracker and attach the xaml+cs so we can debug and investigate this issue?
Thanks.
Re: How to use TransformToVisual with PlaneProjection present?
Opened http://www.noesisengine.com/bugs/view.php?id=1194
I'm not sure if it's a bug or just me not understanding something matrix-related properly.
Copy-pasting the short summary of the bug here in case it could benefit someone from the forum:
I'm not sure if it's a bug or just me not understanding something matrix-related properly.
Copy-pasting the short summary of the bug here in case it could benefit someone from the forum:
0001194: How to use TransformToVisual with PlaneProjection present?
Description Note: this may not be a bug, but me misunderstanding something.
I have a child inside a container that is offset by some margin (say 93x541 pixels.) The child is being animated. Trying to find that offset using TransformToVisual.
All is Ok until I add a PlaneProjection to the child control, then my computation results are *way* off.
Steps To Reproduce 1. Use default Noesis buttons samples and get the LayoutRoot and StartButton in code
2. Run this code on Start button click:
_startButton.Projection = new PlaneProjection
{
RotationX = 10
};
Matrix4 transformMatrix = _rootGrid.TransformToVisual(_startButton);
Vector4 resultOffset = Vector4.WAxis * transformMatrix;
Actual:
resultOffset == {353.7869,-278.3919,-1860.621,1.000067}
Expected:
resultOffset is something like: {-93.94475,-541.2817,0,1}. This is the result without PlaneProjection.
Then resultOffset.XY is the offset.
What am I missing? Maybe a call to "normalize" the matrix?
Who is online
Users browsing this forum: Ahrefs [Bot] and 11 guests