Closed
Bug 781701
Opened 11 years ago
Closed 9 years ago
rotate3d rotates about wrong diagonal axis when rotating 180deg
Categories
(Core :: CSS Parsing and Computation, defect)
Tracking
()
VERIFIED
FIXED
mozilla34
People
(Reporter: trevdc, Assigned: mattwoodrow)
References
Details
(Keywords: testcase)
Attachments
(2 files)
1.10 KB,
text/html
|
Details | |
4.68 KB,
patch
|
dbaron
:
review+
Sylvestre
:
approval-mozilla-aurora+
lmandel
:
approval-mozilla-beta-
|
Details | Diff | Splinter Review |
User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:17.0) Gecko/17.0 Firefox/17.0 Build ID: 20120809030541 Steps to reproduce: Created a rotation transition using rotate3d, with a negative value as one of the vector coordinates (e.g. -1, 1, 0) to perform a diagonal rotation, using 180deg as the angle. In the attached test case, hover over the circle enclosed in the green box to observe the transition. I could not reproduce this using any other value for the angle. Using 179deg, 181deg, and 3.1415rad as angle values results in the expected behavior. Actual results: The rotation is performed about the opposite axis, as if it is ignoring the negative value and interpreting it as a positive value. e.g. using -1, 1, 0 the rotation is performed about the Northeast/Southwest axis. Expected results: The rotation should be performed about the correct axis, e.g. using -1, 1, 0 the rotation should be performed about the Northwest/Southeast axis.
Reporter | ||
Updated•11 years ago
|
Attachment #650741 -
Attachment mime type: text/plain → text/html
![]() |
||
Comment 1•11 years ago
|
||
Bug 769892 ?
Reporter | ||
Comment 2•11 years ago
|
||
This bug has to do with rotation using the incorrect axis, while that bug has to do with rotation transitioning between angles in the wrong way, so I don't think these two bugs are related.
![]() |
||
Updated•11 years ago
|
Component: Untriaged → Style System (CSS)
Product: Firefox → Core
![]() |
||
Comment 3•11 years ago
|
||
Matt, can you take a look?
Sounds like Matt went up in smoke. Here is a fiddle illustrating the issue. http://jsfiddle.net/vuyhexqv/
Assignee | ||
Comment 5•9 years ago
|
||
Oops, looks like this slipped through the cracks. Looks like we're not implementing this bit of the spec [1]: "For interpolations with the primitive rotate3d(), the direction vectors of the transform functions get normalized first. If the normalized vectors are equal, the rotation angle gets interpolated numerically. Otherwise the transform functions get converted into 4x4 matrices first and interpolated as defined in section Interpolation of Matrices afterwards. " Patch incoming. [1] http://www.w3.org/TR/css3-transforms/#interpolation-of-transform-functions
Assignee: nobody → matt.woodrow
Assignee | ||
Comment 6•9 years ago
|
||
Attachment #8474327 -
Flags: review?(dbaron)
Comment 7•9 years ago
|
||
Are the changes to nsStyleTransformMatrix just cleanup, or is there somthing substantive in there?
Status: UNCONFIRMED → NEW
Ever confirmed: true
Flags: needinfo?(matt.woodrow)
Comment 9•9 years ago
|
||
Comment on attachment 8474327 [details] [diff] [review] Interpolate rotate3d if the vectors match >+ arr = StyleAnimationValue::AppendTransformFunction(tfunc, resultTail); Please comment here that you skipped the AppendTransformFunction above for all rotate3d cases, so you need to do it now. >+ arr->Item(1).SetFloatValue(vector1.x, eCSSUnit_Number); >+ arr->Item(2).SetFloatValue(vector1.y, eCSSUnit_Number); >+ arr->Item(3).SetFloatValue(vector1.z, eCSSUnit_Number); >+ >+ AddCSSValueAngle(aCoeff1, a1->Item(4), aCoeff2, a2->Item(4), >+ arr->Item(4)); >+ break; >+ } "// FALL THROUGH" comment here. In all caps. >+ } r=dbaron with that
Attachment #8474327 -
Flags: review?(dbaron) → review+
Assignee | ||
Comment 10•9 years ago
|
||
https://hg.mozilla.org/integration/mozilla-inbound/rev/309b1499160d
Assignee | ||
Updated•9 years ago
|
status-firefox31:
--- → affected
status-firefox32:
--- → affected
status-firefox33:
--- → affected
status-firefox34:
--- → affected
Comment 11•9 years ago
|
||
https://hg.mozilla.org/mozilla-central/rev/309b1499160d
Status: NEW → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla34
Assignee | ||
Comment 12•9 years ago
|
||
Comment on attachment 8474327 [details] [diff] [review] Interpolate rotate3d if the vectors match Approval Request Comment [Feature/regressing bug #]: Not a regression, this has existed since 3d transforms was first added. We're just not implementing the 3d transforms spec correctly and it would be nice to get it fixed. [User impact if declined]: Incorrect animation/transition behaviour for some values of rotate3d. [Describe test coverage new/current, TBPL]: Tested manually. [Risks and why]: Very low risk, just a small change to the way we interpolate value for rotate3d. [String/UUID change made/needed]: None.
Attachment #8474327 -
Flags: approval-mozilla-beta?
Attachment #8474327 -
Flags: approval-mozilla-aurora?
Updated•9 years ago
|
Attachment #8474327 -
Flags: approval-mozilla-aurora? → approval-mozilla-aurora+
Flags: qe-verify+
Comment 14•9 years ago
|
||
Matt - Even though this is a relatively small fix, given the amount of work that needs to land today, I'm reluctant to take anything that isn't required. As this has existed for quite a while, I think it falls in that boat. Are you OK with waiting until 33 to get this fix out?
Flags: needinfo?(matt.woodrow)
Comment 16•9 years ago
|
||
Comment on attachment 8474327 [details] [diff] [review] Interpolate rotate3d if the vectors match Beta- (see comment 14 and comment 15). This has already landed in 33.
Attachment #8474327 -
Flags: approval-mozilla-beta? → approval-mozilla-beta-
Comment 17•9 years ago
|
||
I tested this issue on old Nightly 34.0a1 (2014-08-20) and it`s not fixed there, Aurora 33.0a2 (2014-08-20) looks fine also verified that using Firefox 33 beta 1 the issue looks fixed. Latest Nightly 35.0a1 and Aurora 34.0a2 still have this issue so, based on comment 14, will this fix be planed to land in 34 and 35 as well if so we should track it for 35?
status-firefox35:
--- → ?
Flags: needinfo?(matt.woodrow)
Assignee | ||
Comment 18•9 years ago
|
||
This has landed in both 34 and 35, so it should be fixed there.
Flags: needinfo?(matt.woodrow)
Updated•9 years ago
|
Comment 19•9 years ago
|
||
Just tested on Windows 7 64bit, Ubuntu 14.04 32bit and Mac OS X 10.10 using latest Nightly 35.0a1 (2014-09-14) and latest Aurora 34.0a2 (2014-09-14). The issues seems fixed only on Windows and Mac, it can still be reproduced on Ubuntu using Firefox 34 and 35. David, can you take a look at this since Matt is on PTO? Or if you could point to someone who can.
Flags: needinfo?(dbaron)
Comment 20•9 years ago
|
||
Floating point issues seem most likely; transferring ni? back to matt, though.
Flags: needinfo?(dbaron) → needinfo?(matt.woodrow)
Comment 21•9 years ago
|
||
Could you file a separate bug on the remaining issue, though?
Flags: needinfo?(bogdan.maris)
Comment 22•9 years ago
|
||
(In reply to David Baron [:dbaron] (UTC-7) (needinfo? for questions) from comment #21) > Could you file a separate bug on the remaining issue, though? Seems that Alice already logged a bug on that so the remaining issue will be tracked there. I will close this issue as verified fixed.
Status: RESOLVED → VERIFIED
Flags: needinfo?(bogdan.maris)
Assignee | ||
Updated•8 years ago
|
Flags: needinfo?(matt.woodrow)
You need to log in
before you can comment on or make changes to this bug.
Description
•