18 is_value_calculated_ =
false;
19 stabilization_resolution_socket_ =
nullptr;
24 if (!is_value_calculated_) {
29 void MovieClipAttributeOperation::calc_value()
32 is_value_calculated_ =
true;
33 if (clip_ ==
nullptr) {
36 float loc[2], scale,
angle;
43 stabilization_resolution_socket_ ?
48 stabilization_operation.get_width(),
49 stabilization_operation.get_height(),
72 value_ = 1.0f / value_;
87 r_area = preferred_area;
92 if (!is_value_calculated_) {
float BKE_movieclip_remap_scene_to_clip_frame(const struct MovieClip *clip, float framenr)
void BKE_tracking_stabilization_data_get(struct MovieClip *clip, int framenr, int width, int height, float translation[2], float *scale, float *angle)
SIMD_FORCE_INLINE btScalar angle(const btVector3 &v) const
Return the angle between this and another vector.
bool needs_canvas_to_get_constant_
void determine_canvas(const rcti &preferred_area, rcti &r_area) override
MovieClipAttributeOperation()
void execute_pixel_sampled(float output[4], float x, float y, PixelSampler sampler) override
void init_execution() override
const float * get_constant_elem() override
NodeOperation & get_operation() const
void add_output_socket(DataType datatype)
const NodeOperationFlags get_flags() const
ccl_global KernelShaderEvalInput ccl_global float * output