29 const float *curve_radius,
34 const float *curve_radius,
39 const float *curve_radius,
41 size_t num_curve_keys,
48 const float *curve_radius,
50 size_t num_curve_keys,
60 const float *curve_radius,
62 size_t num_curve_keys,
69 const float *curve_radius,
71 size_t num_curve_keys,
101 void add_curve(
int first_key,
int shader);
111 int first = curve_first_key[i];
112 int next_first = (i + 1 < curve_first_key.size()) ? curve_first_key[i + 1] : curve_keys.size();
120 return curve_keys.size();
125 return curve_first_key.size();
130 return curve_keys.size() - curve_first_key.size();
int motion_step(float time) const
void resize_curves(int numcurves, int numkeys)
void add_curve(int first_key, int shader)
Curve get_curve(size_t i) const
bool need_shadow_transparency()
void compute_bounds() override
void reserve_curves(int numcurves, int numkeys)
size_t curve_segment_offset
size_t num_curves() const
bool update_shadow_transparency(Device *device, Scene *scene, Progress &progress)
void get_uv_tiles(ustring map, unordered_set< int > &tiles) override
void copy_center_to_motion_step(const int motion_step)
void pack_curves(Scene *scene, float4 *curve_key_co, KernelCurve *curve, KernelCurveSegment *curve_segments)
size_t num_segments() const
CurveShapeType curve_shape
void clear(bool preserve_shaders=false) override
void apply_transform(const Transform &tfm, const bool apply_to_motion) override
PrimitiveType primitive_type() const override
void add_curve_key(float3 loc, float radius)
#define CCL_NAMESPACE_END
#define NODE_SOCKET_API_ARRAY(type_, name)
ccl_gpu_kernel_postfix ccl_global KernelWorkTile * tiles
SocketIndexByIdentifierMap * map
void keys_for_step(const float3 *curve_keys, const float *curve_radius, const float3 *key_steps, size_t num_curve_keys, size_t num_steps, size_t step, size_t k0, size_t k1, float4 r_keys[2]) const
void cardinal_motion_keys(const float3 *curve_keys, const float *curve_radius, const float3 *key_steps, size_t num_curve_keys, size_t num_steps, float time, size_t k0, size_t k1, size_t k2, size_t k3, float4 r_keys[4]) const
void cardinal_keys_for_step(const float3 *curve_keys, const float *curve_radius, const float3 *key_steps, size_t num_curve_keys, size_t num_steps, size_t step, size_t k0, size_t k1, size_t k2, size_t k3, float4 r_keys[4]) const
void motion_keys(const float3 *curve_keys, const float *curve_radius, const float3 *key_steps, size_t num_curve_keys, size_t num_steps, float time, size_t k0, size_t k1, float4 r_keys[2]) const
void bounds_grow(const int k, const float3 *curve_keys, const float *curve_radius, BoundBox &bounds) const