ICF 3.1.1.10
Technical documentation of ICF Libraries
CCameraDelegatorComp.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#pragma once
7
8
9// ICF includes
11#include <iprm/IParamsSet.h>
13
14
15namespace icam
16{
17
18
25 public IBitmapAcquisition,
26 virtual protected istd::IChangeable
27{
28public:
30
31 I_BEGIN_COMPONENT(CCameraDelegatorComp);
32 I_REGISTER_INTERFACE(IBitmapAcquisition);
33 I_REGISTER_INTERFACE(iproc::IProcessor);
34 I_ASSIGN(m_slaveCameraCompPtr, "SlaveCamera", "Slave camera object", true, "SlaveCamera");
35 I_ASSIGN(m_parameterSetCompPtr, "ParamsSet", "Parameter set used for overriding of the input parameters", false, "ParamsSet");
36 I_END_COMPONENT;
37
38 // reimplemented (iipr::IBitmapAcquisition)
39 istd::CIndex2d GetBitmapSize(const iprm::IParamsSet* paramsPtr) const override;
40
41 // reimplemented (iproc::IProcessor)
42 int GetProcessorState(const iprm::IParamsSet* paramsPtr) const override;
44 const iprm::IParamsSet* paramsPtr,
45 const istd::IPolymorphic* inputPtr,
46 const istd::IChangeable* outputPtr) const override;
48 const iprm::IParamsSet* paramsPtr,
49 const istd::IPolymorphic* inputPtr,
50 istd::IChangeable* outputPtr,
51 bool allowAsync = false,
52 iproc::IProgressManager* progressManagerPtr = nullptr) override;
53 void InitProcessor(const iprm::IParamsSet* paramsPtr, bool doReset) override;
54
55protected:
56 virtual const iprm::IParamsSet* GetWorkingParamsSet(const iprm::IParamsSet* inputParamsPtr) const;
57
58 // reimplemented (icomp::CComponentBase)
59 void OnComponentCreated() override;
60
61protected:
62 I_REF(IBitmapAcquisition, m_slaveCameraCompPtr);
63 I_REF(iprm::IParamsSet, m_parameterSetCompPtr);
64};
65
66
67} // namespace icam
68
69
Implementation of bitmap acquisition delegating all calls to some slave object.
istd::CIndex2d GetBitmapSize(const iprm::IParamsSet *paramsPtr) const override
Get size of acquired bitmap for specified parameters.
void InitProcessor(const iprm::IParamsSet *paramsPtr, bool doReset) override
Init processor and give him all or part of parameters.
iproc::CTaskState DoProcessing(const iprm::IParamsSet *paramsPtr, const istd::IPolymorphic *inputPtr, istd::IChangeable *outputPtr, bool allowAsync=false, iproc::IProgressManager *progressManagerPtr=nullptr) override
Do synchronized processing.
ilog::CLoggerComponentBase BaseClass
int GetProcessorState(const iprm::IParamsSet *paramsPtr) const override
Get state of this processor for processing of specified parameters.
bool AreParamsAccepted(const iprm::IParamsSet *paramsPtr, const istd::IPolymorphic *inputPtr, const istd::IChangeable *outputPtr) const override
Check if specified parameter set is accepted for this processor.
void OnComponentCreated() override
virtual const iprm::IParamsSet * GetWorkingParamsSet(const iprm::IParamsSet *inputParamsPtr) const
Bitmap acquisition processor.
Wrapper provider of log-functionality for component based implementations.
Set of general parameters.
Definition IParamsSet.h:29
Represent state of asynchronous operation.
Definition CTaskState.h:28
Interface for all synchrone and asynchrone processors with "push data" model.
Definition IProcessor.h:26
Consume information about progress of some process.
Index implementation for addressing elements in 2D-space.
Definition CIndex2d.h:25
Common interface for data model objects, which can be changed.
Definition IChangeable.h:32
Contains interfaces, implementations and components of image acquisition and processing.

© Witold Gantzke and Kirill Lepskiy