09-20-2023, 09:29 AM
You are welcome. And don't worry about sounding harsh or rude, no offense taken.
1- You seem to be using a version prior to 8.0.0. This version brought a lot of useful features that you might be interested in.
https://www.youtube.com/watch?v=teq2_slOuKo
The folder structure I based my answer on started being used at 8.0.0.
1-b Fluffy Underware is the name under which the creator of Curvy Splines (know at the time simply as Curvy) was publishing his assets. Here is hit github: https://github.com/FluffyUnderware
The creator's name is Jake. In 2017 he couldn't keep supporting Curvy for various reasons. I, a customer of his at the time, bought Curvy from him and kept developing it/publishing it. I publish under the name of ToolBuddy.
https://toolbuddy.net/
DevTools was not part of the deal. Jake kept its intellectual property, planned to make it open source, and gave me permission to use it for Curvy.
To not break any existing project using Curvy, I chose to keep using the FluffyUnderware namespace, with Jake's approval. Even classes that I added to Curvy used the FluffyUnderware namespace, to keep things coherent. I do use the ToolBuddy namespace in my other assets, and in some sections of the code in Curvy Splines, sections that are easily distinguishable from the old code. This gave birth to the ToolBuddy.Pooling.* namespaces in Curvy Splines 8.0.0.
2- In newer versions, there are more usages for those methods.
Thanks for telling me about Concat().ToArray(). I was aware of its existence, but I am unsure about its performance compared to a Resize() then Copy() approach used in the AddRange() extension method. LINQ methods, as you probably already know, tend to do small allocations at each call. I have to investigate this further to make an opinion.
3- I believe that AddRange also leads to the creation of only one array (in Resize), which is the same as for Concat.ToArray. I will have to profile to verify my belief. But in the specific case of the
Selection.objects = cur.AddRange(gl.ToArray());
, yes you have a point, since it avoids the call to gl.ToArray().
I will try to get rid of the AddRange (and possibly Add) extension methods in the future. In general, I tend to remove code from DevTools when I see the opportunity. But, I try to limit the effort and time I put into improving DevTools (and other third party software), since most of the time improving Curvy Spline's code yields better results.
4- This is a VS behaviour that bothers me too. Sure, automatically adding using statements to your code can save a second here and there, but I prefer that VS suggests to me the addition of the using statement, and I have to validate it to be done. Avoids a lot of issues. I kid you not, yad the same issue only yesterday with NavMeshBuilder, which exists in two namespaces:
https://docs.unity3d.com/ScriptReference...ilder.html
5- I agree. It is now removed thanks to your remark. This method was not used in Curvy Splines, so removing it was a no brainier. I did the same with a couple other methods. This should be part of the next update.
Once again, absolutely no offense taken, don't worry at all.
Thanks for your remarks and improvement suggestions, today and in the past.
Have a great day
1- You seem to be using a version prior to 8.0.0. This version brought a lot of useful features that you might be interested in.
https://www.youtube.com/watch?v=teq2_slOuKo
The folder structure I based my answer on started being used at 8.0.0.
1-b Fluffy Underware is the name under which the creator of Curvy Splines (know at the time simply as Curvy) was publishing his assets. Here is hit github: https://github.com/FluffyUnderware
The creator's name is Jake. In 2017 he couldn't keep supporting Curvy for various reasons. I, a customer of his at the time, bought Curvy from him and kept developing it/publishing it. I publish under the name of ToolBuddy.
https://toolbuddy.net/
DevTools was not part of the deal. Jake kept its intellectual property, planned to make it open source, and gave me permission to use it for Curvy.
To not break any existing project using Curvy, I chose to keep using the FluffyUnderware namespace, with Jake's approval. Even classes that I added to Curvy used the FluffyUnderware namespace, to keep things coherent. I do use the ToolBuddy namespace in my other assets, and in some sections of the code in Curvy Splines, sections that are easily distinguishable from the old code. This gave birth to the ToolBuddy.Pooling.* namespaces in Curvy Splines 8.0.0.
2- In newer versions, there are more usages for those methods.
Thanks for telling me about Concat().ToArray(). I was aware of its existence, but I am unsure about its performance compared to a Resize() then Copy() approach used in the AddRange() extension method. LINQ methods, as you probably already know, tend to do small allocations at each call. I have to investigate this further to make an opinion.
3- I believe that AddRange also leads to the creation of only one array (in Resize), which is the same as for Concat.ToArray. I will have to profile to verify my belief. But in the specific case of the
Selection.objects = cur.AddRange(gl.ToArray());
, yes you have a point, since it avoids the call to gl.ToArray().
I will try to get rid of the AddRange (and possibly Add) extension methods in the future. In general, I tend to remove code from DevTools when I see the opportunity. But, I try to limit the effort and time I put into improving DevTools (and other third party software), since most of the time improving Curvy Spline's code yields better results.
4- This is a VS behaviour that bothers me too. Sure, automatically adding using statements to your code can save a second here and there, but I prefer that VS suggests to me the addition of the using statement, and I have to validate it to be done. Avoids a lot of issues. I kid you not, yad the same issue only yesterday with NavMeshBuilder, which exists in two namespaces:
https://docs.unity3d.com/ScriptReference...ilder.html
5- I agree. It is now removed thanks to your remark. This method was not used in Curvy Splines, so removing it was a no brainier. I did the same with a couple other methods. This should be part of the next update.
Once again, absolutely no offense taken, don't worry at all.
Thanks for your remarks and improvement suggestions, today and in the past.
Have a great day
Available for freelance work, feel free to reach out: toolbuddy.net
Please consider leaving a review for Curvy, this helps immensely. Thank you.
Please consider leaving a review for Curvy, this helps immensely. Thank you.

