Thank you everyone for the assistance. The resample section is part of a larger tool that uses existing geometry and places it along a spline. The art department creates the pipes that will be eventually used for this tool. In the image below, it goes through the various steps of creating the resample section. We tried using the 'Curve Solver' and it didn't translate well to Unreal. It could also be a step we are missing too.
The orange box copies various geometry on the points using this setup.
https://www.sidefx.com/docs/houdini/copy/copytopoints.html [
www.sidefx.com]
The green box network takes each pipe that is created and calculates the length of the pipe. This is only 1 or 3 since our pipes are a set length. The pink colored nodes is a Sort node that sorts the point order 'Along Vector' using the curve direction 'N'. the only points that are left is a start point of each pipe length.
The purple box creates a 'point array' from the pipe lengths and then a sum of those lengths. This is used to create the distance between the points.
The blue box recalculates the primitives that the points will be applied. All this data is calculated in the 'create_points_based_on_geometry_length'.
Since the length of the original primitive is either shorter or longer than the pipes that are recopied onto the points. A 'bend' node using 'Length Scale' and setting a 'Capture Origin' and 'Capture Direction' at the beginning of each primitive spline. This happens at another point in the tool and is not shown in the image below.
Overall, it is fast, responsive and it enables the Level Artists to dress scenes quickly. On and off it took a little over a month to finish the tool. Requirements were to create a tool that takes existing geometry and place it along a spline.
The 'Corner Pipes' also use existing geometry and the bend is calculated with a Bend deformer, which is calculated in a different branch. The 'Capture Direction' is calculated based on an angle between the current point, previous point, and next point. Which is then calculated by Projecting the V on U.
https://gamedev.stackexchange.com/questions/70252/how-can-i-project-a-vector-on-another-vector [
gamedev.stackexchange.com]
Procedural geometry doesn't optimise well in Unreal, this is why we went with this approach. Once I clean up the network, and get approval I will post up the hip file.