Addons updated to new doc format
[io.git] / addons / Box / source / IoBox.h
blobc32cac32c6fdbf08daed72b6f7941268174cb59b
1 //metadoc Box copyright Steve Dekorte 2002
2 //metadoc Box license BSD revised
4 #ifndef IOBOX_DEFINED
5 #define IOBOX_DEFINED 1
7 #include "IoBoxApi.h"
8 #include "IoObject.h"
9 #include "IoSeq.h"
11 #define ISBOX(self) IoObject_hasCloneFunc_(self, (IoTagCloneFunc *)IoBox_rawClone)
12 IOBOX_API void *IoMessage_locals_boxArgAt_(IoMessage *self, void *locals, int n);
14 typedef IoObject IoBox;
16 typedef struct
18 IoSeq *origin;
19 IoSeq *size;
20 } IoBoxData;
22 IOBOX_API IoBox *IoBox_rawClone(IoBox *self);
23 IOBOX_API IoBox *IoBox_proto(void *state);
24 IOBOX_API IoBox *IoBox_new(void *state);
25 IOBOX_API void IoBox_rawCopy(IoBox *self, IoBox *other);
26 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);
27 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);
29 IOBOX_API IoSeq *IoBox_rawOrigin(IoBox *self);
30 IOBOX_API IoSeq *IoBox_rawSize(IoBox *self);
32 IOBOX_API void IoBox_free(IoBox *self);
33 IOBOX_API void IoBox_mark(IoBox *self);
35 // -----------------------------------------------------------
37 IOBOX_API IoObject *IoBox_origin(IoBox *self, IoObject *locals, IoMessage *m);
38 IOBOX_API IoObject *IoBox_size(IoBox *self, IoObject *locals, IoMessage *m);
40 IOBOX_API IoObject *IoBox_width(IoBox *self, IoObject *locals, IoMessage *m);
41 IOBOX_API IoObject *IoBox_height(IoBox *self, IoObject *locals, IoMessage *m);
42 IOBOX_API IoObject *IoBox_depth(IoBox *self, IoObject *locals, IoMessage *m);
44 IOBOX_API IoObject *IoBox_set(IoBox *self, IoObject *locals, IoMessage *m);
45 IOBOX_API IoObject *IoBox_setOrigin(IoBox *self, IoObject *locals, IoMessage *m);
46 IOBOX_API IoObject *IoBox_setSize(IoBox *self, IoObject *locals, IoMessage *m);
48 IOBOX_API void IoBox_rawUnion(IoBox *self, IoBox *other);
49 IOBOX_API IoObject *IoBox_Union(IoBox *self, IoObject *locals, IoMessage *m);
50 IOBOX_API IoObject *IoBox_containsPoint(IoBox *self, IoObject *locals, IoMessage *m);
51 IOBOX_API IoObject *IoBox_intersectsBox(IoBox *self, IoObject *locals, IoMessage *m);
53 IOBOX_API IoObject *IoBox_print(IoBox *self, IoObject *locals, IoMessage *m);
56 IOBOX_API IoObject *IoBox_asString(IoBox *self, IoObject *locals, IoMessage *m);
57 IOBOX_API IoObject *IoBox_Min(IoBox *self, IoObject *locals, IoMessage *m);
58 IOBOX_API IoObject *IoBox_Max(IoBox *self, IoObject *locals, IoMessage *m);
61 #endif