#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 }
|
1.2.12 written by Dimitri van Heesch,
© 1997-2001