|
|
1.1 root 1: /*
2: * Header file for LINEFRAC
3: * Created by Microsoft Corp., 1988
4: */
5:
6: /**********************************************************************\
7: * Resource Ids
8: \**********************************************************************/
9:
10: #define ID_LINEFRACTAL 1
11: #define IDD_ABOUT 2
12: #define IDD_LINEFRAC 3
13:
14:
15:
16:
17: /**********************************************************************\
18: * IDD - ID for Dialog item
19: * IDM - ID for Menu commands
20: * IDS - ID for String table
21: * IDT - ID for Timers
22: \**********************************************************************/
23:
24: #define IDNULL -1
25:
26: #define IDDOK 0x001
27: #define IDDCANCEL 0x002
28: #define IDDCOLORBK 0x010
29: #define IDDCOLOR 0x020
30: #define IDDSTYLE 0x030
31: #define IDDMIX 0x040
32: #define IDDNUMSIDES 0x050
33: #define IDDCPTMAX 0x060
34: #define IDDRECURSION 0x070
35: #define IDDCLEARBETWEEN 0x080
36:
37: #define IDMFILE 0x100
38: #define IDMABOUT 0x101
39:
40: #define IDMXFORM 0x200
41: #define IDMSHARKTOOTH 0x201
42: #define IDMSAWTOOTH 0x202
43: #define IDMKOCH 0x203
44: #define IDMSTOVE 0x204
45: #define IDMESSES 0x205
46:
47: #define IDMENVIRONMENT 0x300
48: #define IDMCLEARBITMAP 0x301
49: #define IDMAUTOSCALE 0x302
50: #define IDMFRACATTRS 0x303
51:
52: #define IDMCONTROL 0x400
53: #define IDMREDRAW 0x401
54: #define IDMABORT 0x402
55:
56: #define IDSTITLE 1
57:
58:
59:
60:
61: /************************************************************************
62: *
63: * Constants
64: *
65: * Miscellaneous constants.
66: *
67: ************************************************************************/
68:
69: #define MAX_POINT_COUNT 500 /* number of points buffered up */
70:
71: #define PI 3.1415926 /* useful in computing angles */
72: #define TWO_PI (2 * PI) /* ditto */
73:
74: #define EOLIST 0 /* End-of-list marker for xform */
75:
76:
77:
78:
79: /************************************************************************
80: *
81: * Line fractal transform structure.
82: *
83: * The structure LINEFRAC defines a transform for a single line
84: * segment within a linefractal similarity transform. A proper
85: * similarity transform would be a collection of segment transforms in
86: * the form of a linked list.
87: *
88: * next link to the next line segment
89: * length relative length of a segment, as percentage of
90: * length segment on which transform was defined
91: * angle relative angle in radians, positive being
92: * counterclockwise
93: * flip orientation of transform at a segment
94: * FALSE ==> rotate transform by angle[]
95: * TRUE ==> rotate transform by -angle[]
96: * (i.e. flip it)
97: *
98: ************************************************************************/
99:
100: typedef struct _linefrac
101: {
102: struct _linefrac *next;
103: double length;
104: double angle;
105: BOOL flip;
106: } LINEFRAC;
107: typedef LINEFRAC *PLINEFRAC;
108:
109:
110:
111:
112: /********************************************************************\
113: * These procedures must be declared FAR because they are exported
114: * and called by OS/2 Windows Presentation Manager.
115: \********************************************************************/
116:
117: ULONG FAR PASCAL AboutDlg ( HWND, USHORT, MPARAM, MPARAM );
118: BOOL FAR PASCAL LineFracInitApp ( VOID );
119: ULONG FAR PASCAL LineFracWndProc ( HWND, USHORT, MPARAM, MPARAM );
120: ULONG FAR PASCAL LineFracDlg ( HWND, USHORT, MPARAM, MPARAM );
121:
122:
123:
124:
125: /********************************************************************\
126: * These procedures are referenced in more than one module, but
127: * are not exported.
128: \********************************************************************/
129:
130: VOID LineFracInit ( HWND );
131: VOID LineFracExit ( VOID );
132: VOID LineFracPaint ( HPS );
133: VOID LineFracCommand ( HWND, USHORT );
134:
135: BOOL ResizeBitmap ( HWND );
136:
137: PLINEFRAC DefineSharkTooth ( VOID );
138: PLINEFRAC DefineSawTooth ( VOID );
139: PLINEFRAC DefineKochIsland ( VOID );
140: PLINEFRAC DefineStovePipe ( VOID );
141: PLINEFRAC DefineEsses ( VOID );
142:
143: VOID FAR PASCAL AccumulateLineFractal( VOID );
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.