Class animation__3D (unit Animation_3D)

Inherits from

TObject

Constructors


constructor create(nf,ppf:integer; dest:TWinControl);

///////////////////////////////////////////////////////////////////////////// Animation base class (Abstract object) // /////////////////////////////////////////////////////////////////////////////


Functions

procedure activate(onoff:boolean);

enable/disable and timer stuff

///////////////////////// Timer stuff /////////////////////////


procedure animate_palette(num:integer);


procedure calc_rotation(x,y,z:integer);


procedure compute_frame;


procedure Copy_to_screen;


procedure create_drawing_surface(w,h:integer);

screen stuff

///////////////////////// Screen stuff /////////////////////////


destructor Destroy;

Timer.

procedure draw_frame(dest_DC:HDC);


procedure fill_palette_from_screen_colours(use_cols:integer);


function GetPalette : HPalette;


procedure setup_initial_state(i1,i2:integer);

initializtion and computation

///////////////////////// Init & computation /////////////////////////


procedure setup_morphing_constants;

are we currently pausing between frames

procedure set_frame_speed(fps_:double);


procedure set_interframepause(d:integer);


procedure set_morphsteps(d:integer);


procedure set_offset(x,y,z:double);

ints for lookup tables

ints for lookup tables


procedure set_palette_cycle(pc:integer);


procedure set_rot_speed(x,y,z:integer);

Getters and Setters

///////////////////////// getters and setters /////////////////////////


procedure set_scale(x,y:double);


procedure Timer_event;


function TransformPoint(x,y,z:double) : TPoint;

unrolled matrix multiply

unrolled matrix multiply


procedure update_frame_counters;


Properties

Events

Variables

active : boolean;


callback : TNotifyEvent;


colours : integer;

palette variables

coloursm1 : integer;


data : pPointArray;


destination : TWinControl;


DIB_surface : DIBSurfaceObject;

screen variables

frame_number : integer;


frame_sp : frame_speed_obj;


interframe_count : integer;


interframe_pause : integer;


log_palette : TMyLogPalette;


main_counter : integer;

animation control

morph_count : integer;


morph_steps : integer;


num_frames : integer;


palette_cycle : integer;


pts_frame : integer;


rotyxz0_0 : double;

Matrix values.

rotyxz0_1 : double;


rotyxz0_2 : double;


rotyxz1_0 : double;


rotyxz1_1 : double;


rotyxz1_2 : double;


rotyxz2_1 : double;


rotyxz2_2 : double;


rotyxz2_3 : double;


Timer : THiResTimer;

Timing

xmid : integer;


xoff : double;

ints for lookup tables indices

xrspeed : integer;

3D variables

xscale : double;


ymid : integer;


yoff : double;


yrspeed : integer;


yscale : double;


zoff : double;


zrspeed : integer;



Constructors


constructor create(nf,ppf:integer; dest:TWinControl);

///////////////////////////////////////////////////////////////////////////// Animation base class (Abstract object) // /////////////////////////////////////////////////////////////////////////////


Functions


procedure activate(onoff:boolean);

enable/disable and timer stuff

///////////////////////// Timer stuff /////////////////////////


procedure animate_palette(num:integer);


procedure calc_rotation(x,y,z:integer);


procedure compute_frame;


procedure Copy_to_screen;


procedure create_drawing_surface(w,h:integer);

screen stuff

///////////////////////// Screen stuff /////////////////////////


destructor Destroy;

Timer.ThreadPriority := tpIdle;


procedure draw_frame(dest_DC:HDC);


procedure fill_palette_from_screen_colours(use_cols:integer);


function GetPalette : HPalette;


procedure setup_initial_state(i1,i2:integer);

initializtion and computation

///////////////////////// Init & computation /////////////////////////


procedure setup_morphing_constants;

are we currently pausing between frames


procedure set_frame_speed(fps_:double);


procedure set_interframepause(d:integer);


procedure set_morphsteps(d:integer);


procedure set_offset(x,y,z:double);

ints for lookup tables

ints for lookup tables


procedure set_palette_cycle(pc:integer);


procedure set_rot_speed(x,y,z:integer);

Getters and Setters

///////////////////////// getters and setters /////////////////////////


procedure set_scale(x,y:double);


procedure Timer_event;


function TransformPoint(x,y,z:double) : TPoint;

unrolled matrix multiply

unrolled matrix multiply


procedure update_frame_counters;


Properties


Events


Variables


active : boolean;


callback : TNotifyEvent;


colours : integer;

palette variables


coloursm1 : integer;


data : pPointArray;


destination : TWinControl;


DIB_surface : DIBSurfaceObject;

screen variables


frame_number : integer;


frame_sp : frame_speed_obj;


interframe_count : integer;


interframe_pause : integer;


log_palette : TMyLogPalette;


main_counter : integer;

animation control


morph_count : integer;


morph_steps : integer;


num_frames : integer;


palette_cycle : integer;


pts_frame : integer;


rotyxz0_0 : double;

Matrix values...


rotyxz0_1 : double;


rotyxz0_2 : double;


rotyxz1_0 : double;


rotyxz1_1 : double;


rotyxz1_2 : double;


rotyxz2_1 : double;


rotyxz2_2 : double;


rotyxz2_3 : double;


Timer : THiResTimer;

Timing


xmid : integer;


xoff : double;

ints for lookup tables indices


xrspeed : integer;

3D variables


xscale : double;


ymid : integer;


yoff : double;


yrspeed : integer;


yscale : double;


zoff : double;


zrspeed : integer;