added everything
This commit is contained in:
164
lib/maxsdk70/include/maxscrpt/bitmaps.h
Executable file
164
lib/maxsdk70/include/maxscrpt/bitmaps.h
Executable file
@@ -0,0 +1,164 @@
|
||||
/*
|
||||
* BitMaps.h - MAX bitmap access classes
|
||||
*
|
||||
* Copyright <20> John Wainwright 1996
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef _H_BITMAPS
|
||||
#define _H_BITMAPS
|
||||
|
||||
#include "Max.h"
|
||||
#include "MAXObj.h"
|
||||
#include "COMMDLG.H"
|
||||
#include "bmmlib.h"
|
||||
|
||||
class MAXBitMapWindow;
|
||||
class MotionTracker;
|
||||
class MAXBitMap;
|
||||
|
||||
typedef struct // entry in MAXBitMap window table
|
||||
{
|
||||
HWND window;
|
||||
MAXBitMap* mbm;
|
||||
} mbm_window;
|
||||
|
||||
/* ------------------------ MAXBitMap ------------------------------ */
|
||||
|
||||
applyable_class (MAXBitMap)
|
||||
|
||||
class MAXBitMap : public Value
|
||||
{
|
||||
public:
|
||||
BitmapInfo bi; // our BitMapInfo
|
||||
Bitmap* bm; // the actual bitmap
|
||||
Tab<MotionTracker*> trackers; // any motion trackers
|
||||
MotionTracker* dragger; // tracker currently under drag
|
||||
WNDPROC main_window_proc; // original display window proc if ours installed
|
||||
GBuffer* gb; // GBuffer if non-NULL
|
||||
GBufReader* gbr; // current GBuffer reader if non-NULL
|
||||
short flags;
|
||||
|
||||
static Tab<mbm_window> windows; // table of MAXBitMap windows currently open
|
||||
|
||||
ScripterExport MAXBitMap();
|
||||
ScripterExport MAXBitMap(BitmapInfo bi, Bitmap* bm);
|
||||
~MAXBitMap();
|
||||
|
||||
static void setup();
|
||||
static MAXBitMap* find_window_mbm(HWND hwnd);
|
||||
|
||||
classof_methods (MAXBitMap, Value);
|
||||
# define is_bitmap(o) ((o)->tag == class_tag(MAXBitMap))
|
||||
void collect() { delete this; }
|
||||
void gc_trace();
|
||||
ScripterExport void sprin1(CharStream* s);
|
||||
|
||||
Value* new_motionTracker();
|
||||
void install_window_proc();
|
||||
|
||||
#include "defimpfn.h"
|
||||
def_visible_generic ( display, "display");
|
||||
def_visible_generic ( unDisplay, "unDisplay" );
|
||||
def_visible_generic ( save, "save" );
|
||||
def_visible_generic ( gotoFrame, "gotoFrame");
|
||||
def_visible_generic ( close, "close");
|
||||
def_visible_generic ( getTracker, "getTracker" );
|
||||
def_visible_generic ( deleteTracker, "deleteTracker" );
|
||||
use_generic ( copy, "copy" );
|
||||
def_visible_generic ( zoom, "zoom" );
|
||||
def_visible_generic ( crop, "crop" );
|
||||
def_visible_generic ( setAsBackground, "setAsBackground" );
|
||||
def_visible_generic ( getPixels, "getPixels" );
|
||||
def_visible_generic ( setPixels, "setPixels" );
|
||||
def_visible_generic ( getIndexedPixels, "getIndexedPixels" );
|
||||
def_visible_generic ( setIndexedPixels, "setIndexedPixels" );
|
||||
def_visible_generic ( getChannel, "getChannel" );
|
||||
def_visible_generic ( getChannelAsMask, "getChannelAsMask" );
|
||||
|
||||
Value* get_property(Value** arg_list, int count);
|
||||
Value* set_property(Value** arg_list, int count);
|
||||
|
||||
void to_fpvalue(FPValue& v) { v.bm = new PBBitmap (bi); v.type = TYPE_BITMAP; }
|
||||
};
|
||||
|
||||
#define BM_SAVED 0x0001 // bitmap has been written to and output steam is open
|
||||
#define BM_READONLY 0x0002 // existing bitmap opened (and so readonly).
|
||||
#define BM_FILEBACKED 0x0004 // bitmap is backed by a file
|
||||
|
||||
/* -------------------- MotionTracker -------------------------- */
|
||||
|
||||
applyable_class (MotionTracker)
|
||||
|
||||
class MotionTracker : public Value
|
||||
{
|
||||
public:
|
||||
MAXBitMap* mbm; // the bitmap I'm tracking
|
||||
int index; // which tracker in that bitmap
|
||||
int cur_frame; // frame I last tracked
|
||||
POINT center; // current feature center
|
||||
RECT bounds; // feature bounds relative to center
|
||||
RECT motion_bounds; // maximum frame-to-frame motion relative to feature center
|
||||
POINT mouse_down_at; // mouse pos at mousedown
|
||||
int handle_x; // handle pos at mouse_down..
|
||||
int handle_y; // handle pos at mouse_down..
|
||||
int handle; // which handle is dragging
|
||||
BYTE* target; // current target image as 3 BYTE RGB per pixel
|
||||
POINT* track_cache; // keeps a cache of tracking coords, one per frame (inval if change gizmo)
|
||||
short compare_mode; // feature matching space: rgb color, luminence, edge-filtered, etc.
|
||||
float match_distance; // last tracking match 'distance'
|
||||
HBITMAP id_bitmap; // unbelievable - I need to use a bitmap copy to do XOR text drawing
|
||||
short flags;
|
||||
|
||||
MotionTracker(MAXBitMap* imbm, int iindex);
|
||||
~MotionTracker();
|
||||
|
||||
classof_methods(MotionTracker, Value);
|
||||
void collect() { delete this; }
|
||||
ScripterExport void sprin1(CharStream* s);
|
||||
void gc_trace();
|
||||
|
||||
void track();
|
||||
void clear_track_cache();
|
||||
void set_center(int x, int y);
|
||||
void set_index(int i);
|
||||
void copy_target();
|
||||
void draw(HWND hWnd);
|
||||
void draw_gizmo(HDC hdc);
|
||||
void inval_gizmo();
|
||||
BOOL start_drag(HWND hwnd, int wParam, long lParam);
|
||||
void drag(HWND hwnd, int wParam, long lParam);
|
||||
void end_drag(HWND hwnd);
|
||||
void move(HWND hwnd, int dx, int dy);
|
||||
void deselect(HWND hwnd);
|
||||
|
||||
def_visible_generic ( resample, "resample");
|
||||
def_visible_generic ( reset, "reset");
|
||||
|
||||
def_property ( center );
|
||||
Value* get_property(Value** arg_list, int count);
|
||||
Value* set_property(Value** arg_list, int count);
|
||||
};
|
||||
|
||||
#define MT_GIZMO_SELECTED 0x0001
|
||||
#define MT_GIZMO_MOVED 0x0002
|
||||
#define MT_ENABLED 0x0004
|
||||
|
||||
#define MT_MATCH_RGB 0
|
||||
#define MT_MATCH_GRAY 1
|
||||
#define MT_MATCH_EDGE 2
|
||||
#define MT_MATCH_RANK 3
|
||||
|
||||
#define MT_NO_HANDLE 0 // handle codes...
|
||||
#define MT_CENTER 1
|
||||
#define MT_TOPLEFT_BOUNDS 2
|
||||
#define MT_BOTLEFT_BOUNDS 3
|
||||
#define MT_TOPRIGHT_BOUNDS 4
|
||||
#define MT_BOTRIGHT_BOUNDS 5
|
||||
#define MT_TOPLEFT_MBOUNDS 6
|
||||
#define MT_BOTLEFT_MBOUNDS 7
|
||||
#define MT_TOPRIGHT_MBOUNDS 8
|
||||
#define MT_BOTRIGHT_MBOUNDS 9
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user