diff options
Diffstat (limited to 'source/blender/freestyle/intern/blender_interface/BlenderFileLoader.h')
-rw-r--r-- | source/blender/freestyle/intern/blender_interface/BlenderFileLoader.h | 141 |
1 files changed, 83 insertions, 58 deletions
diff --git a/source/blender/freestyle/intern/blender_interface/BlenderFileLoader.h b/source/blender/freestyle/intern/blender_interface/BlenderFileLoader.h index 251e9329128..5fe98fba0d0 100644 --- a/source/blender/freestyle/intern/blender_interface/BlenderFileLoader.h +++ b/source/blender/freestyle/intern/blender_interface/BlenderFileLoader.h @@ -61,7 +61,7 @@ extern "C" { #include "DEG_depsgraph_query.h" #ifdef WITH_CXX_GUARDEDALLOC -#include "MEM_guardedalloc.h" +# include "MEM_guardedalloc.h" #endif namespace Freestyle { @@ -69,78 +69,103 @@ namespace Freestyle { class NodeGroup; struct LoaderState { - float *pv; - float *pn; - IndexedFaceSet::FaceEdgeMark *pm; - unsigned *pvi; - unsigned *pni; - unsigned *pmi; - unsigned currentIndex; - unsigned currentMIndex; - float minBBox[3]; - float maxBBox[3]; + float *pv; + float *pn; + IndexedFaceSet::FaceEdgeMark *pm; + unsigned *pvi; + unsigned *pni; + unsigned *pmi; + unsigned currentIndex; + unsigned currentMIndex; + float minBBox[3]; + float maxBBox[3]; }; -class BlenderFileLoader -{ -public: - /*! Builds a MaxFileLoader */ - BlenderFileLoader(Render *re, ViewLayer *view_layer, Depsgraph *depsgraph); - virtual ~BlenderFileLoader(); +class BlenderFileLoader { + public: + /*! Builds a MaxFileLoader */ + BlenderFileLoader(Render *re, ViewLayer *view_layer, Depsgraph *depsgraph); + virtual ~BlenderFileLoader(); - /*! Loads the 3D scene and returns a pointer to the scene root node */ - NodeGroup *Load(); + /*! Loads the 3D scene and returns a pointer to the scene root node */ + NodeGroup *Load(); - /*! Gets the number of read faces */ - inline unsigned int numFacesRead() {return _numFacesRead;} + /*! Gets the number of read faces */ + inline unsigned int numFacesRead() + { + return _numFacesRead; + } #if 0 - /*! Gets the smallest edge size read */ - inline real minEdgeSize() {return _minEdgeSize;} + /*! Gets the smallest edge size read */ + inline real minEdgeSize() {return _minEdgeSize;} #endif - /*! Modifiers */ - inline void setRenderMonitor(RenderMonitor *iRenderMonitor) {_pRenderMonitor = iRenderMonitor;} - -protected: - void insertShapeNode(Object *ob, Mesh *mesh, int id); - int testDegenerateTriangle(float v1[3], float v2[3], float v3[3]); - int countClippedFaces(float v1[3], float v2[3], float v3[3], int clip[3]); - void clipLine(float v1[3], float v2[3], float c[3], float z); - void clipTriangle(int numTris, float triCoords[][3], float v1[3], float v2[3], float v3[3], - float triNormals[][3], float n1[3], float n2[3], float n3[3], - bool edgeMarks[5], bool em1, bool em2, bool em3, int clip[3]); - void addTriangle(struct LoaderState *ls, float v1[3], float v2[3], float v3[3], - float n1[3], float n2[3], float n3[3], bool fm, bool em1, bool em2, bool em3); - -protected: - struct detri_t { - unsigned viA, viB, viP; // 0 <= viA, viB, viP < viSize - Vec3r v; - unsigned n; - }; - Render *_re; - Depsgraph *_depsgraph; - NodeGroup *_Scene; - unsigned _numFacesRead; + /*! Modifiers */ + inline void setRenderMonitor(RenderMonitor *iRenderMonitor) + { + _pRenderMonitor = iRenderMonitor; + } + + protected: + void insertShapeNode(Object *ob, Mesh *mesh, int id); + int testDegenerateTriangle(float v1[3], float v2[3], float v3[3]); + int countClippedFaces(float v1[3], float v2[3], float v3[3], int clip[3]); + void clipLine(float v1[3], float v2[3], float c[3], float z); + void clipTriangle(int numTris, + float triCoords[][3], + float v1[3], + float v2[3], + float v3[3], + float triNormals[][3], + float n1[3], + float n2[3], + float n3[3], + bool edgeMarks[5], + bool em1, + bool em2, + bool em3, + int clip[3]); + void addTriangle(struct LoaderState *ls, + float v1[3], + float v2[3], + float v3[3], + float n1[3], + float n2[3], + float n3[3], + bool fm, + bool em1, + bool em2, + bool em3); + + protected: + struct detri_t { + unsigned viA, viB, viP; // 0 <= viA, viB, viP < viSize + Vec3r v; + unsigned n; + }; + Render *_re; + Depsgraph *_depsgraph; + NodeGroup *_Scene; + unsigned _numFacesRead; #if 0 - real _minEdgeSize; + real _minEdgeSize; #endif - bool _smooth; /* if true, face smoothness is taken into account */ - float _viewplane_left; - float _viewplane_right; - float _viewplane_bottom; - float _viewplane_top; - float _z_near, _z_far; - float _z_offset; + bool _smooth; /* if true, face smoothness is taken into account */ + float _viewplane_left; + float _viewplane_right; + float _viewplane_bottom; + float _viewplane_top; + float _z_near, _z_far; + float _z_offset; - RenderMonitor *_pRenderMonitor; + RenderMonitor *_pRenderMonitor; #ifdef WITH_CXX_GUARDEDALLOC - MEM_CXX_CLASS_ALLOC_FUNCS("Freestyle:BlenderFileLoader") + MEM_CXX_CLASS_ALLOC_FUNCS("Freestyle:BlenderFileLoader") #endif }; } /* namespace Freestyle */ -#endif // __BLENDER_FILE_LOADER_H__ +#endif // __BLENDER_FILE_LOADER_H__ |