25 switch (blender_type) {
27 return pxr::SdfValueTypeNames->FloatArray;
29 return pxr::SdfValueTypeNames->UCharArray;
31 return pxr::SdfValueTypeNames->IntArray;
33 return pxr::SdfValueTypeNames->Float2Array;
35 return pxr::SdfValueTypeNames->Float3Array;
37 return pxr::SdfValueTypeNames->StringArray;
39 return pxr::SdfValueTypeNames->BoolArray;
42 return use_color3f_type ? pxr::SdfValueTypeNames->Color3fArray :
43 pxr::SdfValueTypeNames->Color4fArray;
45 return pxr::SdfValueTypeNames->QuatfArray;
57 map.add_new(pxr::SdfValueTypeNames->UCharArray,
CD_PROP_INT8);
60 map.add_new(pxr::SdfValueTypeNames->TexCoord2dArray,
CD_PROP_FLOAT2);
61 map.add_new(pxr::SdfValueTypeNames->TexCoord2fArray,
CD_PROP_FLOAT2);
62 map.add_new(pxr::SdfValueTypeNames->TexCoord2hArray,
CD_PROP_FLOAT2);
63 map.add_new(pxr::SdfValueTypeNames->TexCoord3dArray,
CD_PROP_FLOAT2);
64 map.add_new(pxr::SdfValueTypeNames->TexCoord3fArray,
CD_PROP_FLOAT2);
65 map.add_new(pxr::SdfValueTypeNames->TexCoord3hArray,
CD_PROP_FLOAT2);
70 map.add_new(pxr::SdfValueTypeNames->Normal3fArray,
CD_PROP_FLOAT3);
71 map.add_new(pxr::SdfValueTypeNames->Normal3dArray,
CD_PROP_FLOAT3);
72 map.add_new(pxr::SdfValueTypeNames->Normal3hArray,
CD_PROP_FLOAT3);
73 map.add_new(pxr::SdfValueTypeNames->Vector3fArray,
CD_PROP_FLOAT3);
74 map.add_new(pxr::SdfValueTypeNames->Vector3hArray,
CD_PROP_FLOAT3);
75 map.add_new(pxr::SdfValueTypeNames->Vector3dArray,
CD_PROP_FLOAT3);
76 map.add_new(pxr::SdfValueTypeNames->Color3fArray,
CD_PROP_COLOR);
77 map.add_new(pxr::SdfValueTypeNames->Color3hArray,
CD_PROP_COLOR);
78 map.add_new(pxr::SdfValueTypeNames->Color3dArray,
CD_PROP_COLOR);
79 map.add_new(pxr::SdfValueTypeNames->Color4fArray,
CD_PROP_COLOR);
80 map.add_new(pxr::SdfValueTypeNames->Color4hArray,
CD_PROP_COLOR);
81 map.add_new(pxr::SdfValueTypeNames->Color4dArray,
CD_PROP_COLOR);
82 map.add_new(pxr::SdfValueTypeNames->BoolArray,
CD_PROP_BOOL);
90 if (
value ==
nullptr) {
98 const pxr::UsdTimeCode timecode,
104 const pxr::TfToken pv_name = pxr::UsdGeomPrimvar::StripPrimvarsName(primvar.GetPrimvarName());
107 pv_name.GetText(), domain, data_type);
112 primvar, timecode, face_indices, attribute.
span.
typed<
float>());
120 primvar, timecode, face_indices, attribute.
span.
typed<
int>());
131 const pxr::SdfValueTypeName pv_type = primvar.GetTypeName();
133 pxr::SdfValueTypeNames->Color3fArray,
134 pxr::SdfValueTypeNames->Color3hArray,
135 pxr::SdfValueTypeNames->Color3dArray))
147 primvar, timecode, face_indices, attribute.
span.
typed<
bool>());
163 const pxr::UsdTimeCode timecode,
164 const pxr::UsdGeomPrimvar &primvar,
165 pxr::UsdUtilsSparseValueWriter &value_writer)
170 attribute.
typed<
float>(), timecode, primvar, value_writer);
174 attribute.
typed<
int8_t>(), timecode, primvar, value_writer);
178 attribute.
typed<
int>(), timecode, primvar, value_writer);
182 attribute.
typed<
float2>(), timecode, primvar, value_writer);
186 attribute.
typed<
float3>(), timecode, primvar, value_writer);
190 attribute.
typed<
bool>(), timecode, primvar, value_writer);
193 if (primvar.GetTypeName() == pxr::SdfValueTypeNames->Color3fArray) {
203 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)