ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/common/objutil.h
(Generate patch)

Comparing ray/src/common/objutil.h (file contents):
Revision 2.10 by greg, Fri Feb 12 15:35:07 2021 UTC vs.
Revision 2.14 by greg, Wed Apr 7 03:02:00 2021 UTC

# Line 10 | Line 10
10   #ifndef _OBJUTIL_H_
11   #define _OBJUTIL_H_
12  
13 + #ifdef __cplusplus
14 + extern "C" {
15 + #endif
16 +
17   #ifndef DUP_CHECK_REVERSE
18   #define DUP_CHECK_REVERSE       1       /* eliminate flipped duplicates */
19   #endif
# Line 20 | Line 24
24   #define FACE_DEGENERATE         01
25   #define FACE_DUPLICATE          02
26   #define FACE_SELECTED           04
27 < #define FACE_CUSTOM(n)          (1<<(2+(n)))
27 > #define FACE_CUSTOM(n)          (FACE_SELECTED<<(n))
28 > #define FACE_RESERVED           (1<<15)
29  
30   struct Face;                            /* forward declaration */
31  
# Line 79 | Line 84 | typedef struct {
84          int             nfaces;         /* count of faces */
85   } Scene;
86  
82 #ifdef __cplusplus
83 extern "C" {
84 #endif
85
87   /* Allocate a new scene holder */
88   Scene *         newScene(void);
89  
# Line 92 | Line 93 | Scene *                loadOBJ(Scene *sc, const char *fspec);
93   /* Duplicate a scene, optionally selecting faces */
94   Scene *         dupScene(const Scene *sc, int flreq, int flexc);
95  
96 + /* Add one scene to another, not checking for redundancies */
97 + int             addScene(Scene *scdst, const Scene *scsrc);
98 +
99   /* Transform entire scene */
100   int             xfScene(Scene *sc, int xac, char *xav[]);
101   int             xfmScene(Scene *sc, const char *xfm);
# Line 177 | Line 181 | void           setMaterial(Scene *sc, const char *nm);
181   /* Add a new face to our scene, using current group and material */
182   Face *          addFace(Scene *sc, VNDX vid[], int nv);
183  
184 + /* Convert all faces with > 3 vertices to triangles */
185 + int             triangulateScene(Scene *sc);
186 +
187   /* Delete unreferenced vertices, normals, texture coords */
188   void            deleteUnreferenced(Scene *sc);
189  
# Line 192 | Line 199 | extern int      verbose;
199   extern char     *emalloc(unsigned int n);
200   extern char     *ecalloc(unsigned int ne, unsigned int n);
201   extern char     *erealloc(char *cp, unsigned int n);
202 < extern void     efree(char *cp);
202 > extern void     efree(char *cp);
203 >
204 > #define getGroupID(sc,nm)       findName(nm, (const char **)(sc)->grpname, (sc)->ngrps)
205 > #define getMaterialID(sc,nm)    findName(nm, (const char **)(sc)->matname, (sc)->nmats)
206  
207   #define CHUNKSIZ        128     /* object allocation chunk size */
208  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines