bool doGetBBox(double frame, TRectD &bBox, const TRenderSettings &ri) override { if (m_input.isConnected() && m_controller.isConnected()) { TRectD controlBox, inputBox; TRenderSettings ri2(ri); ri2.m_affine = TAffine(); m_controller->getBBox(frame, controlBox, ri2); TRenderSettings ri3(ri); int shrink = tround((ri.m_shrinkX + ri.m_shrinkY) / 2.0); // Should be there no need for the alias... SandorFxRenderData *artContourData = buildRenderData(frame, shrink, controlBox, ""); ri3.m_data.push_back(artContourData); return m_input->doGetBBox(frame, bBox, ri3); } else if (m_input.isConnected()) { m_input->doGetBBox(frame, bBox, ri); return false; } bBox = TRectD(); return false; }
void TGeometryFx::doCompute(TTile &tile, double frame, const TRenderSettings &ri) { TRasterFxPort *input = dynamic_cast<TRasterFxPort *>(getInputPort(0)); assert(input); if (!input->isConnected()) return; if (!getActiveTimeRegion().contains(frame)) { TRasterFxP(input->getFx())->compute(tile, frame, ri); return; } if (!TRaster32P(tile.getRaster()) && !TRaster64P(tile.getRaster())) throw TException("AffineFx unsupported pixel type"); TAffine aff1 = getPlacement(frame); TRenderSettings ri2(ri); ri2.m_affine = ri2.m_affine * aff1; TRasterFxP src = getInputPort("source")->getFx(); src->compute(tile, frame, ri2); return; }
static void ref_equal_test() { { ReturnInt ri(17); boost::function0<int> f = boost::ref(ri); // References and values are equal BOOST_CHECK(f == boost::ref(ri)); BOOST_CHECK(f == ri); BOOST_CHECK(boost::ref(ri) == f); BOOST_CHECK(!(f != boost::ref(ri))); BOOST_CHECK(!(f != ri)); BOOST_CHECK(!(boost::ref(ri) != f)); #if !(defined(__GNUC__) && __GNUC__ == 3 && __GNUC_MINOR__ <= 3) BOOST_CHECK(ri == f); BOOST_CHECK(!(ri != f)); #endif // Values equal, references inequal ReturnInt ri2(17); BOOST_CHECK(f == ri2); BOOST_CHECK(f != boost::ref(ri2)); BOOST_CHECK(boost::ref(ri2) != f); BOOST_CHECK(!(f != ri2)); BOOST_CHECK(!(f == boost::ref(ri2))); BOOST_CHECK(!(boost::ref(ri2) == f)); #if !(defined(__GNUC__) && __GNUC__ == 3 && __GNUC_MINOR__ <= 3) BOOST_CHECK(ri2 == f); BOOST_CHECK(!(ri2 != f)); #endif } #if !defined(BOOST_FUNCTION_NO_FUNCTION_TYPE_SYNTAX) { ReturnInt ri(17); boost::function<int(void)> f = boost::ref(ri); // References and values are equal BOOST_CHECK(f == boost::ref(ri)); BOOST_CHECK(f == ri); BOOST_CHECK(boost::ref(ri) == f); BOOST_CHECK(!(f != boost::ref(ri))); BOOST_CHECK(!(f != ri)); BOOST_CHECK(!(boost::ref(ri) != f)); # if !(defined(__GNUC__) && __GNUC__ == 3 && __GNUC_MINOR__ <= 3) BOOST_CHECK(ri == f); BOOST_CHECK(!(ri != f)); # endif // Values equal, references inequal ReturnInt ri2(17); BOOST_CHECK(f == ri2); BOOST_CHECK(f != boost::ref(ri2)); BOOST_CHECK(boost::ref(ri2) != f); BOOST_CHECK(!(f != ri2)); BOOST_CHECK(!(f == boost::ref(ri2))); BOOST_CHECK(!(boost::ref(ri2) == f)); # if !(defined(__GNUC__) && __GNUC__ == 3 && __GNUC_MINOR__ <= 3) BOOST_CHECK(ri2 == f); BOOST_CHECK(!(ri2 != f)); # endif } #endif }