Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'release/scripts/flt_palettemanager.py')
-rw-r--r--release/scripts/flt_palettemanager.py505
1 files changed, 0 insertions, 505 deletions
diff --git a/release/scripts/flt_palettemanager.py b/release/scripts/flt_palettemanager.py
deleted file mode 100644
index c2f1380a6fa..00000000000
--- a/release/scripts/flt_palettemanager.py
+++ /dev/null
@@ -1,505 +0,0 @@
-#!BPY
-
-"""
-Name: 'FLT Palette Manager'
-Blender: 240
-Group: 'Misc'
-Tooltip: 'Manage FLT colors'
-"""
-
-__author__ = "Geoffrey Bantle"
-__version__ = "1.0 11/21/2007"
-__email__ = ('scripts', 'Author, ')
-__url__ = ('blender', 'blenderartists.org')
-
-__bpydoc__ ="""\
-
-This script manages colors in OpenFlight databases. OpenFlight is a
-registered trademark of MultiGen-Paradigm, Inc.
-
-Todo:
--Figure out whats causing the PC speaker to beep when initializing...
-
-Feature overview and more availible at:
-http://wiki.blender.org/index.php/Scripts/Manual/FLTools
-"""
-
-# --------------------------------------------------------------------------
-# flt_palettemanager.py version 1.0 2005/04/08
-# --------------------------------------------------------------------------
-# ***** BEGIN GPL LICENSE BLOCK *****
-#
-# Copyright (C) 2007: Blender Foundation
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software Foundation,
-# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#
-# ***** END GPL LICENCE BLOCK *****
-# --------------------------------------------------------------------------
-
-import Blender.Draw as Draw
-from Blender.BGL import *
-import Blender
-import flt_properties
-import flt_defaultp as defaultp
-from flt_properties import *
-
-def RGBtoHSV( r, g, b):
- minc = min( r, g, b )
- maxc = max( r, g, b )
- v = maxc
-
- delta = maxc - minc
-
- if( max != 0 ):
- s = delta / maxc
- else:
- s = 0
- h = -1
- return (h,s,v)
-
- if( r == maxc ):
- h = ( g - b ) / delta
- elif( g == maxc ):
- h = 2 + ( b - r ) / delta
- else:
- h = 4 + ( r - g ) / delta
-
- h *= 60
- if( h < 0 ):
- h += 360
-
- return(h,s,v)
-
-def HSVtoRGB(h,s,v):
-
- if( s == 0 ):
- return (v,v,v)
-
-
- h /= 60
- i = math.floor( h)
- f = h - i
- p = v * ( 1 - s )
- q = v * ( 1 - s * f )
- t = v * ( 1 - s * ( 1 - f ) )
-
- if i == 0:
- r = v
- g = t
- b = p
- elif i == 1:
- r = q
- g = v
- b = p
-
- elif i== 2:
- r = p
- g = v
- b = t
- elif i==3:
- r = p
- g = q
- b = v
- elif i==4:
- r = t
- g = p
- b = v
-
- else:
- r = v
- g = p
- b = q
-
- return(r,g,b)
-
-
-palette_size = 12
-palette_x = 0
-palette_y = 0
-
-colors = list()
-curint = 1.0
-curswatch = 0
-#make a default palette, not very useful.
-cinc = 1.0 / 1024.0
-cstep = 0.0
-picker = None
-ptt = ""
-
-
-ts1=None
-ts2=None
-ts3=None
-ts4=None
-ts5=None
-
-for i in xrange(1024):
- colors.append([cstep,cstep,cstep])
- cstep = cstep + cinc
-def update_state():
- state = dict()
- state["activeScene"] = Blender.Scene.getCurrent()
- state["activeObject"] = state["activeScene"].getActiveObject()
- state["activeMesh"] = None
- if state["activeObject"] and state["activeObject"].type == 'Mesh':
- state["activeMesh"] = state["activeObject"].getData(mesh=True)
-
- state["activeFace"] = None
- if state["activeMesh"]:
- if state["activeMesh"].faceUV and state["activeMesh"].activeFace != None:
- state["activeFace"] = state["activeMesh"].faces[state["activeMesh"].activeFace]
-
- return state
-
-def pack_face_index(index, intensity):
- return ((127*intensity)+(128*index))
-def unpack_face_index(face_index):
- index = face_index / 128
- intensity = float(face_index - 128.0 * index) / 127.0
- return(index,intensity)
-
-def event(evt,val):
- global palette_size
- global palette_x
- global palette_y
- global colors
- global curint
- global curswatch
-
- areas = Blender.Window.GetScreenInfo()
- curarea = Blender.Window.GetAreaID()
- curRect = None
- editmode = 0
-
- for area in areas:
- if area['id'] == curarea:
- curRect = area['vertices']
- break
-
- if evt == Draw.LEFTMOUSE:
- mval = Blender.Window.GetMouseCoords()
- rastx = mval[0] - curRect[0]
- rasty = mval[1] - curRect[1]
-
- swatchx = (rastx -palette_x) / palette_size #+state["palette_x"]
- swatchy = (rasty -palette_y) / palette_size #+state["palette_y"]
- if rastx > palette_x and rastx < (palette_x + palette_size * 32) and rasty > palette_y and rasty < (palette_y+ palette_size* 32):
- if swatchx < 32 and swatchy < 32:
- curswatch = (swatchx * 32) + swatchy
- Draw.Redraw(1)
-
- elif swatchy < 34 and swatchx < 32:
- curint = 1.0 - (float(rastx-palette_x)/(palette_size*32.0))
- Draw.Redraw(1)
-
- #copy current color and intensity to selected faces.
- elif evt == Draw.VKEY:
-
- if Blender.Window.EditMode():
- Blender.Window.EditMode(0)
- editmode = 1
- state = update_state()
-
- #retrieve color from palette
- color = struct.unpack('>BBBB',struct.pack('>i',colors[curswatch]))
- actmesh = state["activeMesh"]
- if actmesh:
- if(Blender.Window.GetKeyQualifiers() != Blender.Window.Qual["CTRL"]):
- selfaces = list()
- for face in actmesh.faces:
- if face.sel:
- selfaces.append(face)
-
- if not "FLT_COL" in actmesh.faces.properties:
- actmesh.faces.addPropertyLayer("FLT_COL",Blender.Mesh.PropertyTypes["INT"])
- for face in actmesh.faces:
- face.setProperty("FLT_COL",127) #default
- try:
- actmesh.activeColorLayer = "FLT_Fcol"
- except:
- actmesh.addColorLayer("FLT_Fcol")
- actmesh.activeColorLayer = "FLT_Fcol"
-
-
- for face in selfaces:
- #First append packed index + color and store in face property
- face.setProperty("FLT_COL",int(pack_face_index(curswatch,curint)))
- #Save baked color to face vertex colors
- for col in face.col:
- col.r = int(color[0] * curint)
- col.g = int(color[1] * curint)
- col.b = int(color[2] * curint)
- col.a = int(color[3] * curint)
- else:
- if Blender.Mesh.Mode() == Blender.Mesh.SelectModes['VERTEX']:
- if not 'FLT_VCOL' in actmesh.verts.properties:
- actmesh.verts.addPropertyLayer("FLT_VCOL",Blender.Mesh.PropertyTypes["INT"])
- for vert in actmesh.verts:
- vert.setProperty("FLT_VCOL",127)
- else:
- for vert in actmesh.verts:
- if vert.sel:
- vert.setProperty("FLT_VCOL",int(pack_face_index(curswatch,curint)))
-
- if editmode:
- Blender.Window.EditMode(1)
-
- Blender.Window.RedrawAll()
-
- #grab color and intensity from active face
- elif evt == Draw.CKEY:
- if Blender.Window.EditMode():
- Blender.Window.EditMode(0)
- editmode = 1
- state = update_state()
-
- actmesh = state["activeMesh"]
- activeFace = state["activeFace"]
-
-
- if activeFace:
- if not "FLT_COL" in actmesh.faces.properties:
- actmesh.faces.addPropertyLayer("FLT_COL",Blender.Mesh.PropertyTypes["INT"])
- for face in actmesh.faces:
- face.setProperty("FLT_COL",127) #default
- try:
- actmesh.activeColorLayer = "FLT_Fcol"
- except:
- actmesh.addColorLayer("FLT_Fcol")
- actmesh.activeColorLayer = "FLT_Fcol"
- tcol = activeFace.getProperty("FLT_COL")
- (index,intensity) = unpack_face_index(tcol)
- curswatch = index
- curint = intensity
-
- if editmode:
- Blender.Window.EditMode(1)
-
- Blender.Window.RedrawAll()
-
- elif evt == Draw.GKEY:
- if Blender.Window.EditMode():
- Blender.Window.EditMode(0)
- editmode =1
- state = update_state()
-
- actmesh = state["activeMesh"]
- activeFace = state["activeFace"]
-
- if activeFace and "FLT_COL" in actmesh.faces.properties:
- (index,intensity) = unpack_face_index(activeFace.getProperty("FLT_COL"))
- for face in actmesh.faces:
- (index2, intensity2) = unpack_face_index(face.getProperty("FLT_COL"))
- if index == index2:
- face.sel = 1
-
-
- elif evt == Draw.ESCKEY:
- Draw.Exit()
-
- if editmode:
- Blender.Window.EditMode(1)
-
-def update_all():
- global colors
- state = update_state()
- #update the baked FLT colors for all meshes.
- for object in state["activeScene"].objects:
- if object.type == "Mesh":
- mesh = object.getData(mesh=True)
- if 'FLT_COL' in mesh.faces.properties and "FLT_Fcol" in mesh.getColorLayerNames():
- mesh.activeColorLayer = "FLT_Fcol"
- for face in mesh.faces:
- (index,intensity) = unpack_face_index(face.getProperty('FLT_COL'))
- color = struct.unpack('>BBBB',struct.pack('>i',colors[index]))
- #update the vertex colors for this face
- for col in face.col:
- col.r = int(color[0] * intensity)
- col.g = int(color[1] * intensity)
- col.b = int(color[2] * intensity)
- col.a = 255
-
-
-def but_event(evt):
- global palette_size
- global palette_x
- global palette_y
- global colors
- global curint
- global curswatch
- global picker
- state = update_state()
-
- if evt == 1:
- if picker.val:
- rval = (int(picker.val[0]*255),int(picker.val[1]*255),int(picker.val[2]*255),255)
- rval = struct.pack('>BBBB',rval[0],rval[1],rval[2],rval[3])
- rval = struct.unpack('>i',rval)
- colors[curswatch] = rval[0]
- #go cd through all meshes and update their FLT colors
- update_all()
-
- Draw.Redraw(1)
-def init_pal():
- global palette_size
- global palette_x
- global palette_y
- global colors
- global curint
- global curswatch
-
- state = update_state()
-
- if not state["activeScene"].properties.has_key('FLT'):
- state["activeScene"].properties['FLT'] = dict()
-
- try:
- colors = state["activeScene"].properties['FLT']['Color Palette']
- except:
- state["activeScene"].properties['FLT']['Color Palette'] = defaultp.pal
- colors = state["activeScene"].properties['FLT']['Color Palette']
-
-def draw_palette():
- global palette_size
- global palette_x
- global palette_y
- global colors
- global curint
- global curswatch
- global picker
- global ts1
- global ts2
- global ts3
- global ts4
- global ts5
-
- state = update_state()
- init_pal()
-
- ssize = palette_size
- xpos = palette_x
- cid = 0
-
- highlight = [(palette_x,palette_y),(palette_x+palette_size,palette_y),(palette_x+palette_size,palette_y+palette_size),(palette_x,palette_y+palette_size)]
- for x in xrange(32):
- ypos = palette_y
- for y in xrange(32):
- color = struct.unpack('>BBBB',struct.pack('>i',colors[cid]))
- glColor3f(color[0]/255.0,color[1]/255.0,color[2]/255.0)
- glBegin(GL_POLYGON)
- glVertex2i(xpos,ypos)
- glVertex2i(xpos+ssize,ypos)
- glVertex2i(xpos+ssize,ypos+ssize)
- glVertex2i(xpos,ypos+ssize)
- glEnd()
-
- if curswatch == cid:
- highlight[0] = (xpos,ypos)
- highlight[1] = (xpos+ssize,ypos)
- highlight[2] = (xpos+ssize,ypos+ssize)
- highlight[3] = (xpos,ypos+ssize)
-
- glColor3f(0.0,0.0,0.0)
- glBegin(GL_LINE_LOOP)
- glVertex2i(xpos,ypos)
- glVertex2i(xpos+ssize,ypos)
- glVertex2i(xpos+ssize,ypos+ssize)
- glVertex2i(xpos,ypos+ssize)
- glVertex2i(xpos,ypos)
- glEnd()
-
-
- cid = cid + 1
- ypos = ypos + ssize
-
- xpos = xpos + ssize
-
- #draw intensity gradient
- color = struct.unpack('>BBBB',struct.pack('>i',colors[curswatch]))
- color = [color[0]/255.0,color[1]/255.0,color[2]/255.0]
- colsteps = [color[0]/255.0,color[1]/255.0,color[2]/255.0]
- stripwidth = (palette_size * 32.0) / 256
- strippad = palette_size / 2.0
-
- xpos = palette_x
- grady = (palette_y + (palette_size * 32.0)) + strippad
- for x in xrange(256):
- color[0] = color[0] - colsteps[0]
- color[1] = color[1] - colsteps[1]
- color[2] = color[2] - colsteps[2]
-
- glColor3f(color[0], color[1] ,color[2])
- glBegin(GL_POLYGON)
- glVertex2f(xpos,grady)
- glVertex2f(xpos+stripwidth,grady)
- glVertex2f(xpos+stripwidth,grady+palette_size)
- glVertex2f(xpos,grady+palette_size)
- glEnd()
- xpos = xpos + stripwidth
-
- #draw intensity slider bar
- #xposition == 512 - ((curint) * 512)
- xpos = ((palette_size*32) * (1.0 - curint)) + palette_x
- glColor3f(1.0,1.0,1.0)
- glBegin(GL_LINE_LOOP)
- glVertex2i(int(xpos-6),int(grady-1))
- glVertex2i(int(xpos+6),int(grady-1))
- glVertex2i(int(xpos+6),int(grady+palette_size+1))
- glVertex2i(int(xpos-6),int(grady+palette_size+1))
- #glVertex2i(xpos-6,grady+7)
- glEnd()
-
- #draw color picker
- color = struct.unpack('>BBBB',struct.pack('>i',colors[curswatch]))
- pickcol = (color[0]/255.0,color[1]/255.0,color[2]/255.0)
- picker = Blender.Draw.ColorPicker(1,highlight[0][0]+1,highlight[0][1]+1,ssize-2,ssize-2,pickcol,ptt)
-
- #draw highlight swatch
- glColor3f(1.0,1.0,1.0)
- glBegin(GL_LINE_LOOP)
- glVertex2i(highlight[0][0],highlight[0][1])
- glVertex2i(highlight[1][0],highlight[1][1])
- glVertex2i(highlight[2][0],highlight[2][1])
- glVertex2i(highlight[3][0],highlight[3][1])
- glVertex2i(highlight[0][0],highlight[0][1])
- glEnd()
-
- #draw text string explanations
- xpos = palette_size*32+20
- ypos = palette_size*32+10
- glRasterPos2d(xpos,ypos)
- ts1 = Blender.Draw.Text("FLT Palette Manager V 1.0")
- ypos = ypos - 20
- glRasterPos2d(xpos,ypos)
- ts3 = Blender.Draw.Text("CKEY - Copy Active Face Color*")
- ypos = ypos - 20
- glRasterPos2d(xpos,ypos)
- ts2 = Blender.Draw.Text("VKEY - Paste Color to Selected Faces")
- ypos = ypos - 20
- glRasterPos2d(xpos,ypos)
- ts4 = Blender.Draw.Text("GKEY - Select Faces With Same Color")
- ypos = ypos - 15
- glRasterPos2d(xpos,ypos)
- ts5 = Blender.Draw.Text("(*Requires mesh with UV coordinates)", 'small')
-
-def gui():
- glClearColor(0.5,0.5,0.5,1.0)
- glClear(GL_COLOR_BUFFER_BIT)
- draw_palette()
-
-
-init_pal()
-Draw.Register(gui,event,but_event)
- \ No newline at end of file