ICF 3.1.1.10
Technical documentation of ICF Libraries
CBitmapJoinerSupplierComp.h
Go to the documentation of this file.
1/********************************************************************************
2** This file is part of the ICF Framework. Copyright (C) Witold Gantzke & Kirill Lepskiy
3** ICF Framework may be used under the terms of the LGPL License v. 2.1 by the Free Software Foundation.
4********************************************************************************/
5
6#ifndef iipr_CBitmapJoinerSupplierComp_included
7#define iipr_CBitmapJoinerSupplierComp_included
8
9
10// ICF includes
12#include <istd/TPointerVector.h>
13#include <iproc/IProcessor.h>
14#include <iinsp/ISupplier.h>
18
19
20namespace iipr
21{
22
27 public iinsp::TSupplierCompWrap<QPair<i2d::ITransformation2d*, std::unique_ptr<iimg::IBitmap>>>,
28 virtual public iimg::IBitmapProvider
29{
30public:
32
33 I_BEGIN_COMPONENT(CBitmapJoinerSupplierComp);
34 I_REGISTER_INTERFACE(iimg::IBitmapProvider);
35 I_ASSIGN(m_bitmapCompFact, "BitmapFactory", "Use to create bitmap object", true, "BitmapFactory");
36 I_ASSIGN(m_bitmapsProviderCompPtr, "BitmapListSupplier", "Provide list of the input images", true, "BitmapListSupplier");
37 I_ASSIGN_TO(m_bitmapsSupplierCompPtr, m_bitmapsProviderCompPtr, false);
38 I_ASSIGN_TO(m_bitmapsProviderModelCompPtr, m_bitmapsProviderCompPtr, false);
39 I_ASSIGN(m_useHorizontalJoinAttrPtr, "JoinHorizontal", "Join the image in horizontal direction", true, false);
40 I_END_COMPONENT;
41
42protected:
43 bool EnsureBitmapCreated(ProductType& result) const;
45
46 // reimplemented (iimg::IBitmapProvider)
47 const iimg::IBitmap* GetBitmap() const override;
48
49 // reimplemented (iinsp::TSupplierCompWrap)
50 int ProduceObject(ProductType& result) const override;
51
52 // reimplemented (icomp::CComponentBase)
53 void OnComponentCreated() override;
54
55private:
56 I_FACT(iimg::IBitmap, m_bitmapCompFact);
57
58 I_REF(iimg::IMultiBitmapProvider, m_bitmapsProviderCompPtr);
59 I_REF(iinsp::ISupplier, m_bitmapsSupplierCompPtr);
60 I_REF(imod::IModel, m_bitmapsProviderModelCompPtr);
61
62 I_ATTR(bool, m_useHorizontalJoinAttrPtr);
63};
64
65
66} // namespace iipr
67
68
69#endif // !iipr_CBitmapJoinerSupplierComp_included
70
71
Common interface for all calibration objects.
Definition of single plane bitmap.
Definition IBitmap.h:24
Bitmap supplier allowing to access of produced bitmap.
Supplier allowing to access of multiple produced bitmaps.
Base interface for suppliers providing calculating of objects on demand ("pull data" model).
Definition ISupplier.h:28
Standard implementation of interface iinsp::ISupplier with preparation for component implementation.
QPair< i2d::ITransformation2d *, std::unique_ptr< iimg::IBitmap > > ProductType
Supplier of bitmap's vector built on bitmap.
iinsp::TSupplierCompWrap< QPair< i2d::ITransformation2d *, std::unique_ptr< iimg::IBitmap > > > BaseClass
const iimg::IBitmap * GetBitmap() const override
Get access to produced bitmap object.
void OnComponentCreated() override
int ProduceObject(ProductType &result) const override
Produce single object.
virtual const i2d::ITransformation2d * GetLogTransform() const
bool EnsureBitmapCreated(ProductType &result) const
Common interface for model objects, that supports Model/Observer design pattern.
Definition IModel.h:29
Contains the image processing classes.

© Witold Gantzke and Kirill Lepskiy