49 using bke::PersistentDataHandleMap;
50 using bke::PersistentObjectHandle;
51 using bke::ReadAttribute;
53 using bke::WriteAttribute;
56 using fn::GMutablePointer;
66 const Object *self_object_;
79 input_values_(input_values),
80 output_values_(output_values),
97 this->check_extract_input(identifier);
99 return input_values_.
extract(identifier);
110 this->check_extract_input(identifier, &CPPType::get<T>());
112 return input_values_.
extract<
T>(identifier);
125 std::string sub_identifier = identifier;
129 if (!input_values_.
contains(sub_identifier)) {
144 this->check_extract_input(identifier, &CPPType::get<T>());
146 return input_values_.
lookup<
T>(identifier);
158 this->check_set_output(identifier, *value.
type());
168 this->check_set_output(identifier, *value.
type());
179 this->check_set_output(identifier,
CPPType::get<std::decay_t<T>>());
181 output_values_.
add_new(identifier, std::forward<T>(value));
189 return *node_->
bnode();
224 const void *default_value)
const;
230 const T &default_value)
const
250 void check_extract_input(
StringRef identifier,
const CPPType *requested_type =
nullptr)
const;
251 void check_set_output(
StringRef identifier,
const CPPType &value_type)
const;
static uint8 component(Color32 c, uint i)
struct Depsgraph Depsgraph
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum type
static std::string default_domain
void append(const T &value)
static const CPPType & get()
const CPPType * type() const
const CPPType * type() const
GMutablePointer extract(const ForwardKey &key)
const T & lookup(const ForwardKey &key) const
void add_new(ForwardKey &&key, T &&value)
void add_new_by_copy(ForwardKey &&key, GPointer value)
void add_new_by_move(ForwardKey &&key, GMutablePointer value)
bool contains(const ForwardKey &key) const
T extract_input(StringRef identifier)
GMutablePointer extract_input(StringRef identifier)
AttributeDomain get_highest_priority_input_domain(Span< std::string > names, const GeometryComponent &component, const AttributeDomain default_domain) const
const bNode & node() const
const PersistentDataHandleMap & handle_map() const
Vector< T > extract_multi_input(StringRef identifier)
void set_output(StringRef identifier, T &&value)
Depsgraph * depsgraph() const
GeoNodeExecParams(const DNode node, GValueMap< StringRef > &input_values, GValueMap< StringRef > &output_values, const PersistentDataHandleMap &handle_map, const Object *self_object, const ModifierData *modifier, Depsgraph *depsgraph)
CustomDataType get_input_attribute_data_type(const StringRef name, const GeometryComponent &component, const CustomDataType default_type) const
bke::TypedReadAttribute< T > get_input_attribute(const StringRef name, const GeometryComponent &component, const AttributeDomain domain, const T &default_value) const
void set_output_by_copy(StringRef identifier, GPointer value)
const T & get_input(StringRef identifier) const
ReadAttributePtr get_input_attribute(const StringRef name, const GeometryComponent &component, const AttributeDomain domain, const CustomDataType type, const void *default_value) const
const Object * self_object() const
void set_output_by_move(StringRef identifier, GMutablePointer value)
void error_message_add(const NodeWarningType type, std::string message) const
TypedReadAttribute< Color4f > Color4fReadAttribute
CustomDataType cpp_type_to_custom_data_type(const CPPType &type)
TypedWriteAttribute< float3 > Float3WriteAttribute
TypedWriteAttribute< Color4f > Color4fWriteAttribute
TypedReadAttribute< float > FloatReadAttribute
TypedReadAttribute< float3 > Float3ReadAttribute
TypedReadAttribute< int > Int32ReadAttribute
std::unique_ptr< WriteAttribute > WriteAttributePtr
GeometrySet geometry_set_realize_instances(const GeometrySet &geometry_set)
TypedWriteAttribute< int > Int32WriteAttribute
TypedReadAttribute< bool > BooleanReadAttribute
TypedWriteAttribute< float2 > Float2WriteAttribute
TypedWriteAttribute< float > FloatWriteAttribute
TypedReadAttribute< float2 > Float2ReadAttribute
TypedWriteAttribute< bool > BooleanWriteAttribute
std::unique_ptr< ReadAttribute > ReadAttributePtr
std::string to_string(const T &n)