48 int i, k, transformparticle;
49 int count = 0, hasselected = 0;
58 for (i = 0, point = edit->
points; i < edit->
totpoint; i++, point++) {
59 point->
flag &= ~PEP_TRANSFORM;
60 transformparticle = 0;
63 for (k = 0, key = point->keys; k < point->totkey; k++, key++) {
67 transformparticle = 1;
69 else if (is_prop_edit) {
70 transformparticle = 1;
76 if (transformparticle) {
77 count += point->totkey;
83 if (hasselected == 0) {
96 tx = tc->data_ext =
nullptr;
103 for (i = 0, point = edit->
points; i < edit->
totpoint; i++, point++) {
117 for (k = 0, key = point->keys; k < point->totkey; k++, key++) {
133 else if (!is_prop_edit) {
149 td->ival = *(key->
time);
156 tx->
size = (key - 1)->time;
159 if (k == point->totkey - 1) {
163 tx->
quat = (key + 1)->time;
173 if (is_prop_edit && head != tail) {
198 float mat[4][4], imat[4][4], co[3];
205 for (i = 0, point = edit->
points; i < edit->
totpoint; i++, point++, td++) {
216 for (k = 0, key = point->keys; k < point->totkey; k++, key++) {
void BKE_view_layer_synced_ensure(const Scene *scene, ViewLayer *view_layer)
Object * BKE_view_layer_active_object_get(const ViewLayer *view_layer)
void psys_mat_hair_to_global(struct Object *ob, struct Mesh *mesh, short from, struct ParticleData *pa, float hairmat[4][4])
void BKE_particle_batch_cache_dirty_tag(struct ParticleSystem *psys, int mode)
@ BKE_PARTICLE_BATCH_DIRTY_ALL
void unit_m3(float m[3][3])
void unit_m4(float m[4][4])
void mul_m4_v3(const float M[4][4], float r[3])
bool invert_m4_m4(float inverse[4][4], const float mat[4][4])
MINLINE void copy_v3_v3(float r[3], const float a[3])
MINLINE bool compare_v3v3(const float v1[3], const float v2[3], float limit) ATTR_WARN_UNUSED_RESULT
void DEG_id_tag_update(ID *id, unsigned int flags)
void PE_update_object(Depsgraph *depsgraph, Scene *scene, Object *ob, int useflag)
ParticleEditSettings * PE_settings(Scene *scene)
PTCacheEdit * PE_get_current(Depsgraph *depsgraph, Scene *scene, Object *ob)
Read Guarded memory(de)allocation.
in reality light always falls off quadratically Particle Retrieve the data of the particle that spawned the object for example to give variation to multiple instances of an object Point Retrieve information about points in a point cloud Retrieve the edges of an object as it appears to Cycles topology will always appear triangulated Convert a blackbody temperature to an RGB value Normal Generate a perturbed normal from an RGB normal map image Typically used for faking highly detailed surfaces Generate an OSL shader from a file or text data block Image Sample an image file as a texture Gabor Generate Gabor noise Gradient Generate interpolated color and intensity values based on the input vector Magic Generate a psychedelic color texture Voronoi Generate Worley noise based on the distance to random points Typically used to generate textures such as or biological cells Brick Generate a procedural texture producing bricks Texture Retrieve multiple types of texture coordinates nTypically used as inputs for texture nodes Vector Convert a point
void *(* MEM_callocN)(size_t len, const char *str)
ObjectRuntimeHandle * runtime
PTCacheEditPoint * points
struct ParticleSystem * psys
struct ParticleSystemModifierData * psmd_eval
static void createTransParticleVerts(bContext *, TransInfo *t)
static void recalcData_particles(TransInfo *t)
TransConvertTypeInfo TransConvertType_Particle
static void flushTransParticles(TransInfo *t)