Blender  V3.3
deg_node_factory_impl.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later
2  * Copyright 2019 Blender Foundation. All rights reserved. */
3 
8 #pragma once
9 
11 
12 struct ID;
13 
14 namespace blender::deg {
15 
16 template<class ModeObjectType> NodeType DepsNodeFactoryImpl<ModeObjectType>::type() const
17 {
18  return ModeObjectType::typeinfo.type;
19 }
20 
21 template<class ModeObjectType> const char *DepsNodeFactoryImpl<ModeObjectType>::type_name() const
22 {
23  return ModeObjectType::typeinfo.type_name;
24 }
25 
26 template<class ModeObjectType> int DepsNodeFactoryImpl<ModeObjectType>::id_recalc_tag() const
27 {
28  return ModeObjectType::typeinfo.id_recalc_tag;
29 }
30 
31 template<class ModeObjectType>
33  const char *subdata,
34  const char *name) const
35 {
36  Node *node = new ModeObjectType();
37  /* Populate base node settings. */
38  node->type = type();
39  /* Set name if provided, or use default type name. */
40  if (name[0] != '\0') {
41  node->name = name;
42  }
43  else {
44  node->name = type_name();
45  }
46  node->init(id, subdata);
47  return node;
48 }
49 
50 } // namespace blender::deg
_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
OperationNode * node
Definition: DNA_ID.h:368
Type type
Definition: node_type.h:116
virtual Node * create_node(const ID *id, const char *subdata, const char *name) const override
virtual const char * type_name() const override
virtual NodeType type() const override
virtual int id_recalc_tag() const override
virtual void init(const ID *, const char *)
Definition: deg_node.h:190