diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2006-11-10 02:47:28 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2006-11-10 02:47:28 +0300 |
commit | 740e3233e0ddd76ec3caa2dd78760e88351a41b5 (patch) | |
tree | 28594bdc8d8262d313b7e2e7fc2a00be2758b48d /source/blender/radiosity/extern | |
parent | 57a2f7a5b569d1d0564c45e33eae1ebad3cd560b (diff) |
Modified the way face data is preserved in the radiosity module. There
is one user level change: the result is now no longer split up in meshes
of maximum 64k faces, was a workaround for an old limitation.
Diffstat (limited to 'source/blender/radiosity/extern')
-rw-r--r-- | source/blender/radiosity/extern/include/radio.h | 3 | ||||
-rw-r--r-- | source/blender/radiosity/extern/include/radio_types.h | 22 |
2 files changed, 7 insertions, 18 deletions
diff --git a/source/blender/radiosity/extern/include/radio.h b/source/blender/radiosity/extern/include/radio.h index 23aa30e3bda..ba1917e9191 100644 --- a/source/blender/radiosity/extern/include/radio.h +++ b/source/blender/radiosity/extern/include/radio.h @@ -133,8 +133,7 @@ void addaccuweight(register char *z, register char *t, int w); void triaweight(Face *face, int *w1, int *w2, int *w3); void init_face_tab(void); Face *addface(void); -Face *makeface(float *v1, float *v2, float *v3, float *v4, RNode *rn, short hasUV); -void dofaceuv(Face *face, float uvs[8][2], short flag1, short flag2, short flag3, short flag4); +Face *makeface(float *v1, float *v2, float *v3, float *v4, RNode *rn); void anchorQuadface(RNode *rn, float *v1, float *v2, float *v3, float *v4, int flag); void anchorTriface(RNode *rn, float *v1, float *v2, float *v3, int flag); float *findmiddlevertex(RNode *node, RNode *nb, float *v1, float *v2); diff --git a/source/blender/radiosity/extern/include/radio_types.h b/source/blender/radiosity/extern/include/radio_types.h index ae1f1e4f7ee..23ce17d9611 100644 --- a/source/blender/radiosity/extern/include/radio_types.h +++ b/source/blender/radiosity/extern/include/radio_types.h @@ -42,6 +42,7 @@ #include "DNA_material_types.h" struct Render; +struct TFace; #define DTWIRE 0 #define DTGOUR 2 @@ -87,28 +88,14 @@ typedef struct RNode { /* length: 104 */ float totrad[3], area; unsigned int col; - float uv[4][2]; /* when you change this: also do function set_correct_uv in editmesh.c, and there are more locations that use the size of this part */ - struct TFace *tface; + unsigned int orig; /* index in face elem data */ } RNode; -typedef struct Elem { /* length: 44 */ - struct RPatch *par; - - short type; /* type: 4==QUAD, 3==TRIA */ - short f; /* bit 0: patch, bit 1: shootelement */ - float *v1, *v2, *v3, *v4; - float totrad[3], area; - - unsigned int col; -} Elem; - - typedef struct Face { /* length: 52 */ float *v1, *v2, *v3, *v4; unsigned int col, matindex; - float uv[4][2]; /* when you change this: also do function set_correct_uv in editmesh.c, and there are more locations that use the size of this part */ - struct TFace *tface; + unsigned int orig; /* index in face elem data */ } Face; /* rp->f1 */ @@ -168,6 +155,9 @@ typedef struct { /* to preserve materials as used before, max 16 */ Material *matar[MAXMAT]; int totmat; + + struct RNode **mfdatanodes; /* nodes associated with the mfdata */ + struct TFace *tface; /* this part is a copy of struct Radio */ short hemires, maxiter; |