Euclidean transforms output Null by default?

Just something for me to understand, because it has tripped me up so many times. How come all the Euclidean transforms like Orient, Move, etc. output Null for the Geometry if no input Geometry is given, rather then just empty?

Empty is actually so much easier to spot, because of the orange wire and subsequent components being orange as well usually rather than one that is red, usually much further down.

I find it very strange that Null is actually so hard to spot, no wire change, no color change of components usually until you hit a component from a plugin that turns red and refuses to work with Null.

I kind of understand why it is null, because the component DOES run even with no geometry input, but I still would prefer it to be more obvious or actually work differently in that case.

For me it would already be a great help if a wire contains a null to turn red. That would make sense to me if empty is orange. Then you don’t have to hunt down the origin of a null by having to follow all the wires back. For large gh files that would really help.

2 Likes

Agreed, Empty would have been preferable to Null. I’ll need to make sure that that becomes the default behaviour in G2. Good timing actually, I’m about to start writing the Transform components.

6 Likes

When you say you have to “start writing” the components… does that mean you have to re-write all the components for GH2? If that is the case, then it would be understandable why GH2 is taking quite some time.

i always cheer up when i see that something is being rewritten :smiley:

1 Like

Yes, but usually not in a super complicated way. GH2 is C# only, and there was a lot of VB in GH1, so all of that code has to be converted. There are also significant differences in the api, so just copy-pasting code isn’t quite possible most of the time.

On top of all that, we’ve also written style guides for both coding and naming/tooltips, so even when a component does exactly the same as before, it’ll probably still be a little bit different.

And of course icons now are vector based so they work on different scales and on different background colours, so I have to draw all new ones.

Here’s a peek at the conic section panel.

28 Likes

Wow. Reposting this is in the GH2 thread for everyone to get excited about! :slight_smile:

1 Like

Hmm bad news. GH2 behaves in exactly the same way by default. I’ll need to figure out where (other than Transform components) this might be an issue and what the lowest level is where a change can be implemented.

If anyone can figure it out then it’s you :wink:

But Null is not bad per se. It’s bad that it is not visible that and where it occurs. There is always ways to get rid of the Nulls. I have a user object I use for that called “Cleanup Nulls”. It removes all the nulls, if a branch only contains nulls it removes the branch.

Cleanup Nulls.ghcluster (5.3 KB)

2 Likes

ps: small request as I just saw it in the screenshot above: When redesigning the icon for Dispatch, can you make it so the red arrow corresponds to false and the black arrow to true. Right now output A is true and B is false, but the icon next to it suggests otherwise. Thanks

2 Likes

I’m not sure the Dispatch component will make a come-back in GH2 yet. There are a lot of components which did things in ways that I thought were handled better by later components.

Here’s Sift in GH2 with the Remove Nulls modifier applied to both outputs to get (almost) the same result as Dispatch. I feel the added complexity involved with removing the nulls (rarely a good idea anyway imo) is offset by the fact there’s just fewer components that all do almost the same thing.

2 Likes

Agreed. I have to say even after all these years it’s exactly that bunch of components like dispatch, sift, etc. that I can never remember what they do and always have to place them down and play around to be reminded. So good call on simplification.

Interesting to study the screenshot a bit. I am intrigued by the output in the panel where you merge them and it actually does what I think makes more sense: it puts it in 2 branches. Only thing confusing me is why they both have path {0}? :thinking:

So almost like, if now you would do:

Panels in G2 don’t show the same as they did in G1:

-wim

Do you think that Sift could be called upon by typing “Dispatch”, it may be a good idea to allow legacy GH1 names to be used in GH2 when searching for components. At least, it may ease the transition initially.

I got to say, I love the UI design :heart:
Will there also be a GH2 Darkmode? :innocent:

1 Like

-wim

9 Likes

Okay. But in David’s screenshot, isn’t that ONE panel he has connected after the Sift? So that’s not one panel showing 2 branches? Or rather, normally it would just create one flat list if you put both outputs into 1 panel.

image

Anyway, I think it will all makes sense once we play with it. Needless to say, I can’t wait! Looks awesome :sunglasses:

Looks like two panels in this image:

Both showing branch {0} makes sense to me.

Sure, there it makes sense. But that’s not David’s screenshot, it’s the one by Wim. I actually put a section of the screenshot under my statement!?

image

Guess I replied before you did that? I see your point.

1 Like

Hi -

Yes - it stopped doing that in G2 to provide more information:
image

image

-wim

1 Like