#include <HxImgFtorSet.h>
Inheritance diagram for HxImgFtorSet::

Public Types | |
| typedef HxImgFtorSetKey | KeyType |
| The key type of this class. More... | |
Public Methods | |
| HxImgFtorSet () | |
| Constructor. More... | |
| virtual | ~HxImgFtorSet () |
| Destructor. More... | |
Protected Methods | |
| virtual void | doIt (DstDataPtrType dstPtr, SrcDataPtrType srcPtr, HxSizes srcSize, HxSizes dstSize, HxTagList &tags, HxImgFtorDescription *=0) |
| The actual operation. More... | |
|
|||||
|
The key type of this class.
Reimplemented from HxImgFtorI2Cast. |
|
|||||||||
|
Constructor.
00021 : HxImgFtorI2Cast<DstImgSigT, SrcImgSigT>( 00022 HxImgFtorSetKey(HxClassName<DstImgSigT>(), HxClassName<SrcImgSigT>())) 00023 { 00024 } |
|
|||||||||
|
Destructor.
00028 {
00029 }
|
|
||||||||||||||||||||||||||||||||
|
The actual operation.
Reimplemented from HxImgFtorI2Cast.
00068 {
00069 HxPointInt srcBegin, dstBegin, srcEnd, dstEnd;
00070
00071
00072 srcBegin = HxGetTag(tags, "srcBegin", HxPointInt(0, 0, 0));
00073 srcEnd = HxGetTag(tags, "srcEnd", HxPointInt(srcSize - HxSizes(1, 1, 1)));
00074 dstBegin = HxGetTag(tags, "dstBegin", HxPointInt(0, 0, 0));
00075 dstEnd = dstSize - HxSizes(1, 1, 1);
00076
00077
00078 if ((srcBegin.inf(HxPointInt(0, 0, 0)) != HxPointInt(0, 0, 0))
00079 || (srcBegin.sup(srcEnd) != srcEnd))
00080 {
00081 HxEnvironment::instance()->errorStream()
00082 << "Extended set: source begin out of range" << STD_ENDL;
00083 return;
00084 }
00085
00086 if ((dstBegin.inf(HxPointInt(0, 0, 0)) != HxPointInt(0, 0, 0))
00087 || (dstBegin.sup(dstEnd) != dstEnd))
00088 {
00089 HxEnvironment::instance()->errorStream()
00090 << "Extended set: destination begin out of range" << STD_ENDL;
00091 return;
00092 }
00093
00094 if ((srcEnd.inf(srcBegin) != srcBegin)
00095 || (srcEnd.sup(srcSize - HxSizes(1, 1, 1))
00096 != (srcSize - HxSizes(1, 1, 1))))
00097 {
00098 HxEnvironment::instance()->errorStream()
00099 << "Extended set: source end out of range" << STD_ENDL;
00100 return;
00101 }
00102
00103 HxSizes regionSize = HxSizes(srcEnd - srcBegin) + HxSizes(1, 1, 1);
00104 regionSize = regionSize.inf(dstSize - HxSizes(dstBegin));
00105
00106 srcPtr.incXYZ(srcBegin.x(), srcBegin.y(), srcBegin.z());
00107 dstPtr.incXYZ(dstBegin.x(), dstBegin.y(), dstBegin.z());
00108
00109 int y, z;
00110
00111 int lineSize = regionSize.x();
00112
00113 for (z = 0; z < regionSize.z(); z++)
00114 for (y = 0; y < regionSize.y(); y++)
00115 {
00116 SrcDataPtrType sPtr(srcPtr);
00117 DstDataPtrType dPtr(dstPtr);
00118 sPtr.incXYZ(0, y, z);
00119 dPtr.incXYZ(0, y, z);
00120 HxFuncSet(dPtr, sPtr, lineSize);
00121 }
00122
00123 }
|
1.2.12 written by Dimitri van Heesch,
© 1997-2001