[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [38007] branches/soc-2011-onion/source/ blender/editors/uvedit/uvedit_island_manager.cpp: some basic structs for UV island manager, part 2
Antony Riakiotakis
kalast at gmail.com
Fri Jul 1 11:23:34 CEST 2011
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;
+};
+
More information about the Bf-blender-cvs
mailing list