kottore / away3d

Automatically exported from code.google.com/p/away3d
0 stars 0 forks source link

Clipping with scaling bug #53

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
What steps will reproduce the problem?
1. Create an Away3D view in a child movieclip
2. Scale the movieclip
3. Vary the window size.

What is the expected output? What do you see instead?
Clipping edges of the Away3D view are not being calculated correctly. 
Parts of the view will be cut off or even disappear.

What version of the product are you using? On what operating system?
Away3D 2.4 (and trunk as of 8 Nov).
CS3 IDE.
XP SR3.

Please provide any additional information below.
Example TestClippingAway24.fla and .swf are attached showing the problem.

The problem seems to have been introduced with a change to Clipping.as.  If
you replace a certain section in Clipping.as to the version that was in
2.3.3 then the clipping problem disappears.  Both fragments follow.

From version 2.4.0, line 412 (causes clipping problem):
if (_minX > _miX)
                _clippingClone.minX = _minX;
            else
                _clippingClone.minX = _miX;

            if (_maxX < _maX)
                _clippingClone.maxX = _maxX;
            else
                _clippingClone.maxX = _maX;

            if (_minY > _miY)
                _clippingClone.minY = _minY;
            else
                _clippingClone.minY = _miY;

            if (_maxY < _maY)
                _clippingClone.maxY = _maxY;
            else
                _clippingClone.maxY = _maY;

From verion 2.3.3, line 381 (eliminates clipping problem):
    if (minX == -Infinity)
                _clippingClone.minX = _miX;
            else
                _clippingClone.minX = _minX;

            if (maxX == Infinity)
                _clippingClone.maxX = _maX;
            else
                _clippingClone.maxX = _maxX;

            if (minY == -Infinity)
                _clippingClone.minY = _miY;
            else
                _clippingClone.minY = _minY;

            if (maxY == Infinity)
                _clippingClone.maxY = _maY;
            else
                _clippingClone.maxY = _maxY;

Original issue reported on code.google.com by ralph%sa...@gtempaccount.com on 11 Aug 2009 at 9:39

Attachments:

GoogleCodeExporter commented 8 years ago
fixed in revision r1647 & r1653 

Original comment by rob.bate...@gmail.com on 25 Aug 2009 at 9:54