tradingcube Posted May 19, 2020 Share Posted May 19, 2020 Hello, i'm new houdini, new to vex and not done any programming for a long time (most of the forum sighs) Coming from a 3DS Max background I’m absolutely loving Houdini, and can really see the power VEX can have so trying to focus a good chunk of my learning time to get comfortable with it right from the start. I've been building a very simple point infection model to get familiar with the various bits and pieces. As part of this I’ve been storing point numbers to an array, using this in a solver and each frame more pt number get added. The only way i could see to do this was to take two arrays, combine them and then deduplicate, but this seemed a bit long winded and not very efficient. Searching around Stack overflow I noticed that in Javascript there was a find function and also this exists in VEX so instead have now used that to search the array and add any unique points on-the-fly. I guess my question is whether this is actually the best way to do this? It's little frustrating that find() isn’t listed on the https://www.sidefx.com/docs/houdini/vex/arrays.html page as I’d have probably tried it sooner. Which is why I’m wondering if there is a reason it's not on there? Sorry bit long winded and hope this makes sense These are the two options ive used: using Find() and only writing if not already in the array i[]@pointsArray1 = {0,2,7,8,10}; i[]@pointsArray2 = {0,3,5,7,8,11,15,16,10}; for (int i=0; i<len(i[]@pointsArray2);i++){ if (!(find(i[]@pointsArray1, i[]@pointsArray2[i])>=0)) { push(i[]@pointsArray1,i[]@pointsArray2[i]); } } De duplicating the array post i[]@pointsArray1 = {0,2,7,8,10}; i[]@pointsArray2 = {0,3,5,7,8,11,15,16,10}; i[]@newArray; foreach (int num; i[]@pointsArray1){ for(int i = 0; i<len(i[]@pointsArray2);i++){ if(num == i[]@pointsArray2[i]){ push(i[]@newArray,i[]@pointsArray2[i]); } } } push(i[]@pointsArray1,i[]@pointsArray2); for(int i = 0; i<len(i[]@newArray);i++){ removevalue(i[]@pointsArray1,i[]@newArray[i]); } thanks 1 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.