IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
BaseTernaryCombinationRule.h
1 // BaseTernaryCombinationRule.h:
3 // -----------------------------
4 //
14 
15 #ifndef __IPSDKBASEPROCESSING_BASETERNARYCOMBINATIONRULE_H__
16 #define __IPSDKBASEPROCESSING_BASETERNARYCOMBINATIONRULE_H__
17 
18 // suppression warnings
19 // warning C4251: 'ipsdk::processor::BaseTernaryCombinationRule::_pRule1' : class 'boost::shared_ptr<T>' needs to have dll-interface to be used by clients of class 'ipsdk::processor::BaseTernaryCombinationRule'
20 #pragma warning (push)
21 #pragma warning (disable : 4251)
22 
23 #include <IPSDKBaseProcessing/Rule/Combination/BaseCombinationRule.h>
24 
25 namespace ipsdk {
26 namespace processor {
27 
30 
32 {
33 public:
37  virtual ~BaseTernaryCombinationRule() = 0;
39 
40 // methods
41 public:
45  void init(const RulePtr& pRule1,
46  const RulePtr& pRule2,
47  const RulePtr& pRule3);
48 
52  const BaseRule& getRule1() const;
53  const BaseRule& getRule2() const;
54  const BaseRule& getRule3() const;
56 
57 protected:
59  virtual bool testRule(const BaseRule& rule1,
60  const BaseRule& rule2,
61  const BaseRule& rule3) const = 0;
62 
63 private:
65  bool testRule() const;
66 
67 // attributes
68 private:
71  RulePtr _pRule1;
72  RulePtr _pRule2;
73  RulePtr _pRule3;
75 };
76 
79 
80 } // end of namespace processor
81 } // end of namespace ipsdk
82 
83 #pragma warning (pop)
84 
85 #endif // __IPSDKBASEPROCESSING_BASETERNARYCOMBINATIONRULE_H__
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
#define IPSDKBASEPROCESSING_API
Import/Export macro for library IPSDKBaseProcessing.
Definition: IPSDKBaseProcessingExports.h:27
Base class for rules composed of an operation on three other rules.
Definition: BaseTernaryCombinationRule.h:31
boost::shared_ptr< BaseRule > RulePtr
shared pointer to rule
Definition: RuleTypes.h:104
Base class for processing attributes rules.
Definition: BaseRule.h:41
Base class for rules composed of a combination of other rules.
Definition: BaseCombinationRule.h:27