Jump to content
thisleenoble

Isometric/Cube grid plane switching

Recommended Posts

I have previously filed an overlapping feature request but after consideration I actually think this is a bug in the Isometric/Cube grid implementation which if it were to be fixed would do wonders for the usability of this amazing feature. The attached video demonstrates.

1) Draw three identical squares int he flat view.

2) Move each square in turn to the Top, Side and Front planes, bring them together and you get a facsimile of a cube.

3) Now move one of those faces to a different plane by highlighting and clicking "Fit to plane" in the Isometric studio palette and you'll find the apparent dimensions change.

This action should retain the intrinsic dimensions of the original flat shape, enabling the user to flip objects between the planes. Returning them to the 2D view would also be desirable as the application "knows" the original dimensions it seems like this should be possible.

 

Share this post


Link to post
Share on other sites

This is not a 3D feature, it simply causes the 2D shapes to be formed in a way that simulates their being on a particular plane.

The individual layers (shapes) do not know anything about the plane they were created on.  When you select a different plane, all shapes are interpreted as being on that plane, so it doesn't actually know what to convert from.

Share this post


Link to post
Share on other sites

To anthropomorphise the shapes a little bit more, the shapes must have some knowledge of their dimensions were they to be presented in two dimensions.

Taking a basic square and moving it onto to top plane it is skewed and rotated to fit the plane but the bounding box is also presented "in-plane". If you click the "Rotate clockwise in plane" button the dimensions W and H are effectively transposed so the intrinsic dimensions are maintained.

Perhaps flipping a shape from one plane to another in the way I described will never be how it's supposed to work, although I'd argue that it makes complete sense and it misses out the intermediate stage of returning the shape to the flat view which would be a more convoluted way to migrate shapes from one plane to another. Even if the shapes don't in themselves retain the flat dimensions, they have to be calculable from the apparent dimensions, angle, skew, plane and grid settings.

Share this post


Link to post
Share on other sites

Tried to recreate what you did.

My cube will happily switch to other planes and reform to make a perfect cube.

So what did I / you do differently?

2079507173_AffinityIsoCube.gif.4e1dc350b53ab528b5a6343176e439f0.gif


Win7 Ultimate x64   |   i5-3570K @ 3.4GHz   |   16 GB RAM   |   120 GB SSD   |   nVidia GTX 660 Ti   |   Huion 1060 Plus

How I make GIFs >>> ScreenToGIF (Windows only, Open Source, Portable, ~600kB)

Share this post


Link to post
Share on other sites

Eep! Yep that's the difference!

This is surely a bug.

The original "Fit to Plane" correctly generates a pair of values for Rotation and Skew. It is as if that isn't being removed / zeroed before the new values are calculated.


Win7 Ultimate x64   |   i5-3570K @ 3.4GHz   |   16 GB RAM   |   120 GB SSD   |   nVidia GTX 660 Ti   |   Huion 1060 Plus

How I make GIFs >>> ScreenToGIF (Windows only, Open Source, Portable, ~600kB)

Share this post


Link to post
Share on other sites

This is not a bug.

As has been stated - fit to plane just applies a transform to take a 2D object to axonometric plane perspective.  The object does not retain any knowledge of the plane you used.  So, if you do Fit To Plane again, it'll just apply another transform as if the object was still 2D.

 

I will add a method in the future to take an object from plane to 2D.  But - it is up to the user to chose the correct current plane in order to apply the correct transform.  The scaling of the object depends on you choosing the plane to which it visually belongs.

 

This is not a 3D app.  The axonometric presentation is just a transform applied to 2D shapes.  The transformed shapes do not acquire any new state - it is just a skew, scale and rotation.

 


SerifLabs team - Affinity Developer
  • Software engineer  -  Photographer  -  Guitarist  -  Philosopher
  • iMac 27" Retina 5K (Late 2015), 4.0GHz i7, AMD Radeon R9 M395
  • MacBook (Early 2015), 1.3GHz Core M, Intel HD 5300
  • iPad Pro 10.5", 256GB

Share this post


Link to post
Share on other sites
3 minutes ago, Ben said:

I will add a method in the future to take an object from plane to 2D

This would be brilliant. I hope it can make it into a point release. Thanks.

Share this post


Link to post
Share on other sites

@Ben thanks for the clarification.

The addition of a Remove from Plane will make a big difference.

What would be the downside of tracking that an object had been projected onto a plane?

I am not suggesting making a 3D app, but if it was tracked then…

  • Reselecting an object could show which plane it was in.
  • Would allow further editing without explicitly turning on Edit in Plane.
  • Would allow Remove from Plane, without the user needing to identify and select the starting plane.
  • Would allow changing from one plane to another by simply choosing a new plane (the original transform would be removed, and the new one applied).

Win7 Ultimate x64   |   i5-3570K @ 3.4GHz   |   16 GB RAM   |   120 GB SSD   |   nVidia GTX 660 Ti   |   Huion 1060 Plus

How I make GIFs >>> ScreenToGIF (Windows only, Open Source, Portable, ~600kB)

Share this post


Link to post
Share on other sites

What exactly would it track?  The last plane that was active when any change was made?  The plane that was active when an object is first created?  What about when you start drawing with the pen tool, then switch planes while continuing a poly?

 

What if I change the grid setup, by rotating the grid cube for example?

 

While it is decisive when you use Fit To Plane, the notion of the current plane is purely visual and subjective.


SerifLabs team - Affinity Developer
  • Software engineer  -  Photographer  -  Guitarist  -  Philosopher
  • iMac 27" Retina 5K (Late 2015), 4.0GHz i7, AMD Radeon R9 M395
  • MacBook (Early 2015), 1.3GHz Core M, Intel HD 5300
  • iPad Pro 10.5", 256GB

Share this post


Link to post
Share on other sites

I am being too simplistic and assuming at every shape sits only in one plane. But obviously a shape may wrap around a corner, so there is no one plane to track.


Win7 Ultimate x64   |   i5-3570K @ 3.4GHz   |   16 GB RAM   |   120 GB SSD   |   nVidia GTX 660 Ti   |   Huion 1060 Plus

How I make GIFs >>> ScreenToGIF (Windows only, Open Source, Portable, ~600kB)

Share this post


Link to post
Share on other sites

I had thought about this quite a bit.  I decided, after looking at how other apps handle this kind of thing, that a pure transform approach was neater.  The idea that an object lives in its own virtual coordinate system makes everything very complicated.


SerifLabs team - Affinity Developer
  • Software engineer  -  Photographer  -  Guitarist  -  Philosopher
  • iMac 27" Retina 5K (Late 2015), 4.0GHz i7, AMD Radeon R9 M395
  • MacBook (Early 2015), 1.3GHz Core M, Intel HD 5300
  • iPad Pro 10.5", 256GB

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×