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:
Diffstat (limited to 'intern/cycles/render/attribute.h')
-rw-r--r--intern/cycles/render/attribute.h300
1 files changed, 151 insertions, 149 deletions
diff --git a/intern/cycles/render/attribute.h b/intern/cycles/render/attribute.h
index ed9e9fe76d6..ebab0fe7f88 100644
--- a/intern/cycles/render/attribute.h
+++ b/intern/cycles/render/attribute.h
@@ -37,8 +37,8 @@ struct Transform;
/* Attributes for voxels are images */
struct VoxelAttribute {
- ImageManager *manager;
- int slot;
+ ImageManager *manager;
+ int slot;
};
/* Attribute
@@ -47,114 +47,116 @@ struct VoxelAttribute {
* Supported types: Float, Color, Vector, Normal, Point */
class Attribute {
-public:
- ustring name;
- AttributeStandard std;
-
- TypeDesc type;
- vector<char> buffer;
- AttributeElement element;
- uint flags; /* enum AttributeFlag */
-
- Attribute() {}
- ~Attribute();
- void set(ustring name, TypeDesc type, AttributeElement element);
- void resize(Mesh *mesh, 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;
-
- char *data()
- {
- return (buffer.size())? &buffer[0]: NULL;
- }
- float2 *data_float2()
- {
- assert(data_sizeof() == sizeof(float2));
- return (float2*)data();
- }
- float3 *data_float3()
- {
- assert(data_sizeof() == sizeof(float3));
- return (float3*)data();
- }
- float4 *data_float4()
- {
- assert(data_sizeof() == sizeof(float4));
- return (float4*)data();
- }
- float *data_float()
- {
- assert(data_sizeof() == sizeof(float));
- return (float*)data();
- }
- uchar4 *data_uchar4()
- {
- assert(data_sizeof() == sizeof(uchar4));
- return (uchar4*)data();
- }
- Transform *data_transform()
- {
- assert(data_sizeof() == sizeof(Transform));
- return (Transform*)data();
- }
- VoxelAttribute *data_voxel()
- {
- assert(data_sizeof() == sizeof(VoxelAttribute));
- return ( VoxelAttribute*)data();
- }
-
- const char *data() const
- {
- return (buffer.size())? &buffer[0]: NULL;
- }
- const float2 *data_float2() const
- {
- assert(data_sizeof() == sizeof(float2));
- return (const float2*)data();
- }
- const float3 *data_float3() const
- {
- assert(data_sizeof() == sizeof(float3));
- return (const float3*)data();
- }
- const float4 *data_float4() const
- {
- assert(data_sizeof() == sizeof(float4));
- return (const float4*)data();
- }
- const float *data_float() const
- {
- assert(data_sizeof() == sizeof(float));
- return (const float*)data();
- }
- const Transform *data_transform() const
- {
- assert(data_sizeof() == sizeof(Transform));
- return (const Transform*)data();
- }
- const VoxelAttribute *data_voxel() const
- {
- assert(data_sizeof() == sizeof(VoxelAttribute));
- return (const VoxelAttribute*)data();
- }
-
- void zero_data(void* dst);
- void add_with_weight(void* dst, void* src, float weight);
-
- void add(const float& f);
- void add(const float2& f);
- void add(const float3& f);
- void add(const uchar4& f);
- void add(const Transform& f);
- void add(const VoxelAttribute& f);
- void add(const char *data);
-
- static bool same_storage(TypeDesc a, TypeDesc b);
- static const char *standard_name(AttributeStandard std);
- static AttributeStandard name_standard(const char *name);
+ public:
+ ustring name;
+ AttributeStandard std;
+
+ TypeDesc type;
+ vector<char> buffer;
+ AttributeElement element;
+ uint flags; /* enum AttributeFlag */
+
+ Attribute()
+ {
+ }
+ ~Attribute();
+ void set(ustring name, TypeDesc type, AttributeElement element);
+ void resize(Mesh *mesh, 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;
+
+ char *data()
+ {
+ return (buffer.size()) ? &buffer[0] : NULL;
+ }
+ float2 *data_float2()
+ {
+ assert(data_sizeof() == sizeof(float2));
+ return (float2 *)data();
+ }
+ float3 *data_float3()
+ {
+ assert(data_sizeof() == sizeof(float3));
+ return (float3 *)data();
+ }
+ float4 *data_float4()
+ {
+ assert(data_sizeof() == sizeof(float4));
+ return (float4 *)data();
+ }
+ float *data_float()
+ {
+ assert(data_sizeof() == sizeof(float));
+ return (float *)data();
+ }
+ uchar4 *data_uchar4()
+ {
+ assert(data_sizeof() == sizeof(uchar4));
+ return (uchar4 *)data();
+ }
+ Transform *data_transform()
+ {
+ assert(data_sizeof() == sizeof(Transform));
+ return (Transform *)data();
+ }
+ VoxelAttribute *data_voxel()
+ {
+ assert(data_sizeof() == sizeof(VoxelAttribute));
+ return (VoxelAttribute *)data();
+ }
+
+ const char *data() const
+ {
+ return (buffer.size()) ? &buffer[0] : NULL;
+ }
+ const float2 *data_float2() const
+ {
+ assert(data_sizeof() == sizeof(float2));
+ return (const float2 *)data();
+ }
+ const float3 *data_float3() const
+ {
+ assert(data_sizeof() == sizeof(float3));
+ return (const float3 *)data();
+ }
+ const float4 *data_float4() const
+ {
+ assert(data_sizeof() == sizeof(float4));
+ return (const float4 *)data();
+ }
+ const float *data_float() const
+ {
+ assert(data_sizeof() == sizeof(float));
+ return (const float *)data();
+ }
+ const Transform *data_transform() const
+ {
+ assert(data_sizeof() == sizeof(Transform));
+ return (const Transform *)data();
+ }
+ const VoxelAttribute *data_voxel() const
+ {
+ assert(data_sizeof() == sizeof(VoxelAttribute));
+ return (const VoxelAttribute *)data();
+ }
+
+ void zero_data(void *dst);
+ void add_with_weight(void *dst, void *src, float weight);
+
+ void add(const float &f);
+ void add(const float2 &f);
+ void add(const float3 &f);
+ void add(const uchar4 &f);
+ void add(const Transform &f);
+ void add(const VoxelAttribute &f);
+ void add(const char *data);
+
+ static bool same_storage(TypeDesc a, TypeDesc b);
+ static const char *standard_name(AttributeStandard std);
+ static AttributeStandard name_standard(const char *name);
};
/* Attribute Set
@@ -162,29 +164,29 @@ public:
* Set of attributes on a mesh. */
class AttributeSet {
-public:
- Mesh *triangle_mesh;
- Mesh *curve_mesh;
- Mesh *subd_mesh;
- list<Attribute> attributes;
+ public:
+ Mesh *triangle_mesh;
+ Mesh *curve_mesh;
+ Mesh *subd_mesh;
+ list<Attribute> attributes;
- AttributeSet();
- ~AttributeSet();
+ AttributeSet();
+ ~AttributeSet();
- Attribute *add(ustring name, TypeDesc type, AttributeElement element);
- Attribute *find(ustring name) const;
- void remove(ustring name);
+ Attribute *add(ustring name, TypeDesc type, AttributeElement element);
+ Attribute *find(ustring name) const;
+ void remove(ustring name);
- Attribute *add(AttributeStandard std, ustring name = ustring());
- Attribute *find(AttributeStandard std) const;
- void remove(AttributeStandard std);
+ Attribute *add(AttributeStandard std, ustring name = ustring());
+ Attribute *find(AttributeStandard std) const;
+ void remove(AttributeStandard std);
- Attribute *find(AttributeRequest& req);
+ Attribute *find(AttributeRequest &req);
- void remove(Attribute *attribute);
+ void remove(Attribute *attribute);
- void resize(bool reserve_only = false);
- void clear(bool preserve_voxel_data = false);
+ void resize(bool reserve_only = false);
+ void clear(bool preserve_voxel_data = false);
};
/* AttributeRequest
@@ -194,16 +196,16 @@ public:
* The attribute is found either by name or by standard attribute type. */
class AttributeRequest {
-public:
- ustring name;
- AttributeStandard std;
+ public:
+ ustring name;
+ AttributeStandard std;
- /* temporary variables used by MeshManager */
- TypeDesc triangle_type, curve_type, subd_type;
- AttributeDescriptor triangle_desc, curve_desc, subd_desc;
+ /* temporary variables used by MeshManager */
+ TypeDesc triangle_type, curve_type, subd_type;
+ AttributeDescriptor triangle_desc, curve_desc, subd_desc;
- explicit AttributeRequest(ustring name_);
- explicit AttributeRequest(AttributeStandard std);
+ explicit AttributeRequest(ustring name_);
+ explicit AttributeRequest(AttributeStandard std);
};
/* AttributeRequestSet
@@ -211,26 +213,26 @@ public:
* Set of attributes requested by a shader. */
class AttributeRequestSet {
-public:
- vector<AttributeRequest> requests;
+ public:
+ vector<AttributeRequest> requests;
- AttributeRequestSet();
- ~AttributeRequestSet();
+ AttributeRequestSet();
+ ~AttributeRequestSet();
- void add(ustring name);
- void add(AttributeStandard std);
- void add(AttributeRequestSet& reqs);
- void add_standard(ustring name);
+ void add(ustring name);
+ void add(AttributeStandard std);
+ void add(AttributeRequestSet &reqs);
+ void add_standard(ustring name);
- bool find(ustring name);
- bool find(AttributeStandard std);
+ bool find(ustring name);
+ bool find(AttributeStandard std);
- size_t size();
- void clear();
+ size_t size();
+ void clear();
- bool modified(const AttributeRequestSet& other);
+ bool modified(const AttributeRequestSet &other);
};
CCL_NAMESPACE_END
-#endif /* __ATTRIBUTE_H__ */
+#endif /* __ATTRIBUTE_H__ */