Commit: 9a06c6a0401c6b894ef9964260755dbcb971695e Author: Hans Goudey Date: Mon Oct 26 22:54:55 2020 -0500 Branches: geometry-nodes https://developer.blender.org/rB9a06c6a0401c6b894ef9964260755dbcb971695e
Geometry Nodes: Add function to create a temporary pointcloud We needed a "nomain" funciton similar to the one we have for meshes in order to add a working pointcloud for the geometry nodes. =================================================================== M source/blender/blenkernel/BKE_pointcloud.h M source/blender/blenkernel/intern/pointcloud.c =================================================================== diff --git a/source/blender/blenkernel/BKE_pointcloud.h b/source/blender/blenkernel/BKE_pointcloud.h index 985a8cc3ca7..5598a9c3645 100644 --- a/source/blender/blenkernel/BKE_pointcloud.h +++ b/source/blender/blenkernel/BKE_pointcloud.h @@ -38,6 +38,7 @@ extern const char *POINTCLOUD_ATTR_RADIUS; void *BKE_pointcloud_add(struct Main *bmain, const char *name); void *BKE_pointcloud_add_default(struct Main *bmain, const char *name); +struct PointCloud *BKE_pointcloud_new_nomain(const int totpoint); struct BoundBox *BKE_pointcloud_boundbox_get(struct Object *ob); diff --git a/source/blender/blenkernel/intern/pointcloud.c b/source/blender/blenkernel/intern/pointcloud.c index 78acf7251fa..68f77d492f5 100644 --- a/source/blender/blenkernel/intern/pointcloud.c +++ b/source/blender/blenkernel/intern/pointcloud.c @@ -228,6 +228,29 @@ void *BKE_pointcloud_add_default(Main *bmain, const char *name) return pointcloud; } +PointCloud *BKE_pointcloud_new_nomain(const int totpoint) +{ + PointCloud *pointcloud = BKE_libblock_alloc( + NULL, ID_PT, BKE_idtype_idcode_to_name(ID_PT), LIB_ID_CREATE_LOCALIZE); + + pointcloud_init_data(&pointcloud->id); + + pointcloud->totpoint = totpoint; + + CustomData_add_layer_named(&pointcloud->pdata, + CD_PROP_FLOAT, + CD_CALLOC, + NULL, + pointcloud->totpoint, + POINTCLOUD_ATTR_RADIUS); + + pointcloud->totpoint = totpoint; + CustomData_realloc(&pointcloud->pdata, pointcloud->totpoint); + BKE_pointcloud_update_customdata_pointers(pointcloud); + + return pointcloud; +} + BoundBox *BKE_pointcloud_boundbox_get(Object *ob) { BLI_assert(ob->type == OB_POINTCLOUD); _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs