Box Addon: fixing up build problems
[io/quag.git] / addons / Box / source / IoBox.h
blobcc3fd560601d8a211de152a87d91ac51d4163d3d
1 /*
2 docCopyright("Steve Dekorte", 2002)
3 docLicense("BSD revised")
4 */
6 #ifndef IOBOX_DEFINED
7 #define IOBOX_DEFINED 1
9 #include "IoBoxApi.h"
10 #include "IoObject.h"
11 #include "IoSeq.h"
13 #define ISBOX(self) IoObject_hasCloneFunc_(self, (IoTagCloneFunc *)IoBox_rawClone)
14 IOBOX_API void *IoMessage_locals_boxArgAt_(IoMessage *self, void *locals, int n);
16 typedef IoObject IoBox;
18 typedef struct
20 IoSeq *origin;
21 IoSeq *size;
22 } IoBoxData;
24 IOBOX_API IoBox *IoBox_rawClone(IoBox *self);
25 IOBOX_API IoBox *IoBox_proto(void *state);
26 IOBOX_API IoBox *IoBox_new(void *state);
27 IOBOX_API void IoBox_rawCopy(IoBox *self, IoBox *other);
28 IOBOX_API void IoBox_rawSet(IoBox *self, NUM_TYPE x, NUM_TYPE y, NUM_TYPE z, NUM_TYPE w, NUM_TYPE h, NUM_TYPE d);
29 IOBOX_API IoBox *IoBox_newSet(void *state, NUM_TYPE x, NUM_TYPE y, NUM_TYPE z, NUM_TYPE w, NUM_TYPE h, NUM_TYPE d);
31 IOBOX_API IoSeq *IoBox_rawOrigin(IoBox *self);
32 IOBOX_API IoSeq *IoBox_rawSize(IoBox *self);
34 IOBOX_API void IoBox_free(IoBox *self);
35 IOBOX_API void IoBox_mark(IoBox *self);
37 // -----------------------------------------------------------
39 IOBOX_API IoObject *IoBox_origin(IoBox *self, IoObject *locals, IoMessage *m);
40 IOBOX_API IoObject *IoBox_size(IoBox *self, IoObject *locals, IoMessage *m);
42 IOBOX_API IoObject *IoBox_width(IoBox *self, IoObject *locals, IoMessage *m);
43 IOBOX_API IoObject *IoBox_height(IoBox *self, IoObject *locals, IoMessage *m);
44 IOBOX_API IoObject *IoBox_depth(IoBox *self, IoObject *locals, IoMessage *m);
46 IOBOX_API IoObject *IoBox_set(IoBox *self, IoObject *locals, IoMessage *m);
47 IOBOX_API IoObject *IoBox_setOrigin(IoBox *self, IoObject *locals, IoMessage *m);
48 IOBOX_API IoObject *IoBox_setSize(IoBox *self, IoObject *locals, IoMessage *m);
50 IOBOX_API void IoBox_rawUnion(IoBox *self, IoBox *other);
51 IOBOX_API IoObject *IoBox_Union(IoBox *self, IoObject *locals, IoMessage *m);
52 IOBOX_API IoObject *IoBox_containsPoint(IoBox *self, IoObject *locals, IoMessage *m);
53 IOBOX_API IoObject *IoBox_intersectsBox(IoBox *self, IoObject *locals, IoMessage *m);
55 IOBOX_API IoObject *IoBox_print(IoBox *self, IoObject *locals, IoMessage *m);
58 IOBOX_API IoObject *IoBox_asString(IoBox *self, IoObject *locals, IoMessage *m);
59 IOBOX_API IoObject *IoBox_Min(IoBox *self, IoObject *locals, IoMessage *m);
60 IOBOX_API IoObject *IoBox_Max(IoBox *self, IoObject *locals, IoMessage *m);
63 #endif