I was tried this. Houdini cant see my data. https://gist.github.com/paulwinex/511974828d492e18b0c6 line 124
Can you get me any example witn oschema.getArbGeomParams()? Just simple example that write custom attribute (point ar prim) for houdini.
> email to alembic-discussion+unsub...@googlegroups.com.
m_param_colors = OC3fGeomParam(geom_props, "colors", false, kVertexScope, 1, 0);
...
std::vector<V3f> colors_buffer;
...
OV3fGeomParam::Sample colors = paths_create_sample_colors(*m_pathcache, *m_totpath, totkeys, colors_buffer);
...
m_param_colors.set(colors);
...
m_param_colors.set(OC3fGeomParam::Sample(C3fArraySample(path_sample.colors), kVertexScope));
mesh_samp = OPolyMeshSchemaSample(
p_points, p_faceIndices, p_faceCounts
)
mesh.set(mesh_samp)
arb = mesh.getArbGeomParams()
mass = ODoubleGeomParam(arb, "mass", False, GeometryScope.kVertexScope, 1)
array = Float64TPTraits.arrayType( len(p_points) )
for i in range( len(p_points) ):
array[i] = 1.23
mass_samp = ODoubleGeomParamSample()
mass_samp.setVals( array )
how i can applay this data (array) to mesh_samp
?
arb = mesh.getArbGeomParams()
mass = ODoubleGeomParam(arb, "mass", False, GeometryScope.kVertexScope, 1)
# create array
array = Float64TPTraits.arrayType( len(p_points) )
for i in range( len(p_points) ):
array[i] = 1.23
samp = ODoubleGeomParamSample()
samp.setVals( array )
mass.set(samp)
I have point attribute mass in houdini!
Now i need to write PRIMITIVE attribute
# point attrib vector
color = OV3fGeomParam(arb, "Cd", False, GeometryScope.kVertexScope, 1)
array = P3fTPTraits.arrayType( len(p_points) )
for i in range( len(p_points) ):
array[i] = V3f(1.0, 0.0, 0.0)
samp = OV3fGeomParamSample()
samp.setVals( array )
color.set(samp)
Part for vector attribute
Now i need to export groups. Any ideas? Tt seems that alembic does not support point group.
# example array
arr = Int32TPTraits.arrayType(4)
for i in range(4):
arr[i] = i
# create face set
samp = OFaceSetSchemaSample()
samp.setFaces(arr)
# write to mesh
faceSet = mesh.createFaceSet('my_group_1')
faceSetSchema = faceSet.getSchema()
faceSetSchema.set(samp)