28 {
SOCK_INT,
N_(
"Vertices"), 32, 0.0f, 0.0f, 0.0f, 3, 4096},
44 uiItemR(layout,
ptr,
"fill_type", 0,
nullptr, ICON_NONE);
54 node->storage = node_storage;
128 const float angle_delta = 2.0f *
M_PI /
static_cast<float>(verts_num);
131 angle += angle_delta;
138 const short up_normal[3] = {0, 0, SHRT_MAX};
145 MEdge &edge = edges[i];
147 edge.
v2 = (i + 1) % verts_num;
153 MEdge &edge = edges[i];
161 MEdge &edge = edges[verts_num + i];
170 MPoly &poly = polys[0];
175 MLoop &loop = loops[i];
182 MPoly &poly = polys[i];
186 MLoop &loop_a = loops[3 * i];
189 MLoop &loop_b = loops[3 * i + 1];
190 loop_b.
e = verts_num + ((i + 1) % verts_num);
191 loop_b.
v = (i + 1) % verts_num;
192 MLoop &loop_c = loops[3 * i + 2];
193 loop_c.
e = verts_num + i;
194 loop_c.
v = verts_num;
209 const float radius =
params.extract_input<
float>(
"Radius");
210 const int verts_num =
params.extract_input<
int>(
"Vertices");
bool BKE_mesh_is_valid(struct Mesh *me)
struct Mesh * BKE_mesh_new_nomain(int verts_len, int edges_len, int tessface_len, int loops_len, int polys_len)
void node_type_socket_templates(struct bNodeType *ntype, struct bNodeSocketTemplate *inputs, struct bNodeSocketTemplate *outputs)
void node_type_init(struct bNodeType *ntype, void(*initfunc)(struct bNodeTree *ntree, struct bNode *node))
#define NODE_CLASS_GEOMETRY
void node_type_storage(struct bNodeType *ntype, const char *storagename, void(*freefunc)(struct bNode *node), void(*copyfunc)(struct bNodeTree *dest_ntree, struct bNode *dest_node, const struct bNode *src_node))
void nodeRegisterType(struct bNodeType *ntype)
#define BLI_assert_unreachable()
MINLINE void copy_v3_v3(float r[3], const float a[3])
MINLINE void copy_v3_v3_short(short r[3], const short a[3])
GeometryNodeMeshCircleFillType
@ GEO_NODE_MESH_CIRCLE_FILL_NGON
@ GEO_NODE_MESH_CIRCLE_FILL_TRIANGLE_FAN
@ GEO_NODE_MESH_CIRCLE_FILL_NONE
Group RGB to Bright Vector Camera Vector Combine Material Light Line Style Layer Add Ambient Diffuse Glossy Refraction Transparent Toon Principled Hair Volume Principled Light Particle Volume Image Sky Noise Wave Voronoi Brick Texture Vector Combine Vertex Separate Vector White RGB Map Separate Set Z Dilate Combine Combine Color Channel Split ID Combine Luminance Directional Alpha Distance Hue Movie Ellipse Bokeh View Corner Anti Mix RGB Hue Separate TEX_NODE_PROC TEX_NODE_PROC TEX_NODE_PROC TEX_NODE_PROC TEX_NODE_PROC Boolean Random Edge Subdivision Point Object Attribute Attribute Attribute Color Attribute Attribute Vector Point Attribute Sample Collection Attribute Attribute Combine Attribute GEO_NODE_MESH_PRIMITIVE_CIRCLE
void uiLayoutSetPropSep(uiLayout *layout, bool is_sep)
void uiItemR(uiLayout *layout, struct PointerRNA *ptr, const char *propname, int flag, const char *name, int icon)
void uiLayoutSetPropDecorate(uiLayout *layout, bool is_sep)
SIMD_FORCE_INLINE btScalar angle(const btVector3 &v) const
Return the angle between this and another vector.
void *(* MEM_callocN)(size_t len, const char *str)
INLINE Rall1d< T, V, S > cos(const Rall1d< T, V, S > &arg)
INLINE Rall1d< T, V, S > sin(const Rall1d< T, V, S > &arg)
static int circle_vert_total(const GeometryNodeMeshCircleFillType fill_type, const int verts_num)
static void geo_node_mesh_primitive_circle_exec(GeoNodeExecParams params)
static int circle_face_total(const GeometryNodeMeshCircleFillType fill_type, const int verts_num)
static int circle_corner_total(const GeometryNodeMeshCircleFillType fill_type, const int verts_num)
static int circle_edge_total(const GeometryNodeMeshCircleFillType fill_type, const int verts_num)
static Mesh * create_circle_mesh(const float radius, const int verts_num, const GeometryNodeMeshCircleFillType fill_type)
static bNodeSocketTemplate geo_node_mesh_primitive_circle_in[]
static void geo_node_mesh_primitive_circle_layout(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
static void geo_node_mesh_primitive_circle_init(bNodeTree *UNUSED(ntree), bNode *node)
void register_node_type_geo_mesh_primitive_circle()
static bNodeSocketTemplate geo_node_mesh_primitive_circle_out[]
void geo_node_type_base(bNodeType *ntype, int type, const char *name, short nclass, short flag)
void node_copy_standard_storage(bNodeTree *UNUSED(dest_ntree), bNode *dest_node, const bNode *src_node)
void node_free_standard_storage(bNode *node)
static GeometrySet create_with_mesh(Mesh *mesh, GeometryOwnershipType ownership=GeometryOwnershipType::Owned)
Compact definition of a node socket.
NodeGeometryExecFunction geometry_node_execute
void(* draw_buttons)(struct uiLayout *, struct bContext *C, struct PointerRNA *ptr)