Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrecht Van Lommel <brechtvanlommel@gmail.com>2020-02-02 14:04:19 +0300
committerBrecht Van Lommel <brechtvanlommel@gmail.com>2020-02-07 14:18:15 +0300
commitd9c5f0d25fc91b069158ae1ab4fddc21bfd85846 (patch)
tree18f55163c5b06385d055d5a79a4c653d3da6e595 /intern/cycles/render/attribute.h
parent46c9872afaa8053f8b2894c038402b1beb3ac66c (diff)
Cleanup: split Cycles Hair and Mesh classes, with Geometry base class
Diffstat (limited to 'intern/cycles/render/attribute.h')
-rw-r--r--intern/cycles/render/attribute.h15
1 files changed, 10 insertions, 5 deletions
diff --git a/intern/cycles/render/attribute.h b/intern/cycles/render/attribute.h
index ebab0fe7f88..d4bf630aeb6 100644
--- a/intern/cycles/render/attribute.h
+++ b/intern/cycles/render/attribute.h
@@ -21,6 +21,7 @@
#include "util/util_list.h"
#include "util/util_param.h"
+#include "util/util_set.h"
#include "util/util_types.h"
#include "util/util_vector.h"
@@ -31,6 +32,8 @@ class AttributeRequest;
class AttributeRequestSet;
class AttributeSet;
class ImageManager;
+class Geometry;
+class Hair;
class Mesh;
struct Transform;
@@ -61,12 +64,12 @@ class Attribute {
}
~Attribute();
void set(ustring name, TypeDesc type, AttributeElement element);
- void resize(Mesh *mesh, AttributePrimitive prim, bool reserve_only);
+ void resize(Geometry *geom, AttributePrimitive prim, bool reserve_only);
void resize(size_t num_elements);
size_t data_sizeof() const;
- size_t element_size(Mesh *mesh, AttributePrimitive prim) const;
- size_t buffer_size(Mesh *mesh, AttributePrimitive prim) const;
+ size_t element_size(Geometry *geom, AttributePrimitive prim) const;
+ size_t buffer_size(Geometry *geom, AttributePrimitive prim) const;
char *data()
{
@@ -157,6 +160,8 @@ class Attribute {
static bool same_storage(TypeDesc a, TypeDesc b);
static const char *standard_name(AttributeStandard std);
static AttributeStandard name_standard(const char *name);
+
+ void get_uv_tiles(Geometry *geom, AttributePrimitive prim, unordered_set<int> &tiles) const;
};
/* Attribute Set
@@ -166,8 +171,8 @@ class Attribute {
class AttributeSet {
public:
Mesh *triangle_mesh;
- Mesh *curve_mesh;
Mesh *subd_mesh;
+ Hair *hair;
list<Attribute> attributes;
AttributeSet();
@@ -200,7 +205,7 @@ class AttributeRequest {
ustring name;
AttributeStandard std;
- /* temporary variables used by MeshManager */
+ /* temporary variables used by GeometryManager */
TypeDesc triangle_type, curve_type, subd_type;
AttributeDescriptor triangle_desc, curve_desc, subd_desc;