Blender  V2.93
Functions | Variables
hair.c File Reference
#include "MEM_guardedalloc.h"
#include "DNA_defaults.h"
#include "DNA_hair_types.h"
#include "DNA_material_types.h"
#include "DNA_object_types.h"
#include "BLI_listbase.h"
#include "BLI_math.h"
#include "BLI_rand.h"
#include "BLI_string.h"
#include "BLI_utildefines.h"
#include "BKE_anim_data.h"
#include "BKE_customdata.h"
#include "BKE_global.h"
#include "BKE_hair.h"
#include "BKE_idtype.h"
#include "BKE_lib_id.h"
#include "BKE_lib_query.h"
#include "BKE_lib_remap.h"
#include "BKE_main.h"
#include "BKE_modifier.h"
#include "BKE_object.h"
#include "BLT_translation.h"
#include "DEG_depsgraph_query.h"
#include "BLO_read_write.h"

Go to the source code of this file.

Functions

static void hair_random (Hair *hair)
 
static void hair_init_data (ID *id)
 
static void hair_copy_data (Main *UNUSED(bmain), ID *id_dst, const ID *id_src, const int flag)
 
static void hair_free_data (ID *id)
 
static void hair_foreach_id (ID *id, LibraryForeachIDData *data)
 
static void hair_blend_write (BlendWriter *writer, ID *id, const void *id_address)
 
static void hair_blend_read_data (BlendDataReader *reader, ID *id)
 
static void hair_blend_read_lib (BlendLibReader *reader, ID *id)
 
static void hair_blend_read_expand (BlendExpander *expander, ID *id)
 
void * BKE_hair_add (Main *bmain, const char *name)
 
BoundBoxBKE_hair_boundbox_get (Object *ob)
 
void BKE_hair_update_customdata_pointers (Hair *hair)
 
bool BKE_hair_customdata_required (Hair *UNUSED(hair), CustomDataLayer *layer)
 
HairBKE_hair_new_for_eval (const Hair *hair_src, int totpoint, int totcurve)
 
HairBKE_hair_copy_for_eval (Hair *hair_src, bool reference)
 
static Hairhair_evaluate_modifiers (struct Depsgraph *depsgraph, struct Scene *scene, Object *object, Hair *hair_input)
 
void BKE_hair_data_update (struct Depsgraph *depsgraph, struct Scene *scene, Object *object)
 
void BKE_hair_batch_cache_dirty_tag (Hair *hair, int mode)
 
void BKE_hair_batch_cache_free (Hair *hair)
 

Variables

static const char * HAIR_ATTR_POSITION = "position"
 
static const char * HAIR_ATTR_RADIUS = "radius"
 
IDTypeInfo IDType_ID_HA
 
void(* BKE_hair_batch_cache_dirty_tag_cb )(Hair *hair, int mode) = NULL
 
void(* BKE_hair_batch_cache_free_cb )(Hair *hair) = NULL
 

Function Documentation

◆ BKE_hair_add()

void* BKE_hair_add ( Main bmain,
const char *  name 
)

Definition at line 250 of file hair.c.

References BKE_id_new(), and ID_HA.

Referenced by BKE_object_obdata_add_from_type().

◆ BKE_hair_batch_cache_dirty_tag()

void BKE_hair_batch_cache_dirty_tag ( Hair hair,
int  mode 
)

Definition at line 413 of file hair.c.

References Hair::batch_cache, and BKE_hair_batch_cache_dirty_tag_cb.

Referenced by BKE_object_batch_cache_dirty_tag().

◆ BKE_hair_batch_cache_free()

void BKE_hair_batch_cache_free ( Hair hair)

Definition at line 420 of file hair.c.

References Hair::batch_cache, and BKE_hair_batch_cache_free_cb.

Referenced by hair_free_data().

◆ BKE_hair_boundbox_get()

BoundBox* BKE_hair_boundbox_get ( Object ob)

◆ BKE_hair_copy_for_eval()

Hair* BKE_hair_copy_for_eval ( Hair hair_src,
bool  reference 
)

◆ BKE_hair_customdata_required()

bool BKE_hair_customdata_required ( Hair UNUSEDhair,
CustomDataLayer layer 
)

◆ BKE_hair_data_update()

void BKE_hair_data_update ( struct Depsgraph depsgraph,
struct Scene scene,
Object object 
)

◆ BKE_hair_new_for_eval()

Hair* BKE_hair_new_for_eval ( const Hair hair_src,
int  totpoint,
int  totcurve 
)

◆ BKE_hair_update_customdata_pointers()

void BKE_hair_update_customdata_pointers ( Hair hair)

◆ hair_blend_read_data()

static void hair_blend_read_data ( BlendDataReader reader,
ID id 
)
static

◆ hair_blend_read_expand()

static void hair_blend_read_expand ( BlendExpander expander,
ID id 
)
static

Definition at line 169 of file hair.c.

References Freestyle::a, BLO_expand, Hair::mat, and Hair::totcol.

◆ hair_blend_read_lib()

static void hair_blend_read_lib ( BlendLibReader reader,
ID id 
)
static

Definition at line 161 of file hair.c.

References Freestyle::a, BLO_read_id_address, Hair::id, ID::lib, Hair::mat, and Hair::totcol.

◆ hair_blend_write()

static void hair_blend_write ( BlendWriter writer,
ID id,
const void *  id_address 
)
static

◆ hair_copy_data()

static void hair_copy_data ( Main UNUSEDbmain,
ID id_dst,
const ID id_src,
const int  flag 
)
static

◆ hair_evaluate_modifiers()

static Hair* hair_evaluate_modifiers ( struct Depsgraph depsgraph,
struct Scene scene,
Object object,
Hair hair_input 
)
static

◆ hair_foreach_id()

static void hair_foreach_id ( ID id,
LibraryForeachIDData data 
)
static

Definition at line 106 of file hair.c.

References BKE_LIB_FOREACHID_PROCESS, data, IDWALK_CB_USER, Hair::mat, and Hair::totcol.

◆ hair_free_data()

static void hair_free_data ( ID id)
static

◆ hair_init_data()

static void hair_init_data ( ID id)
static

◆ hair_random()

static void hair_random ( Hair hair)
static

Variable Documentation

◆ BKE_hair_batch_cache_dirty_tag_cb

void(* BKE_hair_batch_cache_dirty_tag_cb) (Hair *hair, int mode) ( Hair hair,
int  mode 
) = NULL

Definition at line 410 of file hair.c.

Referenced by BKE_hair_batch_cache_dirty_tag(), and DRW_engines_register().

◆ BKE_hair_batch_cache_free_cb

void(* BKE_hair_batch_cache_free_cb) (Hair *hair) ( Hair hair) = NULL

Definition at line 411 of file hair.c.

Referenced by BKE_hair_batch_cache_free(), and DRW_engines_register().

◆ HAIR_ATTR_POSITION

const char* HAIR_ATTR_POSITION = "position"
static

◆ HAIR_ATTR_RADIUS

const char* HAIR_ATTR_RADIUS = "radius"
static

Definition at line 53 of file hair.c.

Referenced by BKE_hair_update_customdata_pointers(), and hair_init_data().

◆ IDType_ID_HA

IDTypeInfo IDType_ID_HA
Initial value:
= {
.id_code = ID_HA,
.id_filter = FILTER_ID_HA,
.main_listbase_index = INDEX_ID_HA,
.struct_size = sizeof(Hair),
.name = "Hair",
.name_plural = "hairs",
.translation_context = BLT_I18NCONTEXT_ID_HAIR,
.flags = 0,
.copy_data = hair_copy_data,
.free_data = hair_free_data,
.make_local = NULL,
.foreach_id = hair_foreach_id,
.foreach_cache = NULL,
.owner_get = NULL,
.blend_write = hair_blend_write,
.blend_read_data = hair_blend_read_data,
.blend_read_lib = hair_blend_read_lib,
.blend_read_expand = hair_blend_read_expand,
.blend_read_undo_preserve = NULL,
.lib_override_apply_post = NULL,
}
#define BLT_I18NCONTEXT_ID_HAIR
#define FILTER_ID_HA
Definition: DNA_ID.h:736
@ INDEX_ID_HA
Definition: DNA_ID.h:830
@ ID_HA
Definition: DNA_ID_enums.h:93
struct Hair Hair
static void init_data(ModifierData *md)
static void hair_init_data(ID *id)
Definition: hair.c:59
static void hair_free_data(ID *id)
Definition: hair.c:93
static void hair_blend_read_expand(BlendExpander *expander, ID *id)
Definition: hair.c:169
static void hair_copy_data(Main *UNUSED(bmain), ID *id_dst, const ID *id_src, const int flag)
Definition: hair.c:79
static void hair_blend_write(BlendWriter *writer, ID *id, const void *id_address)
Definition: hair.c:114
static void hair_blend_read_lib(BlendLibReader *reader, ID *id)
Definition: hair.c:161
static void hair_foreach_id(ID *id, LibraryForeachIDData *data)
Definition: hair.c:106
static void hair_blend_read_data(BlendDataReader *reader, ID *id)
Definition: hair.c:146

Definition at line 177 of file hair.c.