Revision: 38007
          
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=38007
Author:   psy-fi
Date:     2011-07-01 09:23:34 +0000 (Fri, 01 Jul 2011)
Log Message:
-----------
some basic structs for UV island manager, part 2

Modified Paths:
--------------
    
branches/soc-2011-onion/source/blender/editors/uvedit/uvedit_island_manager.cpp

Modified: 
branches/soc-2011-onion/source/blender/editors/uvedit/uvedit_island_manager.cpp
===================================================================
--- 
branches/soc-2011-onion/source/blender/editors/uvedit/uvedit_island_manager.cpp 
    2011-07-01 08:48:00 UTC (rev 38006)
+++ 
branches/soc-2011-onion/source/blender/editors/uvedit/uvedit_island_manager.cpp 
    2011-07-01 09:23:34 UTC (rev 38007)
@@ -1,5 +1,5 @@
 /*
- * $Id: uvedit_buttons.c 37125 2011-06-03 14:14:32Z jwilkins $
+ * $Id: uvedit_island_manager.cpp 38000 2011-07-01 12:06:32Z psy-fi $
  *
  * ***** BEGIN GPL LICENSE BLOCK *****
  *
@@ -25,36 +25,60 @@
  * ***** END GPL LICENSE BLOCK *****
  */
 
-/** \file blender/editors/uvedit/uvedit_draw.c
+/** \file blender/editors/uvedit/uvedit_island_manager.cpp
  *  \ingroup eduv
  */
 
-typedef struct UVIslandManager {
+template <class T> class LinkedListLink {
+       public:
+               LinkedListLink();
+               ~LinkedListLink();
 
-}UVIslandManager;
+       private:
+               T *containedObject;
+               LinkedListLink *next;
+};
 
+/**
+ * Island Manager, holds the state necessary to use/display the island manager
+ */
+class UVIslandManager {
+       public:
+               static UVIslandManager *getUVIslandManager();
+               int getActive(){return active;}
 
+       private:
+               static UVIslandManager _island_manager;
+               UVIslandManager();
+               ~UVIslandManager();
+               bool active;
 
-typedef struct UVIsland {
-       float x_pos;
-       float y_pos;
-       float width;
-       float height;
-} UVIsland;
+               LinkedListLink <class UVIslandComponent> islands;
+};
 
+UVIslandManager UVIslandManager::_island_manager;
 
-/* typical C object oriented wanna-be. Following container design pattern here 
*/
-typedef struct UVIslandContainer {
-       struct UVIsland parent;
-       struct UVIsland *children;
-}UVIslandContainer;
 
+/*
+ * UVIsland Component follows the Composite design pattern, it's the container 
used to hold uv islands.
+ */
+class UVIslandComponent {
+       public:
+               UVIslandComponent();
+               ~UVIslandComponent();
+       private:
+               float x_pos;
+               float y_pos;
+               float width;
+               float height;
+};
 
-static UVIslandManagerState _island_manager_state = NULL;
 
-void initializeIslandManager()
-{
-       if(!UVIslandManager){
-               
-       }
-}
\ No newline at end of file
+class UVIslandContainer : public UVIslandComponent {
+       public:
+               UVIslandContainer();
+               ~UVIslandContainer();
+       private:
+               UVIslandComponent *children;
+};
+

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to