55 lines
1.8 KiB
C++
55 lines
1.8 KiB
C++
#ifndef _MESHWARP_HPP_
|
|
#define _MESHWARP_HPP_
|
|
#include <mdiwin/types.hpp>
|
|
#include <mdiwin/point.hpp>
|
|
#include <mdiwin/string.hpp>
|
|
#include <mdiwin/vector.hpp>
|
|
#include <mdiwin/catmull.hpp>
|
|
|
|
class MeshWarp
|
|
{
|
|
public:
|
|
MeshWarp(void);
|
|
MeshWarp(HPALETTE hPalette,UHUGE *hpImage,WORD width,WORD height);
|
|
~MeshWarp();
|
|
HGLOBAL performWarp(Vector<Point> &sourceMesh,Vector<Point> &destMesh,int meshColRows,int &newWidth,int &newHeight);
|
|
HGLOBAL performWarp(Vector<FloatPairs> &sourceMesh,Vector<FloatPairs> &destMesh,int meshColRows,int &newWidth,int &newHeight);
|
|
static void dumpMesh(Vector<FloatPairs> &sourceMesh,Vector<FloatPairs> &destMesh,String &fileName);
|
|
private:
|
|
typedef Vector<FloatPairs> VectoredPairs;
|
|
enum {MaxColors=256,MaxLineWidth=2048};
|
|
void loadPaletteEntries(void);
|
|
HGLOBAL performWarp(int &newWidth,int &newHeight,int meshColRows);
|
|
void firstPassPhaseOne(int columnData);
|
|
void firstPassPhaseTwo(void);
|
|
void secondPassPhaseOne(int columnData);
|
|
void secondPassPhaseTwo(void);
|
|
void resampleGenerate(Vector<FloatPairs> &mappingPoints,UHUGE *lpSrcScanline,UHUGE *lpDstScanline,int outLen);
|
|
void initializeSplineColumns(Vector<VectoredPairs> &splineData,int columnData);
|
|
|
|
Vector<FloatPairs> mSrcPairs;
|
|
Vector<FloatPairs> mDstPairs;
|
|
Vector<VectoredPairs> mVerticalSplineSrcData;
|
|
Vector<VectoredPairs> mVerticalSplineDstData;
|
|
Vector<VectoredPairs> mHorizontalSplineSrcData;
|
|
Vector<VectoredPairs> mHorizontalSplineDstData;
|
|
HPALETTE mhPalette;
|
|
PALETTEENTRY mPaletteData[MaxColors];
|
|
HGLOBAL mhGlobalImage;
|
|
HGLOBAL mhGlobalSource;
|
|
UHUGE *mhpGlobalImage;
|
|
HGLOBAL mhGlobalIntermediate;
|
|
UHUGE *mhpIntermediate;
|
|
UHUGE *mhpImage;
|
|
WORD mWidth;
|
|
WORD mHeight;
|
|
WORD mDstWidth;
|
|
WORD mDstHeight;
|
|
};
|
|
|
|
inline
|
|
void MeshWarp::loadPaletteEntries(void)
|
|
{
|
|
::GetPaletteEntries(mhPalette,0,MaxColors,(PALETTEENTRY FAR *)&mPaletteData);
|
|
}
|
|
#endif |