[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