23 const void *
data = HdGetValueData(value);
24 size_t size = value.GetArraySize();
26 const HdType valueType = HdGetValueTupleType(value).type;
28 TypeDesc attrType = CCL_NS::TypeUnknown;
31 attrType = CCL_NS::TypeFloat;
35 attrType = CCL_NS::TypeFloat2;
37 static_assert(
sizeof(GfVec2f) ==
sizeof(
float2));
39 case HdTypeFloatVec3: {
40 attrType = CCL_NS::TypeVector;
43 const auto &valueData = value.Get<VtVec3fArray>();
44 VtArray<float3> valueConverted;
45 valueConverted.reserve(valueData.size());
46 for (
const GfVec3f &vec : valueData) {
47 valueConverted.push_back(
make_float3(vec[0], vec[1], vec[2]));
49 data = valueConverted.data();
50 value = std::move(valueConverted);
54 attrType = CCL_NS::TypeFloat4;
56 static_assert(
sizeof(GfVec4f) ==
sizeof(
float4));
59 TF_WARN(
"Unsupported attribute type %d",
static_cast<int>(valueType));
HDCYCLES_NAMESPACE_OPEN_SCOPE void ApplyPrimvars(AttributeSet &attributes, const ustring &name, VtValue value, AttributeElement elem, AttributeStandard std)