fix bbox handling
This commit is contained in:
parent
c8ec7ca76a
commit
73164b3b33
3 changed files with 20 additions and 3 deletions
|
@ -134,6 +134,11 @@ void Iwa_TileFx::transform(double frame, int port, const TRectD &rectOnOutput,
|
|||
TRectD &rectOnInput, TRenderSettings &infoOnInput) {
|
||||
infoOnInput = infoOnOutput;
|
||||
|
||||
if (!m_input.isConnected()) {
|
||||
rectOnInput.empty();
|
||||
return;
|
||||
}
|
||||
|
||||
TRectD inputBox;
|
||||
m_input->getBBox(frame, inputBox, infoOnOutput);
|
||||
|
||||
|
@ -161,6 +166,8 @@ void Iwa_TileFx::transform(double frame, int port, const TRectD &rectOnOutput,
|
|||
|
||||
int Iwa_TileFx::getMemoryRequirement(const TRectD &rect, double frame,
|
||||
const TRenderSettings &info) {
|
||||
if (!m_input.isConnected()) return 0;
|
||||
|
||||
TRectD inputBox;
|
||||
m_input->getBBox(frame, inputBox, info);
|
||||
|
||||
|
|
|
@ -90,6 +90,11 @@ void TileFx::transform(double frame, int port, const TRectD &rectOnOutput,
|
|||
TRenderSettings &infoOnInput) {
|
||||
infoOnInput = infoOnOutput;
|
||||
|
||||
if (!m_input.isConnected()) {
|
||||
rectOnInput.empty();
|
||||
return;
|
||||
}
|
||||
|
||||
TRectD inputBox;
|
||||
m_input->getBBox(frame, inputBox, infoOnOutput);
|
||||
|
||||
|
@ -116,6 +121,8 @@ void TileFx::transform(double frame, int port, const TRectD &rectOnOutput,
|
|||
|
||||
int TileFx::getMemoryRequirement(const TRectD &rect, double frame,
|
||||
const TRenderSettings &info) {
|
||||
if (!m_input.isConnected()) return 0;
|
||||
|
||||
TRectD inputBox;
|
||||
m_input->getBBox(frame, inputBox, info);
|
||||
|
||||
|
@ -157,7 +164,7 @@ void TileFx::doCompute(TTile &tile, double frame, const TRenderSettings &ri) {
|
|||
//------------------------------------------------------------------------------
|
||||
//! Make the tile of the image contained in \b inputTile in \b tile
|
||||
/*
|
||||
*/
|
||||
*/
|
||||
void TileFx::makeTile(const TTile &inputTile, const TTile &tile) const {
|
||||
// Build the mirroring pattern. It obviously repeats itself out of 2x2 tile
|
||||
// blocks.
|
||||
|
|
|
@ -541,8 +541,11 @@ TAffine TRasterFx::handledAffine(const TRenderSettings &info, double frame) {
|
|||
bool TRasterFx::getBBox(double frame, TRectD &bBox,
|
||||
const TRenderSettings &info) {
|
||||
bool ret = doGetBBox(frame, bBox, info);
|
||||
bBox = info.m_affine * bBox;
|
||||
enlargeToI(bBox);
|
||||
if (!bBox.isEmpty()) { // TODO: check if bbox can always be empty when ret ==
|
||||
// false
|
||||
bBox = info.m_affine * bBox;
|
||||
enlargeToI(bBox);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue