[Bf-blender-cvs] [3d5efb4335f] geometry-nodes: Geometry Nodes: rename Geometry type to GeometrySet
Jacques Lucke
noreply at git.blender.org
Mon Nov 9 13:08:45 CET 2020
Commit: 3d5efb4335fe3879455099d3866469ac4c0f4c79
Author: Jacques Lucke
Date: Mon Nov 9 13:08:17 2020 +0100
Branches: geometry-nodes
https://developer.blender.org/rB3d5efb4335fe3879455099d3866469ac4c0f4c79
Geometry Nodes: rename Geometry type to GeometrySet
This should not change any functionality.
After talking to Brecht, we agreed that it might be good
not to have a class called Geometry for now. In the future
we might want to use a Geometry class as base class for
meshes, curves, etc.
This commit renames the Geometry class to GeometrySet,
because it is essentially a container that can contain
multiple geometries of different types.
===================================================================
R085 source/blender/blenkernel/BKE_geometry.hh source/blender/blenkernel/BKE_geometry_set.hh
M source/blender/blenkernel/CMakeLists.txt
R080 source/blender/blenkernel/intern/geometry.cc source/blender/blenkernel/intern/geometry_set.cc
M source/blender/modifiers/intern/MOD_nodes.cc
M source/blender/nodes/NOD_geometry_exec.hh
M source/blender/nodes/geometry/node_geometry_exec.cc
M source/blender/nodes/geometry/nodes/node_geo_boolean.cc
M source/blender/nodes/geometry/nodes/node_geo_edge_split.cc
M source/blender/nodes/geometry/nodes/node_geo_point_distribute.cc
M source/blender/nodes/geometry/nodes/node_geo_point_instance.cc
M source/blender/nodes/geometry/nodes/node_geo_subdivision_surface.cc
M source/blender/nodes/geometry/nodes/node_geo_transform.cc
M source/blender/nodes/geometry/nodes/node_geo_triangulate.cc
M source/blender/nodes/intern/node_socket.cc
===================================================================
diff --git a/source/blender/blenkernel/BKE_geometry.hh b/source/blender/blenkernel/BKE_geometry_set.hh
similarity index 85%
rename from source/blender/blenkernel/BKE_geometry.hh
rename to source/blender/blenkernel/BKE_geometry_set.hh
index fd03b110749..36c77619139 100644
--- a/source/blender/blenkernel/BKE_geometry.hh
+++ b/source/blender/blenkernel/BKE_geometry_set.hh
@@ -32,8 +32,8 @@ struct PointCloud;
namespace blender::bke {
-/* An automatically reference counted geometry. */
-using GeometryPtr = UserCounter<class Geometry>;
+/* An automatically reference counted geometry set. */
+using GeometrySetPtr = UserCounter<class GeometrySet>;
/* Each geometry component has a specific type. The type determines what kind of data the component
* stores. Functions modifying a geometry will usually just modify a subset of the component types.
@@ -82,31 +82,31 @@ template<typename T>
inline constexpr bool is_geometry_component_v = std::is_base_of_v<GeometryComponent, T>;
/**
- * A geometry contains zero or more geometry components. There is at most one component of each
+ * A geometry set contains zero or more geometry components. There is at most one component of each
* type. Individual components might be shared between multiple geometries.
*
* Geometries are reference counted. This allows them to be shared without making unnecessary
* copies. A geometry that is shared is immutable. If some code wants to change it,
- * #make_geometry_mutable should be called first.
+ * #make_geometry_set_mutable should be called first.
*/
-class Geometry {
+class GeometrySet {
private:
- /* Number of users of this geometry. If this number goes to zero, the geometry is freed. If it
- * is above 1, the geometry is immutable. */
+ /* Number of users of this geometry set. If this number goes to zero, the set is freed. If
+ * it is above 1, the geometry set is immutable. */
std::atomic<int> users_ = 1;
using GeometryComponentPtr = UserCounter<class GeometryComponent>;
Map<GeometryComponentType, GeometryComponentPtr> components_;
public:
- Geometry() = default;
- Geometry(const Geometry &other);
- Geometry(Geometry &&other) = delete;
- ~Geometry() = default;
+ GeometrySet() = default;
+ GeometrySet(const GeometrySet &other);
+ GeometrySet(GeometrySet &&other) = delete;
+ ~GeometrySet() = default;
/* Disable copy and move assignment operators. */
- Geometry &operator=(const Geometry &other) = delete;
- Geometry &operator=(Geometry &&other) = delete;
+ GeometrySet &operator=(const GeometrySet &other) = delete;
+ GeometrySet &operator=(GeometrySet &&other) = delete;
void user_add();
void user_remove();
@@ -127,7 +127,7 @@ class Geometry {
}
/* Utility methods for creation. */
- static GeometryPtr create_with_mesh(Mesh *mesh, bool transfer_ownership = true);
+ static GeometrySetPtr create_with_mesh(Mesh *mesh, bool transfer_ownership = true);
/* Utility methods for access. */
bool has_mesh() const;
@@ -142,7 +142,7 @@ class Geometry {
void replace_pointcloud(PointCloud *pointcloud, bool transfer_ownership = true);
};
-void make_geometry_mutable(GeometryPtr &geometry);
+void make_geometry_set_mutable(GeometrySetPtr &geometry);
/** A geometry component that can store a mesh. */
class MeshComponent : public GeometryComponent {
diff --git a/source/blender/blenkernel/CMakeLists.txt b/source/blender/blenkernel/CMakeLists.txt
index d6185ae3f5a..7361a750992 100644
--- a/source/blender/blenkernel/CMakeLists.txt
+++ b/source/blender/blenkernel/CMakeLists.txt
@@ -124,7 +124,7 @@ set(SRC
intern/fmodifier.c
intern/font.c
intern/freestyle.c
- intern/geometry.cc
+ intern/geometry_set.cc
intern/gpencil.c
intern/gpencil_curve.c
intern/gpencil_geom.c
@@ -312,7 +312,7 @@ set(SRC
BKE_fluid.h
BKE_font.h
BKE_freestyle.h
- BKE_geometry.hh
+ BKE_geometry_set.hh
BKE_global.h
BKE_gpencil.h
BKE_gpencil_curve.h
diff --git a/source/blender/blenkernel/intern/geometry.cc b/source/blender/blenkernel/intern/geometry_set.cc
similarity index 80%
rename from source/blender/blenkernel/intern/geometry.cc
rename to source/blender/blenkernel/intern/geometry_set.cc
index aa58ce17f5b..568e581fd85 100644
--- a/source/blender/blenkernel/intern/geometry.cc
+++ b/source/blender/blenkernel/intern/geometry_set.cc
@@ -14,7 +14,7 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
-#include "BKE_geometry.hh"
+#include "BKE_geometry_set.hh"
#include "BKE_lib_id.h"
#include "BKE_mesh.h"
#include "BKE_pointcloud.h"
@@ -66,22 +66,22 @@ bool GeometryComponent::is_mutable() const
/** \} */
/* -------------------------------------------------------------------- */
-/** \name Geometry
+/** \name Geometry Set
* \{ */
-/* Makes a copy of the geometry. The individual components are shared with the original geometry.
- * Therefore, this is a relatively cheap operation.
+/* Makes a copy of the geometry set. The individual components are shared with the original
+ * geometry set. Therefore, this is a relatively cheap operation.
*/
-Geometry::Geometry(const Geometry &other) : components_(other.components_)
+GeometrySet::GeometrySet(const GeometrySet &other) : components_(other.components_)
{
}
-void Geometry::user_add()
+void GeometrySet::user_add()
{
users_.fetch_add(1);
}
-void Geometry::user_remove()
+void GeometrySet::user_remove()
{
const int new_users = users_.fetch_sub(1) - 1;
if (new_users == 0) {
@@ -89,17 +89,17 @@ void Geometry::user_remove()
}
}
-bool Geometry::is_mutable() const
+bool GeometrySet::is_mutable() const
{
- /* If the geometry is shared, it is read-only. */
+ /* If the geometry set is shared, it is read-only. */
/* The user count can be 0, when this is called from the destructor. */
return users_ <= 1;
}
-/* This method can only be used when the geometry is mutable. It returns a mutable geometry
+/* This method can only be used when the geometry set is mutable. It returns a mutable geometry
* component of the given type.
*/
-GeometryComponent &Geometry::get_component_for_write(GeometryComponentType component_type)
+GeometryComponent &GeometrySet::get_component_for_write(GeometryComponentType component_type)
{
BLI_assert(this->is_mutable());
return components_.add_or_modify(
@@ -124,7 +124,7 @@ GeometryComponent &Geometry::get_component_for_write(GeometryComponentType compo
}
/* Get the component of the given type. Might return null if the component does not exist yet. */
-const GeometryComponent *Geometry::get_component_for_read(
+const GeometryComponent *GeometrySet::get_component_for_read(
GeometryComponentType component_type) const
{
const GeometryComponentPtr *component = components_.lookup_ptr(component_type);
@@ -135,90 +135,90 @@ const GeometryComponent *Geometry::get_component_for_read(
}
/* Returns a read-only mesh or null. */
-const Mesh *Geometry::get_mesh_for_read() const
+const Mesh *GeometrySet::get_mesh_for_read() const
{
const MeshComponent *component = this->get_component_for_read<MeshComponent>();
return (component == nullptr) ? nullptr : component->get_for_read();
}
-/* Returns true when the geometry has a mesh component that has a mesh. */
-bool Geometry::has_mesh() const
+/* Returns true when the geometry set has a mesh component that has a mesh. */
+bool GeometrySet::has_mesh() const
{
const MeshComponent *component = this->get_component_for_read<MeshComponent>();
return component != nullptr && component->has_mesh();
}
/* Returns a read-only point cloud of null. */
-const PointCloud *Geometry::get_pointcloud_for_read() const
+const PointCloud *GeometrySet::get_pointcloud_for_read() const
{
const PointCloudComponent *component = this->get_component_for_read<PointCloudComponent>();
return (component == nullptr) ? nullptr : component->get_for_read();
}
-/* Returns true when the geometry has a point cloud component that has a point cloud. */
-bool Geometry::has_pointcloud() const
+/* Returns true when the geometry set has a point cloud component that has a point cloud. */
+bool GeometrySet::has_pointcloud() const
{
const PointCloudComponent *component = this->get_component_for_read<PointCloudComponent>();
return component != nullptr && component->has_pointcloud();
}
-/* Create a new geometry that only contains the given mesh. Ownership of the mesh is transferred to
- * the new geometry. */
-GeometryPtr Geometry::create_with_mesh(Mesh *mesh, bool transfer_ownership)
+/* Create a new geometry set that only contains the given mesh. Ownership of the mesh is
+ * transferred to the new geometry. */
+GeometrySetPtr GeometrySet::create_with_mesh(Mesh *mesh, bool transfer_ownership)
{
- Geometry *geometry = new Geometry();
- MeshComponent &component = geometry->get_component_for_write<MeshComponent>();
+ GeometrySet *geometry_set = new GeometrySet();
+ MeshComponent &component = geometry_set->get_component_for_write<MeshComponent>();
component.replace(mesh, transfer_ownership);
- return geometry;
+ return geometry_set;
}
/* Clear the existing mesh and replace it with the given one. */
-void Geometry::replace_mesh(Mesh *mesh, bool transfer_ownership)
+void GeometrySet::replace_mesh(Mesh *mesh, bool transfer_ownership)
{
MeshComponent &component = this->get_component_for_write<MeshComponent>();
component.replace(mesh, transfer_ownership);
}
/* Clear the existing point cloud and replace with the given one. */
-void Geometry::replace_pointcloud(PointCloud *pointcloud, bool transfer_ownership)
+void GeometrySet::replace_pointcloud(PointCloud *pointcloud, bool transfer_ownership)
{
PointCloudComponent &pointcloud_component = this->get_component_for_write<PointCloudComponent>();
pointcloud_component.replace(pointcloud, transfer_ownership);
}
/* Returns a mutable mesh or null. No ownership is transferred. */
-Mesh *Geometry::get_mesh_for_write()
+Mesh *GeometrySet::get_mesh_for_write()
{
MeshComponent &component = this->get_component_for_write<MeshComponent>();
return component.get_for_write();
}
/* Returns a mutable point cloud or null. No ownership is transferred. */
-PointCloud *Geomet
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list