[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