|
Nori
|
Weighted pixel storage for a rectangular subregion of an image. More...
#include <block.h>
Public Member Functions | |
| ImageBlock (const Vector2i &size, const ReconstructionFilter *filter) | |
| ~ImageBlock () | |
| Release all memory. | |
| void | setOffset (const Point2i &offset) |
| Configure the offset of the block within the main image. | |
| const Point2i & | getOffset () const |
| Return the offset of the block within the main image. | |
| void | setSize (const Point2i &size) |
| Configure the size of the block within the main image. | |
| const Vector2i & | getSize () const |
| Return the size of the block within the main image. | |
| int | getBorderSize () const |
| Return the border size in pixels. | |
| Bitmap * | toBitmap () const |
| Turn the block into a proper bitmap. | |
| void | clear () |
| Clear all contents. | |
| void | put (const Point2f &pos, const Color3f &value) |
| Record a sample with the given position and radiance value. | |
| void | put (ImageBlock &b) |
| Merge another image block into this one. | |
| void | lock () const |
| Lock the image block (using an internal mutex) | |
| void | unlock () const |
| Unlock the image block. | |
| QString | toString () const |
| Return a human-readable string summary. | |
Protected Attributes | |
| Point2i | m_offset |
| Vector2i | m_size |
| int | m_borderSize |
| float * | m_filter |
| float | m_filterRadius |
| float * | m_weightsX |
| float * | m_weightsY |
| float | m_lookupFactor |
| QMutex | m_mutex |
Weighted pixel storage for a rectangular subregion of an image.
This class implements storage for a rectangular subregion of a larger image that is being rendered. For each pixel, it records color values along with a weight that specifies the accumulated influence of nearby samples on the pixel (according to the used reconstruction filter).
When rendering with filters, the samples in a rectangular region will generally also contribute to pixels just outside of this region. For that reason, this class also stores information about a small border region around the rectangle, whose size depends on the properties of the reconstruction filter.
| ImageBlock::ImageBlock | ( | const Vector2i & | size, |
| const ReconstructionFilter * | filter | ||
| ) |
Create a new image block of the specified maximum size
| size | Desired maximum size of the block |
| filter | Samples will be convolved with the image reconstruction filter provided here. |
| ImageBlock::~ImageBlock | ( | ) |
Release all memory.
| int ImageBlock::getBorderSize | ( | ) | const [inline] |
| const Point2i& ImageBlock::getOffset | ( | ) | const [inline] |
| const Vector2i& ImageBlock::getSize | ( | ) | const [inline] |
| void ImageBlock::lock | ( | ) | const [inline] |
| void ImageBlock::put | ( | ImageBlock & | b | ) |
Merge another image block into this one.
During the merge operation, this function locks the destination block using a mutex.
Record a sample with the given position and radiance value.
| void ImageBlock::setOffset | ( | const Point2i & | offset | ) | [inline] |
| void ImageBlock::setSize | ( | const Point2i & | size | ) | [inline] |
| Bitmap* ImageBlock::toBitmap | ( | ) | const |
Turn the block into a proper bitmap.
This entails normalizing all pixels and discarding the border region.
| QString ImageBlock::toString | ( | ) | const |
Return a human-readable string summary.
| void ImageBlock::unlock | ( | ) | const [inline] |
int ImageBlock::m_borderSize [protected] |
float* ImageBlock::m_filter [protected] |
float ImageBlock::m_filterRadius [protected] |
float ImageBlock::m_lookupFactor [protected] |
QMutex ImageBlock::m_mutex [mutable, protected] |
Point2i ImageBlock::m_offset [protected] |
Vector2i ImageBlock::m_size [protected] |
float* ImageBlock::m_weightsX [protected] |
float * ImageBlock::m_weightsY [protected] |