26 switch (blender_type) {
28 return pxr::SdfValueTypeNames->FloatArray;
30 return pxr::SdfValueTypeNames->UCharArray;
32 return pxr::SdfValueTypeNames->IntArray;
34 return pxr::SdfValueTypeNames->Float2Array;
36 return pxr::SdfValueTypeNames->Float3Array;
38 return pxr::SdfValueTypeNames->StringArray;
40 return pxr::SdfValueTypeNames->BoolArray;
43 return use_color3f_type ? pxr::SdfValueTypeNames->Color3fArray :
44 pxr::SdfValueTypeNames->Color4fArray;
46 return pxr::SdfValueTypeNames->QuatfArray;
92 if (value ==
nullptr) {
100 const pxr::UsdTimeCode timecode,
106 const pxr::TfToken pv_name = pxr::UsdGeomPrimvar::StripPrimvarsName(primvar.GetPrimvarName());
109 pv_name.GetText(), domain, data_type);
114 primvar, timecode, face_indices,
attribute.span.typed<
float>());
122 primvar, timecode, face_indices,
attribute.span.typed<
int>());
133 const pxr::SdfValueTypeName pv_type = primvar.GetTypeName();
135 pxr::SdfValueTypeNames->Color3fArray,
136 pxr::SdfValueTypeNames->Color3hArray,
137 pxr::SdfValueTypeNames->Color3dArray))
149 primvar, timecode, face_indices,
attribute.span.typed<
bool>());
165 const pxr::UsdTimeCode timecode,
166 const pxr::UsdGeomPrimvar &primvar,
167 pxr::UsdUtilsSparseValueWriter &value_writer)
172 attribute.typed<
float>(), timecode, primvar, value_writer);
180 attribute.typed<
int>(), timecode, primvar, value_writer);
192 attribute.typed<
bool>(), timecode, primvar, value_writer);
195 if (primvar.GetTypeName() == pxr::SdfValueTypeNames->Color3fArray) {
205 if (primvar.GetTypeName() == pxr::SdfValueTypeNames->Color3fArray) {
void copy_primvar_to_blender_attribute(const pxr::UsdGeomPrimvar &primvar, const pxr::UsdTimeCode timecode, const eCustomDataType data_type, const bke::AttrDomain domain, const OffsetIndices< int > face_indices, bke::MutableAttributeAccessor attributes)