24 : user_data_(user_data),
25 get_image_callback_(get_image_callback),
26 release_image_callback_(release_image_callback),
27 get_mask_for_track_callback_(get_mask_for_track_callback),
28 release_mask_callback_(release_mask_callback) {}
30 virtual ~LibmvFrameAccessor() {}
34#define CHECK_INPUT_MODE(mode) \
35 case mode: return LIBMV_IMAGE_MODE_##mode;
38#undef CHECK_INPUT_MODE
40 assert(!
"unknown input mode passed from Libmv.");
45 void get_libmv_region(
const Region& region,
libmv_Region* libmv_region) {
46 libmv_region->
min[0] = region.min(0);
47 libmv_region->
min[1] = region.min(1);
48 libmv_region->
max[0] = region.max(0);
49 libmv_region->
max[1] = region.max(1);
52 Key GetImage(
int clip,
63 get_libmv_region(*region, &libmv_region);
65 Key cache_key = get_image_callback_(user_data_,
68 get_libmv_input_mode(input_mode),
70 region !=
NULL ? &libmv_region :
NULL,
84 void ReleaseImage(
Key cache_key) { release_image_callback_(cache_key); }
86 Key GetMaskForTrack(
int clip,
95 get_libmv_region(*region, &libmv_region);
98 get_mask_for_track_callback_(user_data_,
102 region !=
NULL ? &libmv_region :
NULL,
107 if (cache_key ==
NULL) {
113 FloatImage temp_image(float_buffer, height, width, 1);
119 void ReleaseMask(
Key key) { release_mask_callback_(key); }
121 bool GetClipDimensions(
int ,
int* ,
int* ) {
125 int NumClips() {
return 1; }
127 int NumFrames(
int ) {
return 0; }
147 release_image_callback,
148 get_mask_for_track_callback,
149 release_mask_callback);
173 output_image->
buffer =
new float[num_pixels];
174 memcpy(output_image->
buffer,
output.Data(), num_pixels *
sizeof(
float));
Group Output data from inside of a node group A color picker Mix two input colors RGB to Convert a color s luminance to a grayscale value Generate a normal vector and a dot product Brightness Control the brightness and contrast of the input color Vector Map input vector components with curves Camera Retrieve information about the camera and how it relates to the current shading point s position Clamp a value between a minimum and a maximum Vector Perform vector math operation Invert Invert a producing a negative Combine Generate a color from its and blue channels(Deprecated)") DefNode(ShaderNode
SIMD_FORCE_INLINE btVector3 transform(const btVector3 &point) const
void CopyFrom(const ArrayND< D, N > &other)
void libmv_FrameAccessorDestroy(libmv_FrameAccessor *frame_accessor)
#define CHECK_INPUT_MODE(mode)
void libmv_frameAccessorgetTransformRun(const libmv_FrameTransform *transform, const libmv_FloatImage *input_image, libmv_FloatImage *output_image)
int64_t libmv_frameAccessorgetTransformKey(const libmv_FrameTransform *transform)
libmv_FrameAccessor * libmv_FrameAccessorNew(libmv_FrameAccessorUserData *user_data, libmv_GetImageCallback get_image_callback, libmv_ReleaseImageCallback release_image_callback, libmv_GetMaskForTrackCallback get_mask_for_track_callback, libmv_ReleaseMaskCallback release_mask_callback)
struct libmv_FrameTransform libmv_FrameTransform
libmv_CacheKey(* libmv_GetImageCallback)(libmv_FrameAccessorUserData *user_data, int clip, int frame, libmv_InputMode input_mode, int downscale, const libmv_Region *region, const libmv_FrameTransform *transform, float **destination, int *width, int *height, int *channels)
struct libmv_FrameAccessorUserData libmv_FrameAccessorUserData
libmv_CacheKey(* libmv_GetMaskForTrackCallback)(libmv_FrameAccessorUserData *user_data, int clip, int frame, int track, const libmv_Region *region, float **destination, int *width, int *height)
void(* libmv_ReleaseImageCallback)(libmv_CacheKey cache_key)
void(* libmv_ReleaseMaskCallback)(libmv_CacheKey cache_key)
struct libmv_FrameAccessor libmv_FrameAccessor
struct libmv_Region libmv_Region
#define LIBMV_OBJECT_NEW(type,...)
#define LIBMV_OBJECT_DELETE(what, type)