|
Blender V4.5
|
#include <cmath>#include <cstring>#include "BLI_math_base.h"#include "BLI_math_base.hh"#include "BLI_math_interp.hh"#include "BLI_math_vector.h"#include "BLI_math_vector_types.hh"#include "BLI_simd.hh"#include "BLI_strict_flags.h"Go to the source code of this file.
Namespaces | |
| namespace | blender |
| namespace | blender::math |
Macros | |
| #define | EWA_MAXIDX 255 |
Enumerations | |
| enum class | blender::math::eCubicFilter { blender::math::BSpline , blender::math::Mitchell } |
Functions | |
| BLI_INLINE int | blender::math::wrap_coord (float u, int size, InterpWrapMode wrap) |
| void | blender::math::interpolate_nearest_wrapmode_fl (const float *buffer, float *output, int width, int height, int components, float u, float v, InterpWrapMode wrap_u, InterpWrapMode wrap_v) |
| template<enum eCubicFilter filter> | |
| static float4 | blender::math::cubic_filter_coefficients (float f) |
| template<typename T, eCubicFilter filter> | |
| BLI_INLINE void | blender::math::bicubic_interpolation (const T *src_buffer, T *output, int width, int height, int components, float u, float v, InterpWrapMode wrap_u, InterpWrapMode wrap_v) |
| BLI_INLINE void | blender::math::bilinear_fl_impl (const float *buffer, float *output, int width, int height, int components, float u, float v, InterpWrapMode wrap_x, InterpWrapMode wrap_y) |
| template<bool border> | |
| BLI_INLINE uchar4 | blender::math::bilinear_byte_impl (const uchar *buffer, int width, int height, float u, float v) |
| uchar4 | blender::math::interpolate_bilinear_border_byte (const uchar *buffer, int width, int height, float u, float v) |
| uchar4 | blender::math::interpolate_bilinear_byte (const uchar *buffer, int width, int height, float u, float v) |
| float4 | blender::math::interpolate_bilinear_border_fl (const float *buffer, int width, int height, float u, float v) |
| void | blender::math::interpolate_bilinear_border_fl (const float *buffer, float *output, int width, int height, int components, float u, float v) |
| float4 | blender::math::interpolate_bilinear_fl (const float *buffer, int width, int height, float u, float v) |
| void | blender::math::interpolate_bilinear_fl (const float *buffer, float *output, int width, int height, int components, float u, float v) |
| void | blender::math::interpolate_bilinear_wrapmode_fl (const float *buffer, float *output, int width, int height, int components, float u, float v, InterpWrapMode wrap_u, InterpWrapMode wrap_v) |
| uchar4 | blender::math::interpolate_bilinear_wrap_byte (const uchar *buffer, int width, int height, float u, float v) |
| float4 | blender::math::interpolate_bilinear_wrap_fl (const float *buffer, int width, int height, float u, float v) |
| uchar4 | blender::math::interpolate_cubic_bspline_byte (const uchar *buffer, int width, int height, float u, float v) |
| float4 | blender::math::interpolate_cubic_bspline_fl (const float *buffer, int width, int height, float u, float v) |
| void | blender::math::interpolate_cubic_bspline_fl (const float *buffer, float *output, int width, int height, int components, float u, float v) |
| void | blender::math::interpolate_cubic_bspline_wrapmode_fl (const float *buffer, float *output, int width, int height, int components, float u, float v, InterpWrapMode wrap_u, InterpWrapMode wrap_v) |
| uchar4 | blender::math::interpolate_cubic_mitchell_byte (const uchar *buffer, int width, int height, float u, float v) |
| float4 | blender::math::interpolate_cubic_mitchell_fl (const float *buffer, int width, int height, float u, float v) |
| void | blender::math::interpolate_cubic_mitchell_fl (const float *buffer, float *output, int width, int height, int components, float u, float v) |
| static void | radangle2imp (float a2, float b2, float th, float *A, float *B, float *C, float *F) |
| void | BLI_ewa_imp2radangle (float A, float B, float C, float F, float *a, float *b, float *th, float *ecc) |
| void | BLI_ewa_filter (const int width, const int height, const bool intpol, const bool use_alpha, const float uv[2], const float du[2], const float dv[2], ewa_filter_read_pixel_cb read_pixel_cb, void *userdata, float result[4]) |
Variables | |
| const float | EWA_WTS [EWA_MAXIDX+1] |
| #define EWA_MAXIDX 255 |
Definition at line 761 of file math_interp.cc.
| void BLI_ewa_filter | ( | int | width, |
| int | height, | ||
| bool | intpol, | ||
| bool | use_alpha, | ||
| const float | uv[2], | ||
| const float | du[2], | ||
| const float | dv[2], | ||
| ewa_filter_read_pixel_cb | read_pixel_cb, | ||
| void * | userdata, | ||
| float | result[4] ) |
TODO(sergey): Consider making this function inlined, so the pixel read callback could also be inlined in order to avoid per-pixel function calls.
Definition at line 843 of file math_interp.cc.
References A, B, b, BLI_ewa_imp2radangle(), C, ceilf, EWA_MAXIDX, EWA_WTS, F, floorf, madd_v3_v3fl(), mul_v3_fl(), radangle2imp(), result, sqrtf, U, UNUSED_VARS, V, v, v2, and zero_v4().
Referenced by ewa_eval(), blender::compositor::Result::sample_ewa_extended(), and blender::compositor::Result::sample_ewa_zero().
| void BLI_ewa_imp2radangle | ( | float | A, |
| float | B, | ||
| float | C, | ||
| float | F, | ||
| float * | a, | ||
| float * | b, | ||
| float * | th, | ||
| float * | ecc ) |
Definition at line 813 of file math_interp.cc.
References A, atan2f, B, b, C, F, M_PI, and sqrtf.
Referenced by BLI_ewa_filter(), and imagewraposa_aniso().
|
static |
Definition at line 802 of file math_interp.cc.
References A, B, C, cosf, F, and sinf.
Referenced by BLI_ewa_filter().
| const float EWA_WTS[EWA_MAXIDX+1] |
Definition at line 762 of file math_interp.cc.
Referenced by BLI_ewa_filter(), and feline_eval().