Cleanup: Remove unnecessary attribute provider callbacks #107088
|
@ -322,10 +322,11 @@ GVArray BuiltinCustomDataLayerProvider::try_get_for_read(const void *owner) cons
|
||||||
}
|
}
|
||||||
|
|
||||||
/* When the number of elements is zero, layers might have null data but still exist. */
|
/* When the number of elements is zero, layers might have null data but still exist. */
|
||||||
|
const CPPType &type = *custom_data_type_to_cpp_type(data_type_);
|
||||||
const int element_num = custom_data_access_.get_element_num(owner);
|
const int element_num = custom_data_access_.get_element_num(owner);
|
||||||
if (element_num == 0) {
|
if (element_num == 0) {
|
||||||
if (this->layer_exists(*custom_data)) {
|
if (this->layer_exists(*custom_data)) {
|
||||||
return as_read_attribute_(nullptr, 0);
|
return GVArray::ForSpan({type, nullptr, 0});
|
||||||
}
|
}
|
||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
|
@ -340,7 +341,7 @@ GVArray BuiltinCustomDataLayerProvider::try_get_for_read(const void *owner) cons
|
||||||
if (data == nullptr) {
|
if (data == nullptr) {
|
||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
return as_read_attribute_(data, element_num);
|
return GVArray::ForSpan({type, data, element_num});
|
||||||
}
|
}
|
||||||
|
|
||||||
GAttributeWriter BuiltinCustomDataLayerProvider::try_get_for_write(void *owner) const
|
GAttributeWriter BuiltinCustomDataLayerProvider::try_get_for_write(void *owner) const
|
||||||
|
@ -356,10 +357,11 @@ GAttributeWriter BuiltinCustomDataLayerProvider::try_get_for_write(void *owner)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* When the number of elements is zero, layers might have null data but still exist. */
|
/* When the number of elements is zero, layers might have null data but still exist. */
|
||||||
|
const CPPType &type = *custom_data_type_to_cpp_type(data_type_);
|
||||||
const int element_num = custom_data_access_.get_element_num(owner);
|
const int element_num = custom_data_access_.get_element_num(owner);
|
||||||
if (element_num == 0) {
|
if (element_num == 0) {
|
||||||
if (this->layer_exists(*custom_data)) {
|
if (this->layer_exists(*custom_data)) {
|
||||||
return {as_write_attribute_(nullptr, 0), domain_, std::move(tag_modified_fn)};
|
return {GVMutableArray::ForSpan({type, nullptr, 0}), domain_, std::move(tag_modified_fn)};
|
||||||
}
|
}
|
||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
|
@ -375,7 +377,7 @@ GAttributeWriter BuiltinCustomDataLayerProvider::try_get_for_write(void *owner)
|
||||||
if (data == nullptr) {
|
if (data == nullptr) {
|
||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
return {as_write_attribute_(data, element_num), domain_, std::move(tag_modified_fn)};
|
return {GVMutableArray::ForSpan({type, data, element_num}), domain_, std::move(tag_modified_fn)};
|
||||||
}
|
}
|
||||||
|
|
||||||
bool BuiltinCustomDataLayerProvider::try_delete(void *owner) const
|
bool BuiltinCustomDataLayerProvider::try_delete(void *owner) const
|
||||||
|
|
|
@ -163,16 +163,6 @@ class CustomDataAttributeProvider final : public DynamicAttributesProvider {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
template<typename T> GVArray make_array_read_attribute(const void *data, const int domain_num)
|
|
||||||
{
|
|
||||||
return VArray<T>::ForSpan(Span<T>((const T *)data, domain_num));
|
|
||||||
}
|
|
||||||
|
|
||||||
template<typename T> GVMutableArray make_array_write_attribute(void *data, const int domain_num)
|
|
||||||
{
|
|
||||||
return VMutableArray<T>::ForSpan(MutableSpan<T>((T *)data, domain_num));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This provider is used to provide access to builtin attributes. It supports making internal types
|
* This provider is used to provide access to builtin attributes. It supports making internal types
|
||||||
* available as different types.
|
* available as different types.
|
||||||
|
@ -181,14 +171,10 @@ template<typename T> GVMutableArray make_array_write_attribute(void *data, const
|
||||||
* if the stored type is the same as the attribute type.
|
* if the stored type is the same as the attribute type.
|
||||||
*/
|
*/
|
||||||
class BuiltinCustomDataLayerProvider final : public BuiltinAttributeProvider {
|
class BuiltinCustomDataLayerProvider final : public BuiltinAttributeProvider {
|
||||||
using AsReadAttribute = GVArray (*)(const void *data, int element_num);
|
|
||||||
using AsWriteAttribute = GVMutableArray (*)(void *data, int element_num);
|
|
||||||
using UpdateOnRead = void (*)(const void *owner);
|
using UpdateOnRead = void (*)(const void *owner);
|
||||||
using UpdateOnChange = void (*)(void *owner);
|
using UpdateOnChange = void (*)(void *owner);
|
||||||
const eCustomDataType stored_type_;
|
const eCustomDataType stored_type_;
|
||||||
const CustomDataAccessInfo custom_data_access_;
|
const CustomDataAccessInfo custom_data_access_;
|
||||||
const AsReadAttribute as_read_attribute_;
|
|
||||||
const AsWriteAttribute as_write_attribute_;
|
|
||||||
const UpdateOnChange update_on_change_;
|
const UpdateOnChange update_on_change_;
|
||||||
bool stored_as_named_attribute_;
|
bool stored_as_named_attribute_;
|
||||||
|
|
||||||
|
@ -200,16 +186,12 @@ class BuiltinCustomDataLayerProvider final : public BuiltinAttributeProvider {
|
||||||
const CreatableEnum creatable,
|
const CreatableEnum creatable,
|
||||||
const DeletableEnum deletable,
|
const DeletableEnum deletable,
|
||||||
const CustomDataAccessInfo custom_data_access,
|
const CustomDataAccessInfo custom_data_access,
|
||||||
const AsReadAttribute as_read_attribute,
|
|
||||||
const AsWriteAttribute as_write_attribute,
|
|
||||||
const UpdateOnChange update_on_write,
|
const UpdateOnChange update_on_write,
|
||||||
const AttributeValidator validator = {})
|
const AttributeValidator validator = {})
|
||||||
: BuiltinAttributeProvider(
|
: BuiltinAttributeProvider(
|
||||||
std::move(attribute_name), domain, attribute_type, creatable, deletable, validator),
|
std::move(attribute_name), domain, attribute_type, creatable, deletable, validator),
|
||||||
stored_type_(stored_type),
|
stored_type_(stored_type),
|
||||||
custom_data_access_(custom_data_access),
|
custom_data_access_(custom_data_access),
|
||||||
as_read_attribute_(as_read_attribute),
|
|
||||||
as_write_attribute_(as_write_attribute),
|
|
||||||
update_on_change_(update_on_write),
|
update_on_change_(update_on_write),
|
||||||
stored_as_named_attribute_(data_type_ == stored_type_)
|
stored_as_named_attribute_(data_type_ == stored_type_)
|
||||||
{
|
{
|
||||||
|
|
|
@ -375,8 +375,6 @@ static ComponentAttributeProviders create_attribute_providers_for_curve()
|
||||||
BuiltinAttributeProvider::NonCreatable,
|
BuiltinAttributeProvider::NonCreatable,
|
||||||
BuiltinAttributeProvider::NonDeletable,
|
BuiltinAttributeProvider::NonDeletable,
|
||||||
point_access,
|
point_access,
|
||||||
make_array_read_attribute<float3>,
|
|
||||||
make_array_write_attribute<float3>,
|
|
||||||
tag_component_positions_changed);
|
tag_component_positions_changed);
|
||||||
|
|
||||||
static BuiltinCustomDataLayerProvider radius("radius",
|
static BuiltinCustomDataLayerProvider radius("radius",
|
||||||
|
@ -386,8 +384,6 @@ static ComponentAttributeProviders create_attribute_providers_for_curve()
|
||||||
BuiltinAttributeProvider::Creatable,
|
BuiltinAttributeProvider::Creatable,
|
||||||
BuiltinAttributeProvider::Deletable,
|
BuiltinAttributeProvider::Deletable,
|
||||||
point_access,
|
point_access,
|
||||||
make_array_read_attribute<float>,
|
|
||||||
make_array_write_attribute<float>,
|
|
||||||
tag_component_radii_changed);
|
tag_component_radii_changed);
|
||||||
|
|
||||||
static BuiltinCustomDataLayerProvider id("id",
|
static BuiltinCustomDataLayerProvider id("id",
|
||||||
|
@ -397,8 +393,6 @@ static ComponentAttributeProviders create_attribute_providers_for_curve()
|
||||||
BuiltinAttributeProvider::Creatable,
|
BuiltinAttributeProvider::Creatable,
|
||||||
BuiltinAttributeProvider::Deletable,
|
BuiltinAttributeProvider::Deletable,
|
||||||
point_access,
|
point_access,
|
||||||
make_array_read_attribute<int>,
|
|
||||||
make_array_write_attribute<int>,
|
|
||||||
nullptr);
|
nullptr);
|
||||||
|
|
||||||
static BuiltinCustomDataLayerProvider tilt("tilt",
|
static BuiltinCustomDataLayerProvider tilt("tilt",
|
||||||
|
@ -408,8 +402,6 @@ static ComponentAttributeProviders create_attribute_providers_for_curve()
|
||||||
BuiltinAttributeProvider::Creatable,
|
BuiltinAttributeProvider::Creatable,
|
||||||
BuiltinAttributeProvider::Deletable,
|
BuiltinAttributeProvider::Deletable,
|
||||||
point_access,
|
point_access,
|
||||||
make_array_read_attribute<float>,
|
|
||||||
make_array_write_attribute<float>,
|
|
||||||
tag_component_normals_changed);
|
tag_component_normals_changed);
|
||||||
|
|
||||||
static BuiltinCustomDataLayerProvider handle_right("handle_right",
|
static BuiltinCustomDataLayerProvider handle_right("handle_right",
|
||||||
|
@ -419,8 +411,6 @@ static ComponentAttributeProviders create_attribute_providers_for_curve()
|
||||||
BuiltinAttributeProvider::Creatable,
|
BuiltinAttributeProvider::Creatable,
|
||||||
BuiltinAttributeProvider::Deletable,
|
BuiltinAttributeProvider::Deletable,
|
||||||
point_access,
|
point_access,
|
||||||
make_array_read_attribute<float3>,
|
|
||||||
make_array_write_attribute<float3>,
|
|
||||||
tag_component_positions_changed);
|
tag_component_positions_changed);
|
||||||
|
|
||||||
static BuiltinCustomDataLayerProvider handle_left("handle_left",
|
static BuiltinCustomDataLayerProvider handle_left("handle_left",
|
||||||
|
@ -430,8 +420,6 @@ static ComponentAttributeProviders create_attribute_providers_for_curve()
|
||||||
BuiltinAttributeProvider::Creatable,
|
BuiltinAttributeProvider::Creatable,
|
||||||
BuiltinAttributeProvider::Deletable,
|
BuiltinAttributeProvider::Deletable,
|
||||||
point_access,
|
point_access,
|
||||||
make_array_read_attribute<float3>,
|
|
||||||
make_array_write_attribute<float3>,
|
|
||||||
tag_component_positions_changed);
|
tag_component_positions_changed);
|
||||||
|
|
||||||
static auto handle_type_clamp = mf::build::SI1_SO<int8_t, int8_t>(
|
static auto handle_type_clamp = mf::build::SI1_SO<int8_t, int8_t>(
|
||||||
|
@ -447,8 +435,6 @@ static ComponentAttributeProviders create_attribute_providers_for_curve()
|
||||||
BuiltinAttributeProvider::Creatable,
|
BuiltinAttributeProvider::Creatable,
|
||||||
BuiltinAttributeProvider::Deletable,
|
BuiltinAttributeProvider::Deletable,
|
||||||
point_access,
|
point_access,
|
||||||
make_array_read_attribute<int8_t>,
|
|
||||||
make_array_write_attribute<int8_t>,
|
|
||||||
tag_component_topology_changed,
|
tag_component_topology_changed,
|
||||||
AttributeValidator{&handle_type_clamp});
|
AttributeValidator{&handle_type_clamp});
|
||||||
|
|
||||||
|
@ -459,8 +445,6 @@ static ComponentAttributeProviders create_attribute_providers_for_curve()
|
||||||
BuiltinAttributeProvider::Creatable,
|
BuiltinAttributeProvider::Creatable,
|
||||||
BuiltinAttributeProvider::Deletable,
|
BuiltinAttributeProvider::Deletable,
|
||||||
point_access,
|
point_access,
|
||||||
make_array_read_attribute<int8_t>,
|
|
||||||
make_array_write_attribute<int8_t>,
|
|
||||||
tag_component_topology_changed,
|
tag_component_topology_changed,
|
||||||
AttributeValidator{&handle_type_clamp});
|
AttributeValidator{&handle_type_clamp});
|
||||||
|
|
||||||
|
@ -471,8 +455,6 @@ static ComponentAttributeProviders create_attribute_providers_for_curve()
|
||||||
BuiltinAttributeProvider::Creatable,
|
BuiltinAttributeProvider::Creatable,
|
||||||
BuiltinAttributeProvider::Deletable,
|
BuiltinAttributeProvider::Deletable,
|
||||||
point_access,
|
point_access,
|
||||||
make_array_read_attribute<float>,
|
|
||||||
make_array_write_attribute<float>,
|
|
||||||
tag_component_positions_changed);
|
tag_component_positions_changed);
|
||||||
|
|
||||||
static const auto nurbs_order_clamp = mf::build::SI1_SO<int8_t, int8_t>(
|
static const auto nurbs_order_clamp = mf::build::SI1_SO<int8_t, int8_t>(
|
||||||
|
@ -486,8 +468,6 @@ static ComponentAttributeProviders create_attribute_providers_for_curve()
|
||||||
BuiltinAttributeProvider::Creatable,
|
BuiltinAttributeProvider::Creatable,
|
||||||
BuiltinAttributeProvider::Deletable,
|
BuiltinAttributeProvider::Deletable,
|
||||||
curve_access,
|
curve_access,
|
||||||
make_array_read_attribute<int8_t>,
|
|
||||||
make_array_write_attribute<int8_t>,
|
|
||||||
tag_component_topology_changed,
|
tag_component_topology_changed,
|
||||||
AttributeValidator{&nurbs_order_clamp});
|
AttributeValidator{&nurbs_order_clamp});
|
||||||
|
|
||||||
|
@ -504,8 +484,6 @@ static ComponentAttributeProviders create_attribute_providers_for_curve()
|
||||||
BuiltinAttributeProvider::Creatable,
|
BuiltinAttributeProvider::Creatable,
|
||||||
BuiltinAttributeProvider::Deletable,
|
BuiltinAttributeProvider::Deletable,
|
||||||
curve_access,
|
curve_access,
|
||||||
make_array_read_attribute<int8_t>,
|
|
||||||
make_array_write_attribute<int8_t>,
|
|
||||||
tag_component_normals_changed,
|
tag_component_normals_changed,
|
||||||
AttributeValidator{&normal_mode_clamp});
|
AttributeValidator{&normal_mode_clamp});
|
||||||
|
|
||||||
|
@ -522,8 +500,6 @@ static ComponentAttributeProviders create_attribute_providers_for_curve()
|
||||||
BuiltinAttributeProvider::Creatable,
|
BuiltinAttributeProvider::Creatable,
|
||||||
BuiltinAttributeProvider::Deletable,
|
BuiltinAttributeProvider::Deletable,
|
||||||
curve_access,
|
curve_access,
|
||||||
make_array_read_attribute<int8_t>,
|
|
||||||
make_array_write_attribute<int8_t>,
|
|
||||||
tag_component_topology_changed,
|
tag_component_topology_changed,
|
||||||
AttributeValidator{&knots_mode_clamp});
|
AttributeValidator{&knots_mode_clamp});
|
||||||
|
|
||||||
|
@ -540,8 +516,6 @@ static ComponentAttributeProviders create_attribute_providers_for_curve()
|
||||||
BuiltinAttributeProvider::Creatable,
|
BuiltinAttributeProvider::Creatable,
|
||||||
BuiltinAttributeProvider::Deletable,
|
BuiltinAttributeProvider::Deletable,
|
||||||
curve_access,
|
curve_access,
|
||||||
make_array_read_attribute<int8_t>,
|
|
||||||
make_array_write_attribute<int8_t>,
|
|
||||||
tag_component_curve_types_changed,
|
tag_component_curve_types_changed,
|
||||||
AttributeValidator{&curve_type_clamp});
|
AttributeValidator{&curve_type_clamp});
|
||||||
|
|
||||||
|
@ -556,8 +530,6 @@ static ComponentAttributeProviders create_attribute_providers_for_curve()
|
||||||
BuiltinAttributeProvider::Creatable,
|
BuiltinAttributeProvider::Creatable,
|
||||||
BuiltinAttributeProvider::Deletable,
|
BuiltinAttributeProvider::Deletable,
|
||||||
curve_access,
|
curve_access,
|
||||||
make_array_read_attribute<int>,
|
|
||||||
make_array_write_attribute<int>,
|
|
||||||
tag_component_topology_changed,
|
tag_component_topology_changed,
|
||||||
AttributeValidator{&resolution_clamp});
|
AttributeValidator{&resolution_clamp});
|
||||||
|
|
||||||
|
@ -568,8 +540,6 @@ static ComponentAttributeProviders create_attribute_providers_for_curve()
|
||||||
BuiltinAttributeProvider::Creatable,
|
BuiltinAttributeProvider::Creatable,
|
||||||
BuiltinAttributeProvider::Deletable,
|
BuiltinAttributeProvider::Deletable,
|
||||||
curve_access,
|
curve_access,
|
||||||
make_array_read_attribute<bool>,
|
|
||||||
make_array_write_attribute<bool>,
|
|
||||||
tag_component_topology_changed);
|
tag_component_topology_changed);
|
||||||
|
|
||||||
static CustomDataAttributeProvider curve_custom_data(ATTR_DOMAIN_CURVE, curve_access);
|
static CustomDataAttributeProvider curve_custom_data(ATTR_DOMAIN_CURVE, curve_access);
|
||||||
|
|
|
@ -200,8 +200,6 @@ static ComponentAttributeProviders create_attribute_providers_for_instances()
|
||||||
BuiltinAttributeProvider::Creatable,
|
BuiltinAttributeProvider::Creatable,
|
||||||
BuiltinAttributeProvider::Deletable,
|
BuiltinAttributeProvider::Deletable,
|
||||||
instance_custom_data_access,
|
instance_custom_data_access,
|
||||||
make_array_read_attribute<int>,
|
|
||||||
make_array_write_attribute<int>,
|
|
||||||
nullptr);
|
nullptr);
|
||||||
|
|
||||||
static CustomDataAttributeProvider instance_custom_data(ATTR_DOMAIN_INSTANCE,
|
static CustomDataAttributeProvider instance_custom_data(ATTR_DOMAIN_INSTANCE,
|
||||||
|
|
|
@ -859,23 +859,6 @@ static blender::GVArray adapt_mesh_attribute_domain(const Mesh &mesh,
|
||||||
|
|
||||||
namespace blender::bke {
|
namespace blender::bke {
|
||||||
|
|
||||||
template<typename StructT, typename ElemT, ElemT (*GetFunc)(const StructT &)>
|
|
||||||
static GVArray make_derived_read_attribute(const void *data, const int domain_num)
|
|
||||||
{
|
|
||||||
return VArray<ElemT>::template ForDerivedSpan<StructT, GetFunc>(
|
|
||||||
Span<StructT>((const StructT *)data, domain_num));
|
|
||||||
}
|
|
||||||
|
|
||||||
template<typename StructT,
|
|
||||||
typename ElemT,
|
|
||||||
ElemT (*GetFunc)(const StructT &),
|
|
||||||
void (*SetFunc)(StructT &, ElemT)>
|
|
||||||
static GVMutableArray make_derived_write_attribute(void *data, const int domain_num)
|
|
||||||
{
|
|
||||||
return VMutableArray<ElemT>::template ForDerivedSpan<StructT, GetFunc, SetFunc>(
|
|
||||||
MutableSpan<StructT>((StructT *)data, domain_num));
|
|
||||||
}
|
|
||||||
|
|
||||||
static void tag_component_positions_changed(void *owner)
|
static void tag_component_positions_changed(void *owner)
|
||||||
{
|
{
|
||||||
Mesh *mesh = static_cast<Mesh *>(owner);
|
Mesh *mesh = static_cast<Mesh *>(owner);
|
||||||
|
@ -884,16 +867,6 @@ static void tag_component_positions_changed(void *owner)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static float get_crease(const float &crease)
|
|
||||||
{
|
|
||||||
return crease;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void set_crease(float &crease, const float value)
|
|
||||||
{
|
|
||||||
crease = std::clamp(value, 0.0f, 1.0f);
|
|
||||||
}
|
|
||||||
|
|
||||||
class VArrayImpl_For_VertexWeights final : public VMutableArrayImpl<float> {
|
class VArrayImpl_For_VertexWeights final : public VMutableArrayImpl<float> {
|
||||||
private:
|
private:
|
||||||
MDeformVert *dverts_;
|
MDeformVert *dverts_;
|
||||||
|
@ -1144,8 +1117,6 @@ static ComponentAttributeProviders create_attribute_providers_for_mesh()
|
||||||
BuiltinAttributeProvider::NonCreatable,
|
BuiltinAttributeProvider::NonCreatable,
|
||||||
BuiltinAttributeProvider::NonDeletable,
|
BuiltinAttributeProvider::NonDeletable,
|
||||||
point_access,
|
point_access,
|
||||||
make_array_read_attribute<float3>,
|
|
||||||
make_array_write_attribute<float3>,
|
|
||||||
tag_component_positions_changed);
|
tag_component_positions_changed);
|
||||||
|
|
||||||
static BuiltinCustomDataLayerProvider id("id",
|
static BuiltinCustomDataLayerProvider id("id",
|
||||||
|
@ -1155,8 +1126,6 @@ static ComponentAttributeProviders create_attribute_providers_for_mesh()
|
||||||
BuiltinAttributeProvider::Creatable,
|
BuiltinAttributeProvider::Creatable,
|
||||||
BuiltinAttributeProvider::Deletable,
|
BuiltinAttributeProvider::Deletable,
|
||||||
point_access,
|
point_access,
|
||||||
make_array_read_attribute<int>,
|
|
||||||
make_array_write_attribute<int>,
|
|
||||||
nullptr);
|
nullptr);
|
||||||
|
|
||||||
static const auto material_index_clamp = mf::build::SI1_SO<int, int>(
|
static const auto material_index_clamp = mf::build::SI1_SO<int, int>(
|
||||||
|
@ -1173,8 +1142,6 @@ static ComponentAttributeProviders create_attribute_providers_for_mesh()
|
||||||
BuiltinAttributeProvider::Creatable,
|
BuiltinAttributeProvider::Creatable,
|
||||||
BuiltinAttributeProvider::Deletable,
|
BuiltinAttributeProvider::Deletable,
|
||||||
face_access,
|
face_access,
|
||||||
make_array_read_attribute<int>,
|
|
||||||
make_array_write_attribute<int>,
|
|
||||||
nullptr,
|
nullptr,
|
||||||
AttributeValidator{&material_index_clamp});
|
AttributeValidator{&material_index_clamp});
|
||||||
|
|
||||||
|
@ -1189,8 +1156,6 @@ static ComponentAttributeProviders create_attribute_providers_for_mesh()
|
||||||
BuiltinAttributeProvider::NonCreatable,
|
BuiltinAttributeProvider::NonCreatable,
|
||||||
BuiltinAttributeProvider::NonDeletable,
|
BuiltinAttributeProvider::NonDeletable,
|
||||||
edge_access,
|
edge_access,
|
||||||
make_array_read_attribute<int2>,
|
|
||||||
make_array_write_attribute<int2>,
|
|
||||||
nullptr,
|
nullptr,
|
||||||
AttributeValidator{&int2_index_clamp});
|
AttributeValidator{&int2_index_clamp});
|
||||||
|
|
||||||
|
@ -1207,8 +1172,6 @@ static ComponentAttributeProviders create_attribute_providers_for_mesh()
|
||||||
BuiltinAttributeProvider::NonCreatable,
|
BuiltinAttributeProvider::NonCreatable,
|
||||||
BuiltinAttributeProvider::NonDeletable,
|
BuiltinAttributeProvider::NonDeletable,
|
||||||
corner_access,
|
corner_access,
|
||||||
make_array_read_attribute<int>,
|
|
||||||
make_array_write_attribute<int>,
|
|
||||||
nullptr,
|
nullptr,
|
||||||
AttributeValidator{&int_index_clamp});
|
AttributeValidator{&int_index_clamp});
|
||||||
static BuiltinCustomDataLayerProvider corner_edge(".corner_edge",
|
static BuiltinCustomDataLayerProvider corner_edge(".corner_edge",
|
||||||
|
@ -1218,8 +1181,6 @@ static ComponentAttributeProviders create_attribute_providers_for_mesh()
|
||||||
BuiltinAttributeProvider::NonCreatable,
|
BuiltinAttributeProvider::NonCreatable,
|
||||||
BuiltinAttributeProvider::NonDeletable,
|
BuiltinAttributeProvider::NonDeletable,
|
||||||
corner_access,
|
corner_access,
|
||||||
make_array_read_attribute<int>,
|
|
||||||
make_array_write_attribute<int>,
|
|
||||||
nullptr,
|
nullptr,
|
||||||
AttributeValidator{&int_index_clamp});
|
AttributeValidator{&int_index_clamp});
|
||||||
|
|
||||||
|
@ -1230,8 +1191,6 @@ static ComponentAttributeProviders create_attribute_providers_for_mesh()
|
||||||
BuiltinAttributeProvider::Creatable,
|
BuiltinAttributeProvider::Creatable,
|
||||||
BuiltinAttributeProvider::Deletable,
|
BuiltinAttributeProvider::Deletable,
|
||||||
face_access,
|
face_access,
|
||||||
make_array_read_attribute<bool>,
|
|
||||||
make_array_write_attribute<bool>,
|
|
||||||
nullptr);
|
nullptr);
|
||||||
|
|
||||||
static BuiltinCustomDataLayerProvider sharp_edge("sharp_edge",
|
static BuiltinCustomDataLayerProvider sharp_edge("sharp_edge",
|
||||||
|
@ -1241,21 +1200,21 @@ static ComponentAttributeProviders create_attribute_providers_for_mesh()
|
||||||
BuiltinAttributeProvider::Creatable,
|
BuiltinAttributeProvider::Creatable,
|
||||||
BuiltinAttributeProvider::Deletable,
|
BuiltinAttributeProvider::Deletable,
|
||||||
edge_access,
|
edge_access,
|
||||||
make_array_read_attribute<bool>,
|
|
||||||
make_array_write_attribute<bool>,
|
|
||||||
nullptr);
|
nullptr);
|
||||||
|
|
||||||
static BuiltinCustomDataLayerProvider crease(
|
static const auto crease_clamp = mf::build::SI1_SO<float, float>(
|
||||||
"crease",
|
"Crease Clamp",
|
||||||
ATTR_DOMAIN_EDGE,
|
[](float value) { return std::clamp(value, 0.0f, 1.0f); },
|
||||||
CD_PROP_FLOAT,
|
mf::build::exec_presets::AllSpanOrSingle());
|
||||||
CD_CREASE,
|
static BuiltinCustomDataLayerProvider crease("crease",
|
||||||
BuiltinAttributeProvider::Creatable,
|
ATTR_DOMAIN_EDGE,
|
||||||
BuiltinAttributeProvider::Deletable,
|
CD_PROP_FLOAT,
|
||||||
edge_access,
|
CD_CREASE,
|
||||||
make_array_read_attribute<float>,
|
BuiltinAttributeProvider::Creatable,
|
||||||
make_derived_write_attribute<float, float, get_crease, set_crease>,
|
BuiltinAttributeProvider::Deletable,
|
||||||
nullptr);
|
edge_access,
|
||||||
|
nullptr,
|
||||||
|
AttributeValidator{&crease_clamp});
|
||||||
|
|
||||||
static VertexGroupsAttributeProvider vertex_groups;
|
static VertexGroupsAttributeProvider vertex_groups;
|
||||||
static CustomDataAttributeProvider corner_custom_data(ATTR_DOMAIN_CORNER, corner_access);
|
static CustomDataAttributeProvider corner_custom_data(ATTR_DOMAIN_CORNER, corner_access);
|
||||||
|
|
|
@ -142,8 +142,6 @@ static ComponentAttributeProviders create_attribute_providers_for_point_cloud()
|
||||||
BuiltinAttributeProvider::NonCreatable,
|
BuiltinAttributeProvider::NonCreatable,
|
||||||
BuiltinAttributeProvider::NonDeletable,
|
BuiltinAttributeProvider::NonDeletable,
|
||||||
point_access,
|
point_access,
|
||||||
make_array_read_attribute<float3>,
|
|
||||||
make_array_write_attribute<float3>,
|
|
||||||
tag_component_positions_changed);
|
tag_component_positions_changed);
|
||||||
static BuiltinCustomDataLayerProvider radius("radius",
|
static BuiltinCustomDataLayerProvider radius("radius",
|
||||||
ATTR_DOMAIN_POINT,
|
ATTR_DOMAIN_POINT,
|
||||||
|
@ -152,8 +150,6 @@ static ComponentAttributeProviders create_attribute_providers_for_point_cloud()
|
||||||
BuiltinAttributeProvider::Creatable,
|
BuiltinAttributeProvider::Creatable,
|
||||||
BuiltinAttributeProvider::Deletable,
|
BuiltinAttributeProvider::Deletable,
|
||||||
point_access,
|
point_access,
|
||||||
make_array_read_attribute<float>,
|
|
||||||
make_array_write_attribute<float>,
|
|
||||||
tag_component_radius_changed);
|
tag_component_radius_changed);
|
||||||
static BuiltinCustomDataLayerProvider id("id",
|
static BuiltinCustomDataLayerProvider id("id",
|
||||||
ATTR_DOMAIN_POINT,
|
ATTR_DOMAIN_POINT,
|
||||||
|
@ -162,8 +158,6 @@ static ComponentAttributeProviders create_attribute_providers_for_point_cloud()
|
||||||
BuiltinAttributeProvider::Creatable,
|
BuiltinAttributeProvider::Creatable,
|
||||||
BuiltinAttributeProvider::Deletable,
|
BuiltinAttributeProvider::Deletable,
|
||||||
point_access,
|
point_access,
|
||||||
make_array_read_attribute<int>,
|
|
||||||
make_array_write_attribute<int>,
|
|
||||||
nullptr);
|
nullptr);
|
||||||
static CustomDataAttributeProvider point_custom_data(ATTR_DOMAIN_POINT, point_access);
|
static CustomDataAttributeProvider point_custom_data(ATTR_DOMAIN_POINT, point_access);
|
||||||
return ComponentAttributeProviders({&position, &radius, &id}, {&point_custom_data});
|
return ComponentAttributeProviders({&position, &radius, &id}, {&point_custom_data});
|
||||||
|
|
Loading…
Reference in New Issue