28 {
SOCK_INT,
N_(
"Subdivisions"), 1, 0, 0, 0, 0, 7},
49 "create_icosphere subdivisions=%i diameter=%f matrix=%m4 calc_uvs=%b",
56 params.calc_object_remap =
false;
66 const int subdivisions =
std::min(
params.extract_input<
int>(
"Subdivisions"), 10);
67 const float radius =
params.extract_input<
float>(
"Radius");
void * BKE_id_new_nomain(const short type, const char *name)
#define GEO_NODE_MESH_PRIMITIVE_ICO_SPHERE
void node_type_socket_templates(struct bNodeType *ntype, struct bNodeSocketTemplate *inputs, struct bNodeSocketTemplate *outputs)
#define NODE_CLASS_GEOMETRY
void nodeRegisterType(struct bNodeType *ntype)
ATTR_WARN_UNUSED_RESULT BMesh * bm
void BM_mesh_free(BMesh *bm)
BMesh Free Mesh.
BMesh * BM_mesh_create(const BMAllocTemplate *allocsize, const struct BMeshCreateParams *params)
BMesh Make Mesh.
void BM_mesh_bm_to_me(Main *bmain, BMesh *bm, Mesh *me, const struct BMeshToMeshParams *params)
#define BMO_FLAG_DEFAULTS
bool BMO_op_callf(BMesh *bm, const int flag, const char *fmt,...)
SIMD_FORCE_INLINE btVector3 transform(const btVector3 &point) const
static void geo_node_mesh_primitive_ico_sphere_exec(GeoNodeExecParams params)
static Mesh * create_ico_sphere_mesh(const int subdivisions, const float radius)
void register_node_type_geo_mesh_primitive_ico_sphere()
static bNodeSocketTemplate geo_node_mesh_primitive_ico_sphere_out[]
static bNodeSocketTemplate geo_node_mesh_primitive_ico_sphere_in[]
void geo_node_type_base(bNodeType *ntype, int type, const char *name, short nclass, short flag)
static GeometrySet create_with_mesh(Mesh *mesh, GeometryOwnershipType ownership=GeometryOwnershipType::Owned)
Compact definition of a node socket.
NodeGeometryExecFunction geometry_node_execute
static float4x4 identity()
__forceinline const avxi abs(const avxi &a)