#include <HxMfMpo.h>
Public Methods | |
HxMfMpo (HxImageData **srcs, int nSrcs, HxString mpoName) | |
Constructor. More... | |
~HxMfMpo () | |
Destructor. More... | |
HxImageData ** | sources () const |
The source images of the frame. More... | |
int | nSources () const |
The number of source images of the frame. More... | |
HxImageData * | result () const |
The result image of the frame. More... |
|
Constructor.
00019 { 00020 if (!nSrcs) 00021 return; 00022 00023 _nSrcs = nSrcs; 00024 _src = new HxImageData * [nSrcs]; 00025 _tmp = new HxImageData * [nSrcs]; 00026 00027 int i; 00028 for (i = 0; i < nSrcs; i++) { 00029 if (!srcs[i]) 00030 return; 00031 _src[i] = srcs[i]; 00032 _tmp[i] = 0; 00033 } 00034 00035 /* find broadest signature and minimum sizes */ 00036 HxImageSignature broadestSig(srcs[0]->signature()); 00037 HxSizes sizes = srcs[0]->sizes(); 00038 for (i = 1; i < nSrcs; i++) { 00039 HxImageSignature srcnSig(srcs[i]->signature()); 00040 broadestSig = broadestSig.broadest(srcnSig); 00041 sizes = sizes.sup(srcs[i]->sizes()); 00042 } 00043 00044 static HxRegKey* mpoKey 00045 = HxRegistry::instance().findKey("/imagefunctortable/mpo"); 00046 HxRegKey* k = mpoKey ? mpoKey->findKey(mpoName) : 0; 00047 k = k ? k->findKey("resulttype") : 0; 00048 const HxRegValue* v = k ? k->findValue(broadestSig.toString()) : 0; 00049 HxImageSignature resultSig 00050 = v ? HxImageSignature::NameToSignature(v->getData().toString()) : 00051 broadestSig; 00052 00053 for (i = 0; i < nSrcs; i++) { 00054 if (!broadestSig.isEqual(srcs[i]->signature())) { 00055 _tmp[i] = HxImgDataFactory::instance().makeImage(broadestSig, sizes); 00056 _tmp[i]->set(srcs[i]); 00057 _src[i] = _tmp[i]; 00058 } 00059 } 00060 00061 _result = HxImgDataFactory::instance().makeImage(resultSig, sizes); 00062 } |
|
Destructor.
00065 { 00066 for (int i = 0; i < _nSrcs; i++) { 00067 if (_tmp[i]) 00068 delete _tmp[i]; 00069 } 00070 delete [] _tmp; 00071 delete [] _src; 00072 } |
|
The source images of the frame.
00076 { 00077 return _src; 00078 } |
|
The number of source images of the frame.
00082 { 00083 return _nSrcs; 00084 } |
|
The result image of the frame.
00088 { 00089 return _result; 00090 } |