Search the Community
Showing results for tags 'struct'.
-
Hi, I was wondering if could be possible to define a struct in the outer code of the snippet and export this data for each class' items of a geometry (per point, prims, etc...)? Below is an example of a Wrangle running over Points with the "outer code" from wrangle/attribvop/snippet exposed as a parameter VEXpression: myStruct example = {someRandomNumber, someRandomVector, ...}; // How to export "example" for each point? Outer Code: struct myStruct { float someFloat; vector someVector; // and some other variables } Is it even possible? Where Houdini could store those pieces of information? The spreadsheet could only represent default data types right? Am I missing something? Thank you!
-
Hello, I'm a newbie with vex and I'm trying to create an array of structs. In my wrangle node I defined the struct in the outer code section as suggested here my struct looks like this: struct node { int pt; int nbrs[ ]; } In my code I later declare node nd; node array[ ]; I manage to initialise the nd variable normally. Then I tried the following int pt = nd.pt; //works fine int nbrs[] = nd.nbrs; //works fine array[0] = nd; //seems to work fine pt = array[0].pt; //nope nd = array[0]; //nope By doesn't work I mean that the node turns red saying the following Error The sub-network output operator failed to cook: /obj/new_version/tree/growing_alg/find_neighbour/outer_code/attribvop1 Warning: Errors or warnings encountered during VEX compile: /obj/new_version/tree/growing_alg/find_neighbour/outer_code/attribvop1: Internal compiler error. (15,1). Errors or warnings encountered during VEX compile: /obj/new_version/tree/growing_alg/find_neighbour/outer_code/attribvop1: Internal compiler error. (15,1). Error: Vex error: /obj/new_version/tree/growing_alg/find_neighbour/outer_code/attribvop1: Internal compiler error. (15,1) Failed to resolve VEX code op:/obj/new_version/tree/growing_alg/find_neighbour/outer_code/attribvop1 Unable to load shader 'op:/obj/new_version/tree/growing_alg/find_neighbour/outer_code/attribvop1'. Warning Errors or warnings encountered during VEX compile: /obj/new_version/tree/growing_alg/find_neighbour/outer_code/attribvop1: Internal compiler error. (15,1). Warning Errors or warnings encountered during VEX compile: /obj/new_version/tree/growing_alg/find_neighbour/outer_code/attribvop1: Internal compiler error. (15,1). Warning Vex error: /obj/new_version/tree/growing_alg/find_neighbour/outer_code/attribvop1: Internal compiler error. (15,1) Failed to resolve VEX code op:/obj/new_version/tree/growing_alg/find_neighbour/outer_code/attribvop1 Unable to load shader 'op:/obj/new_version/tree/growing_alg/find_neighbour/outer_code/attribvop1' Any ideas? Thank you Marta
-
Hi. Am i right, saying that current (H14) vex struct implementation doesn't allow default values initialization? C-style initialization won't work. struct S{ S(): myval(0) {} int myval; } I must be wanting to much If only we can get this, wonderful world of OOP will open its doors I found today, that default argument values are not supported for user-defined vex functions!? This is also very sad
-
Hi! I'm trying to organize some of my vex shaders. And trying to use struct for that. But this kind of code crashes my mantra: struct RayInfo { float clr; } surface structVar(){ RayInfo ray = { 0.0 }; if( ptransform("space:world", P )[2] < 0.0 ) ray.clr = 1.0; Cf = ray.clr; }[/CODE] So, it seems to crash only if try my modify struct non-uniformly. Is it even legal to do like this, or structs are supposed to be constant? Just in case, the compiled .otl version is in the attachment. struct.otl