Blender V5.0
Hair Class Reference

#include <hair.h>

Inherits Geometry.

Classes

struct  Curve

Public Member Functions

 Hair ()
 ~Hair () override
void clear (bool preserve_shaders=false) override
void resize_curves (const int numcurves, const int numkeys)
void reserve_curves (const int numcurves, const int numkeys)
void add_curve_key (const float3 co, const float radius)
void add_curve (const int first_key, const int shader)
void copy_center_to_motion_step (const int motion_step)
void compute_bounds () override
void apply_transform (const Transform &tfm, const bool apply_to_motion) override
Curve get_curve (const size_t i) const
size_t num_keys () const
size_t num_curves () const
size_t num_segments () const
bool is_traceable () const
void get_uv_tiles (ustring map, unordered_set< int > &tiles) override
void pack_curves (Scene *scene, float4 *curve_key_co, KernelCurve *curve, KernelCurveSegment *curve_segments)
PrimitiveType primitive_type () const override
bool need_shadow_transparency ()
bool update_shadow_transparency (Device *device, Scene *scene, Progress &progress)
Public Member Functions inherited from Geometry
 Geometry (const NodeType *node_type, const Type type)
 ~Geometry () override
bool need_attribute (Scene *scene, AttributeStandard std)
bool need_attribute (Scene *scene, ustring name)
AttributeRequestSet needed_attributes ()
float motion_time (const int step) const
int motion_step (const float time) const
void compute_bvh (Device *device, DeviceScene *dscene, SceneParams *params, Progress *progress, const size_t n, size_t total)
bool need_build_bvh (BVHLayout layout) const
bool is_instanced () const
bool has_true_displacement () const
virtual bool has_motion_blur () const
bool has_voxel_attributes () const
bool is_mesh () const
bool is_hair () const
bool is_pointcloud () const
bool is_volume () const
bool is_light () const
void tag_update (Scene *scene, bool rebuild)
Public Member Functions inherited from Node
 Node (const NodeType *type, ustring name=ustring())
virtual ~Node ()=0
void set (const SocketType &input, bool value)
void set (const SocketType &input, const int value)
void set (const SocketType &input, const uint value)
void set (const SocketType &input, const uint64_t value)
void set (const SocketType &input, const float value)
void set (const SocketType &input, const float2 value)
void set (const SocketType &input, const float3 value)
void set (const SocketType &input, const char *value)
void set (const SocketType &input, ustring value)
void set (const SocketType &input, const Transform &value)
void set (const SocketType &input, Node *value)
template<class ValueType, std::enable_if_t< std::is_enum_v< ValueType >, bool > = true>
void set (const SocketType &input, const ValueType &value)
void set (const SocketType &input, array< bool > &value)
void set (const SocketType &input, array< int > &value)
void set (const SocketType &input, array< float > &value)
void set (const SocketType &input, array< float2 > &value)
void set (const SocketType &input, array< float3 > &value)
void set (const SocketType &input, array< ustring > &value)
void set (const SocketType &input, array< Transform > &value)
void set (const SocketType &input, array< Node * > &value)
bool get_bool (const SocketType &input) const
int get_int (const SocketType &input) const
uint get_uint (const SocketType &input) const
uint64_t get_uint64 (const SocketType &input) const
float get_float (const SocketType &input) const
float2 get_float2 (const SocketType &input) const
float3 get_float3 (const SocketType &input) const
ustring get_string (const SocketType &input) const
Transform get_transform (const SocketType &input) const
Nodeget_node (const SocketType &input) const
const array< bool > & get_bool_array (const SocketType &input) const
const array< int > & get_int_array (const SocketType &input) const
const array< float > & get_float_array (const SocketType &input) const
const array< float2 > & get_float2_array (const SocketType &input) const
const array< float3 > & get_float3_array (const SocketType &input) const
const array< ustring > & get_string_array (const SocketType &input) const
const array< Transform > & get_transform_array (const SocketType &input) const
const array< Node * > & get_node_array (const SocketType &input) const
bool has_default_value (const SocketType &input) const
void set_default_value (const SocketType &input)
bool equals_value (const Node &other, const SocketType &socket) const
void copy_value (const SocketType &socket, const Node &other, const SocketType &other_socket)
void set_value (const SocketType &socket, const Node &other, const SocketType &other_socket)
bool equals (const Node &other) const
void hash (MD5Hash &md5)
size_t get_total_size_in_bytes () const
bool is_a (const NodeType *type)
bool socket_is_modified (const SocketType &input) const
bool is_modified () const
void tag_modified ()
void clear_modified ()
void print_modified_sockets () const
const NodeOwnerget_owner () const
void set_owner (const NodeOwner *owner_)
int reference_count () const
void reference ()
void dereference ()
void clear_reference_count ()

Public Attributes

size_t curve_key_offset
size_t curve_segment_offset
CurveShapeType curve_shape
Public Attributes inherited from Geometry
Type geometry_type
AttributeSet attributes
BoundBox bounds
bool transform_applied
bool transform_negative_scaled
Transform transform_normal
unique_ptr< BVHbvh
size_t attr_map_offset
size_t prim_offset
bool has_volume
bool has_surface_bssrdf
bool need_update_rebuild
bool need_update_bvh_for_offset
size_t index
Public Attributes inherited from Node
ustring name
const NodeTypetype
InternalNode internal
LeafNode leaf

Additional Inherited Members

Public Types inherited from Geometry
enum  Type {
  MESH , HAIR , VOLUME , POINTCLOUD ,
  LIGHT
}
Static Public Attributes inherited from Geometry
static const uint MAX_MOTION_STEPS = 129
Protected Member Functions inherited from Node
template<typename T>
void set_if_different (const SocketType &input, T value)
void set_if_different (const SocketType &input, Node *value)
template<typename T>
void set_if_different (const SocketType &input, array< T > &value)
void set_if_different (const SocketType &input, array< Node * > &value)
void dereference_all_used_nodes ()
Static Protected Member Functions inherited from Node
template<typename T>
static Tget_socket_value (const Node *node, const SocketType &socket)
Protected Attributes inherited from Node
const NodeOwnerowner
int ref_count {0}
SocketModifiedFlags socket_modified

Detailed Description

Definition at line 13 of file hair.h.

Constructor & Destructor Documentation

◆ Hair()

Hair::Hair ( )

Definition at line 292 of file hair.cpp.

References curve_key_offset, CURVE_RIBBON, curve_segment_offset, curve_shape, Geometry::Geometry(), and Geometry::HAIR.

Referenced by ~Hair().

◆ ~Hair()

Member Function Documentation

◆ add_curve()

void Hair::add_curve ( const int first_key,
const int shader )

Definition at line 342 of file hair.cpp.

Referenced by ExportCurveSegments(), and ~Hair().

◆ add_curve_key()

void Hair::add_curve_key ( const float3 co,
const float radius )

Definition at line 333 of file hair.cpp.

Referenced by ExportCurveSegments(), and ~Hair().

◆ apply_transform()

void Hair::apply_transform ( const Transform & tfm,
const bool apply_to_motion )
overridevirtual

◆ clear()

void Hair::clear ( bool preserve_shaders = false)
overridevirtual

Reimplemented from Geometry.

Definition at line 321 of file hair.cpp.

References Geometry::attributes, and Geometry::clear().

Referenced by ExportCurveSegments(), and ~Hair().

◆ compute_bounds()

◆ copy_center_to_motion_step()

void Hair::copy_center_to_motion_step ( const int motion_step)

◆ get_curve()

◆ get_uv_tiles()

void Hair::get_uv_tiles ( ustring map,
unordered_set< int > & tiles )
overridevirtual

Implements Geometry.

Definition at line 361 of file hair.cpp.

References ATTR_PRIM_GEOMETRY, ATTR_STD_UV, Geometry::attributes, Attribute::get_uv_tiles(), and tiles.

◆ is_traceable()

bool Hair::is_traceable ( ) const
inline

Definition at line 136 of file hair.h.

References num_segments().

Referenced by need_shadow_transparency().

◆ need_shadow_transparency()

◆ num_curves()

◆ num_keys()

size_t Hair::num_keys ( ) const
inline

Definition at line 121 of file hair.h.

Referenced by export_hair_curves_motion(), and update_shadow_transparency().

◆ num_segments()

size_t Hair::num_segments ( ) const
inline

◆ pack_curves()

◆ primitive_type()

◆ reserve_curves()

void Hair::reserve_curves ( const int numcurves,
const int numkeys )

Definition at line 311 of file hair.cpp.

References Geometry::attributes.

Referenced by ExportCurveSegments(), and ~Hair().

◆ resize_curves()

void Hair::resize_curves ( const int numcurves,
const int numkeys )

Definition at line 301 of file hair.cpp.

References Geometry::attributes.

Referenced by export_hair_curves(), and ~Hair().

◆ update_shadow_transparency()

Member Data Documentation

◆ curve_key_offset

size_t Hair::curve_key_offset

◆ curve_segment_offset

size_t Hair::curve_segment_offset

◆ curve_shape

CurveShapeType Hair::curve_shape

Definition at line 91 of file hair.h.

Referenced by Hair(), primitive_type(), and Scene::update_kernel_features().


The documentation for this class was generated from the following files: