Blender  V2.93
Classes | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | List of all members
blender::compositor::KeyingScreenOperation Class Reference

#include <COM_KeyingScreenOperation.h>

Inherits blender::compositor::NodeOperation.

Classes

struct  TileData
 
struct  TriangulationData
 

Public Member Functions

 KeyingScreenOperation ()
 
void initExecution () override
 
void deinitExecution () override
 
void * initializeTileData (rcti *rect) override
 
void deinitializeTileData (rcti *rect, void *data) override
 
void setMovieClip (MovieClip *clip)
 
void setTrackingObject (const char *object)
 
void setFramenumber (int framenumber)
 
void executePixel (float output[4], int x, int y, void *data) override
 calculate a single pixel More...
 
- Public Member Functions inherited from blender::compositor::NodeOperation
virtual ~NodeOperation ()
 
void set_name (const std::string name)
 
const std::string get_name () const
 
void set_id (const int id)
 
const int get_id () const
 
const NodeOperationFlags get_flags () const
 
unsigned int getNumberOfInputSockets () const
 
unsigned int getNumberOfOutputSockets () const
 
NodeOperationOutputgetOutputSocket (unsigned int index=0)
 
NodeOperationInputgetInputSocket (unsigned int index)
 
virtual bool isOutputOperation (bool) const
 isOutputOperation determines whether this operation is an output of the ExecutionSystem during rendering or editing. More...
 
void setbNodeTree (const bNodeTree *tree)
 
virtual void executeRegion (rcti *, unsigned int)
 when a chunk is executed by a CPUDevice, this method is called More...
 
virtual void executeOpenCLRegion (OpenCLDevice *, rcti *, unsigned int, MemoryBuffer **, MemoryBuffer *)
 when a chunk is executed by an OpenCLDevice, this method is called More...
 
virtual void executeOpenCL (OpenCLDevice *, MemoryBuffer *, cl_mem, MemoryBuffer **, std::list< cl_mem > *, std::list< cl_kernel > *)
 custom handle to add new tasks to the OpenCL command queue in order to execute a chunk on an GPUDevice. More...
 
void setResolution (unsigned int resolution[2])
 set the resolution More...
 
virtual bool isActiveViewerOutput () const
 is this operation the active viewer output user can select an ViewerNode to be active (the result of this node will be drawn on the backdrop). More...
 
virtual bool determineDependingAreaOfInterest (rcti *input, ReadBufferOperation *readOperation, rcti *output)
 
void setResolutionInputSocketIndex (unsigned int index)
 set the index of the input socket that will determine the resolution of this operation More...
 
virtual eCompositorPriority getRenderPriority () const
 get the render priority of this node. More...
 
bool isBraked () const
 
void updateDraw ()
 
unsigned int getWidth () const
 
unsigned int getHeight () const
 
void readSampled (float result[4], float x, float y, PixelSampler sampler)
 
void readFiltered (float result[4], float x, float y, float dx[2], float dy[2])
 
void read (float result[4], int x, int y, void *chunkData)
 
virtual MemoryBuffergetInputMemoryBuffer (MemoryBuffer **)
 
virtual std::unique_ptr< MetaDatagetMetaData ()
 

Protected Types

typedef struct blender::compositor::KeyingScreenOperation::TriangulationData TriangulationData
 
typedef struct blender::compositor::KeyingScreenOperation::TileData TileData
 

Protected Member Functions

void determineResolution (unsigned int resolution[2], unsigned int preferredResolution[2]) override
 
TriangulationDatabuildVoronoiTriangulation ()
 
- Protected Member Functions inherited from blender::compositor::NodeOperation
 NodeOperation ()
 
void addInputSocket (DataType datatype, ResizeMode resize_mode=ResizeMode::Center)
 
void addOutputSocket (DataType datatype)
 
void setWidth (unsigned int width)
 
void setHeight (unsigned int height)
 
SocketReadergetInputSocketReader (unsigned int inputSocketindex)
 
NodeOperationgetInputOperation (unsigned int inputSocketindex)
 
void deinitMutex ()
 
void initMutex ()
 
void lockMutex ()
 
void unlockMutex ()
 
void setComplex (bool complex)
 set whether this operation is complex More...
 
virtual void executePixelSampled (float[4], float, float, PixelSampler)
 calculate a single pixel More...
 
virtual void executePixelFiltered (float[4], float, float, float[2], float[2])
 calculate a single pixel using an EWA filter More...
 

Protected Attributes

MovieClipm_movieClip
 
int m_framenumber
 
TriangulationDatam_cachedTriangulation
 
char m_trackingObject [64]
 
- Protected Attributes inherited from blender::compositor::NodeOperation
unsigned int m_width
 
unsigned int m_height
 
NodeOperationFlags flags
 

Detailed Description

Class with implementation of green screen gradient rasterization

Definition at line 37 of file COM_KeyingScreenOperation.h.

Member Typedef Documentation

◆ TileData

◆ TriangulationData

Constructor & Destructor Documentation

◆ KeyingScreenOperation()

blender::compositor::KeyingScreenOperation::KeyingScreenOperation ( )

Member Function Documentation

◆ buildVoronoiTriangulation()

KeyingScreenOperation::TriangulationData * blender::compositor::KeyingScreenOperation::buildVoronoiTriangulation ( )
protected

Definition at line 73 of file COM_KeyingScreenOperation.cc.

References Freestyle::a, add_v2_v2v2(), add_v3_v3(), BKE_movieclip_get_ibuf(), BKE_movieclip_remap_scene_to_clip_frame(), BKE_movieclip_user_set_frame(), BKE_tracking_get_active_tracks(), BKE_tracking_get_pattern_imbuf(), BKE_tracking_marker_get(), BKE_tracking_object_get_named(), BKE_tracking_object_get_tracks(), BLI_freelistN(), BLI_voronoi_compute(), BLI_voronoi_triangulate(), Freestyle::c, VoronoiSite::co, VoronoiSite::color, ListBase::first, MovieTrackingMarker::flag, blender::compositor::NodeOperation::getHeight(), blender::compositor::NodeOperation::getWidth(), height, IMB_freeImBuf(), IN_RANGE_INCL, INIT_MINMAX2, m_framenumber, m_movieClip, m_trackingObject, MARKER_DISABLED, max, MEM_callocN, MEM_freeN, min, minmax_v2v2_v2(), mul_v3_fl(), MovieTrackingTrack::next, MovieTrackingTrack::offset, pos, MovieTrackingMarker::pos, ImBuf::rect, ImBuf::rect_float, srgb_to_linearrgb(), MovieClip::tracking, blender::compositor::KeyingScreenOperation::TriangulationData::triangles, blender::compositor::KeyingScreenOperation::TriangulationData::triangles_AABB, blender::compositor::KeyingScreenOperation::TriangulationData::triangles_total, blender::compositor::KeyingScreenOperation::TriangulationData::triangulated_points, blender::compositor::KeyingScreenOperation::TriangulationData::triangulated_points_total, width, ImBuf::x, rcti::xmax, rcti::xmin, ImBuf::y, rcti::ymax, rcti::ymin, and zero_v3().

Referenced by initializeTileData().

◆ deinitExecution()

void blender::compositor::KeyingScreenOperation::deinitExecution ( )
overridevirtual

◆ deinitializeTileData()

void blender::compositor::KeyingScreenOperation::deinitializeTileData ( rcti rect,
void *  data 
)
overridevirtual

◆ determineResolution()

void blender::compositor::KeyingScreenOperation::determineResolution ( unsigned int  resolution[2],
unsigned int  preferredResolution[2] 
)
overrideprotectedvirtual

Determine the output resolution. The resolution is retrieved from the Renderer

Reimplemented from blender::compositor::NodeOperation.

Definition at line 292 of file COM_KeyingScreenOperation.cc.

References BKE_movieclip_get_size(), BKE_movieclip_remap_scene_to_clip_frame(), BKE_movieclip_user_set_frame(), height, m_framenumber, m_movieClip, and width.

◆ executePixel()

void blender::compositor::KeyingScreenOperation::executePixel ( float  output[4],
int  x,
int  y,
void *   
)
overridevirtual

calculate a single pixel

Note
this method is called for complex
Parameters
resultis a float[4] array to store the result
xthe x-coordinate of the pixel to calculate in image space
ythe y-coordinate of the pixel to calculate in image space
inputBufferschunks that can be read by their ReadBufferOperation.
chunkDatachunk specific data a during execution time.

Reimplemented from blender::compositor::NodeOperation.

Definition at line 312 of file COM_KeyingScreenOperation.cc.

References Freestyle::a, barycentric_coords_v2(), barycentric_inside_triangle_v2(), Freestyle::c, data, float(), IN_RANGE_INCL, m_cachedTriangulation, m_movieClip, output, blender::compositor::KeyingScreenOperation::TriangulationData::triangles, blender::compositor::KeyingScreenOperation::TileData::triangles, blender::compositor::KeyingScreenOperation::TriangulationData::triangles_AABB, blender::compositor::KeyingScreenOperation::TileData::triangles_total, blender::compositor::KeyingScreenOperation::TriangulationData::triangulated_points, w(), x, rcti::xmax, rcti::xmin, y, rcti::ymax, and rcti::ymin.

◆ initExecution()

void blender::compositor::KeyingScreenOperation::initExecution ( )
overridevirtual

◆ initializeTileData()

void * blender::compositor::KeyingScreenOperation::initializeTileData ( rcti rect)
overridevirtual

◆ setFramenumber()

void blender::compositor::KeyingScreenOperation::setFramenumber ( int  framenumber)
inline

◆ setMovieClip()

void blender::compositor::KeyingScreenOperation::setMovieClip ( MovieClip clip)
inline

◆ setTrackingObject()

void blender::compositor::KeyingScreenOperation::setTrackingObject ( const char *  object)
inline

Member Data Documentation

◆ m_cachedTriangulation

TriangulationData* blender::compositor::KeyingScreenOperation::m_cachedTriangulation
protected

◆ m_framenumber

int blender::compositor::KeyingScreenOperation::m_framenumber
protected

◆ m_movieClip

MovieClip* blender::compositor::KeyingScreenOperation::m_movieClip
protected

◆ m_trackingObject

char blender::compositor::KeyingScreenOperation::m_trackingObject[64]
protected

Definition at line 54 of file COM_KeyingScreenOperation.h.

Referenced by buildVoronoiTriangulation(), and KeyingScreenOperation().


The documentation for this class was generated from the following files: