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_lodedit.py')
-rw-r--r--release/scripts/flt_lodedit.py502
1 files changed, 0 insertions, 502 deletions
diff --git a/release/scripts/flt_lodedit.py b/release/scripts/flt_lodedit.py
deleted file mode 100644
index 58319b9e525..00000000000
--- a/release/scripts/flt_lodedit.py
+++ /dev/null
@@ -1,502 +0,0 @@
-#!BPY
-
-"""
-Name: 'FLT LOD Editor'
-Blender: 240
-Group: 'Misc'
-Tooltip: 'Level of Detail Edtior for FLT nodes'
-"""
-
-__author__ = "Geoffrey Bantle"
-__version__ = "1.0 11/21/07"
-__email__ = ('scripts', 'Author, ')
-__url__ = ('blender', 'blenderartists.org')
-
-__bpydoc__ ="""\
-This script provides tools for working with OpenFlight databases in Blender. OpenFlight is a
-registered trademark of MultiGen-Paradigm, Inc.
-
-Feature overview and more availible at:
-http://wiki.blender.org/index.php/Scripts/Manual/FLTools
-"""
-
-# --------------------------------------------------------------------------
-# flt_palettemanager.py version 0.1 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
-reload(flt_properties)
-from flt_properties import *
-
-#event codes
-evcode = {
- "LOD_MAKE" : 100,
- "LOD_DELETE" : 101,
- "LOD_CALC_CENTER" : 102,
- "LOD_GRAB_CENTER" : 103,
- "LOD_X" : 104,
- "LOD_Y" : 105,
- "LOD_Z" : 106,
- "LOD_FREEZE" : 107,
- "LOD_SIG" : 108,
- "LOD_IN" : 109,
- "LOD_OUT" : 110,
- "LOD_TRANS" : 111,
- "LOD_PREVIOUS" : 112
-}
-
-
-#system
-LOD_MAKE = None #PushButton
-LOD_DELETE = None #PushButton
-LOD_CALC_CENTER = None #PushButton
-LOD_GRAB_CENTER = None #Pushbutton
-LOD_FREEZE = None #Toggle
-LOD_PREVIOUS = None #Toggle
-
-LOD_X = None #Input
-LOD_Y = None #Input
-LOD_Z = None #Input
-
-LOD_SIG = None #Input
-LOD_IN = None #Input
-LOD_OUT = None #Input
-LOD_TRANS = None #Input
-
-#labels
-LOD_EDITLABEL = None
-LOD_SWITCHLABEL = None
-LOD_CENTERLABEL = None
-
-LOD_XLABEL = None
-LOD_YLABEL = None
-LOD_ZLABEL = None
-LOD_SIGLABEL = None
-LOD_INLABEL = None
-LOD_OUTLABEL = None
-LOD_TRANSLABEL = None
-
-
-#ID Props
-switch_in = '5d!switch in'
-switch_out = '6d!switch out'
-xco = '10d!X co'
-yco = '11d!Y co'
-zco = '12d!Z co'
-trans = '13d!Transition'
-sig_size = '14d!Sig Size'
-
-#Flags
-lodflag = '9I!flags'
-previous_mask = (1 << 31)
-freeze_mask = (1 << 29)
-
-def update_state():
- state = dict()
- state["activeScene"] = Blender.Scene.GetCurrent()
- state["activeObject"] = state["activeScene"].objects.active
- if state["activeObject"] and not state["activeObject"].sel:
- state["activeObject"] = None
- 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]
-
-
- #update editmode
- state["editmode"] = Blender.Window.EditMode()
-
- return state
-
-def idprops_append(object, typecode, props):
- object.properties["FLT"] = dict()
- object.properties["FLT"]['type'] = typecode
- for prop in props:
- object.properties["FLT"][prop] = props[prop]
- object.properties["FLT"]['3t8!id'] = object.name
-
-def idprops_kill():
- state = update_state()
- if state["activeObject"] and state["activeObject"].properties.has_key('FLT'):
- state["activeObject"].properties.pop('FLT')
-
-def idprops_copy(source):
- state = update_state()
- if source.properties.has_key('FLT'):
- for object in state["activeScene"].objects:
- if object.sel and object != source and (state["activeScene"].Layers & object.Layers):
- idprops_kill(object)
- object.properties['FLT'] = dict()
- for key in source.properties['FLT']:
- object.properties['FLT'][key] = source.properties['FLT'][key]
-
-def select_by_typecode(typecode):
- state = update_state()
-
- for object in state["activeScene"].objects:
- if object.properties.has_key('FLT') and object.properties['FLT']['type'] == typecode and state["activeScene"].Layers & object.Layers:
- object.select(1)
-
-def idprops_type(object, typecode):
- if object.properties.has_key('FLT') and object.properties['FLT'].has_key('type') and object.properties['FLT']['type'] == typecode:
- return True
- return False
-
-#ui type code
-def get_prop(typecode, prop):
-
- state = update_state()
- if state["activeObject"] and idprops_type(state["activeObject"], typecode):
- props = state["activeObject"].properties['FLT']
- else:
- props = flt_properties.FLTLOD
-
- return props[prop]
-
-def set_prop(typecode, prop, value):
- state = update_state()
- if state["activeObject"] and idprops_type(state["activeObject"],typecode):
- state["activeObject"].properties['FLT'][prop] = value
-
-
-
-def get_lockmask(mask):
- global lodflag
- state = update_state()
- if state["activeObject"]:
- flag = get_prop(73,lodflag)
- if flag & mask:
- return True
- return False
-
-def set_lockmask(mask):
- state = update_state()
- if state["activeObject"] and idprops_type(state["activeObject"], 73):
- oldvalue = state["activeObject"].properties['FLT'][lodflag]
- oldvalue = struct.unpack('>I', struct.pack('>i', oldvalue))[0]
- oldvalue |= mask
- state["activeObject"].properties['FLT'][lodflag] = struct.unpack('>i', struct.pack(">I", oldvalue))[0]
-
-def clear_lockmask(mask):
- state = update_state()
- if state["activeObject"] and idprops_type(state["activeObject"], 73):
- oldvalue = state["activeObject"].properties['FLT'][lodflag]
- oldvalue = struct.unpack('>I', struct.pack('>i', oldvalue))[0]
- oldvalue &= ~mask
- state["activeObject"].properties['FLT'][lodflag] = struct.unpack('>i',struct.pack('>I',oldvalue))[0]
-
-def findchildren(object):
- state = update_state()
- children = list()
- for candidate in state["activeScene"].objects:
- if candidate.parent == object:
- children.append(candidate)
- retlist = list(children)
- for child in children:
- retlist = retlist + findchildren(child)
- return retlist
-
-def get_object_center(object):
- bbox = object.getBoundBox(1)
- average = Blender.Mathutils.Vector(0.0, 0.0, 0.0)
-
- for point in bbox:
- average[0] += point[0]
- average[1] += point[1]
- average[2] += point[2]
-
- average[0] = average[0] / 8.0
- average[1] = average[1] / 8.0
- average[2] = average[2] / 8.0
-
- return average
-
-
-def calc_center():
-
- global xco
- global yco
- global zco
-
- state = update_state()
- if state["activeObject"] and idprops_type(state["activeObject"], 73):
- average = Blender.Mathutils.Vector(0.0, 0.0, 0.0)
- children = findchildren(state["activeObject"]) #get children objects
- if children:
- for child in children:
- center = get_object_center(child)
- average[0] += center[0]
- average[1] += center[1]
- average[2] += center[2]
-
- average[0] = average[0] / len(children)
- average[1] = average[1] / len(children)
- average[2] = average[2] / len(children)
-
- set_prop(73, xco, average[0])
- set_prop(73, yco, average[1])
- set_prop(73, zco, average[2])
-
-
-def grab_center():
-
- global xco
- global yco
- global zco
-
- state = update_state()
- if state["activeObject"] and idprops_type(state["activeObject"], 73):
- center = Blender.Window.GetCursorPos()
-
- set_prop(73, xco, center[0])
- set_prop(73, yco, center[1])
- set_prop(73, zco, center[2])
-
-
-def create_lod():
- state = update_state()
- actobj = state["activeObject"]
- if actobj and not idprops_type(actobj, 73):
- idprops_kill()
- idprops_append(actobj,73, flt_properties.FLTLOD)
- calc_center()
-
-
-
-def event(evt,val):
- if evt == Draw.ESCKEY:
- Draw.Exit()
-
-def but_event(evt):
-
- global LOD_MAKE
- global LOD_DELETE
- global LOD_CALC_CENTER
- global LOD_GRAB_CENTER
- global LOD_FREEZE
- global LOD_PREVIOUS
- global LOD_X
- global LOD_Y
- global LOD_Z
- global LOD_SIG
- global LOD_IN
- global LOD_OUT
- global LOD_TRANS
-
- global switch_in
- global switch_out
- global xco
- global yco
- global zco
- global trans
- global sig_size
-
- global lodflag
- global previous_mask
- global freeze_mask
-
- global evcode
-
- #do "system" events
- if evt == evcode["LOD_MAKE"]:
- create_lod()
-
- if evt == evcode["LOD_CALC_CENTER"]:
- calc_center()
-
- if evt == evcode["LOD_DELETE"]:
- idprops_kill()
-
- if evt == evcode["LOD_GRAB_CENTER"]:
- grab_center()
-
- #do mask events
- if evt == evcode["LOD_FREEZE"]:
- if LOD_FREEZE.val == True:
- set_lockmask(freeze_mask)
- else:
- clear_lockmask(freeze_mask)
-
- if evt == evcode["LOD_PREVIOUS"]:
- if LOD_PREVIOUS.val == True:
- set_lockmask(previous_mask)
- else:
- clear_lockmask(previous_mask)
-
- #do input events
- if evt == evcode["LOD_X"]:
- set_prop(73, xco, LOD_X.val)
- if evt == evcode["LOD_Y"]:
- set_prop(73, yco, LOD_Y.val)
- if evt == evcode["LOD_Z"]:
- set_prop(73, zco, LOD_Z.val)
- if evt == evcode["LOD_SIG"]:
- set_prop(73, sig_size, LOD_SIG.val)
- if evt == evcode["LOD_IN"]:
- set_prop(73, switch_in, LOD_IN.val)
- if evt == evcode["LOD_OUT"]:
- set_prop(73, switch_out, LOD_OUT.val)
- if evt == evcode["LOD_TRANS"]:
- set_prop(73, trans, LOD_TRANS.val)
-
-
- Draw.Redraw(1)
- Blender.Window.RedrawAll()
-
-def draw_propsheet(x,y):
-
- global LOD_MAKE
- global LOD_DELETE
- global LOD_CALC_CENTER
- global LOD_GRAB_CENTER
- global LOD_FREEZE
- global LOD_PREVIOUS
- global LOD_X
- global LOD_Y
- global LOD_Z
- global LOD_SIG
- global LOD_IN
- global LOD_OUT
- global LOD_TRANS
-
- #labels
- global LOD_EDITLABEL
- global LOD_SWITCHLABEL
- global LOD_CENTERLABEL
- global LOD_XLABEL
- global LOD_YLABEL
- global LOD_ZLABEL
- global LOD_SIGLABEL
- global LOD_INLABEL
- global LOD_OUTLABEL
- global LOD_TRANSLABEL
-
-
- global switch_in
- global switch_out
- global xco
- global yco
- global zco
- global trans
- global sig_size
-
- global lodflag
- global previous_mask
- global freeze_mask
-
- global evcode
-
-
- global evcode
-
- state = update_state()
-
- label_width = 100
- row_height = 20
- toggle_width = 50
- input_width = 100
- pad = 10
- origx = x
- origy = (row_height * 16) + (pad * 16)
-
-
- #editor label
- x = origx
- y = origy
- LOD_EDITLABEL = Blender.Draw.Label("FLT Level of Detail Editor", x, y, 250, row_height)
-
-
- #Center inputs
- x = origx
- y = y- (row_height + pad)
- LOD_CENTERLABEL = Blender.Draw.Label("LOD center", x, y, label_width, row_height)
- y = y- (row_height + pad)
- LOD_XLABEL = Blender.Draw.Label("X Coordinate", x, y, label_width, row_height)
- x = origx + (label_width + pad)
- LOD_X = Blender.Draw.Number("", evcode["LOD_X"], x, y, input_width, row_height,get_prop(73,xco), -1000000.0, 1000000.0, "")
- x = origx
- y = y- (row_height + pad)
- LOD_YLABEL = Blender.Draw.Label("Y Coordinate", x, y, label_width, row_height)
- x = origx + (label_width + pad)
- LOD_Y = Blender.Draw.Number("", evcode["LOD_Y"], x, y, input_width, row_height,get_prop(73,yco), -1000000.0, 1000000.0, "")
- x = origx
- y = y- (row_height + pad)
- LOD_ZLABEL = Blender.Draw.Label("Z Coordinate", x, y, label_width, row_height)
- x = origx + (label_width + pad)
- LOD_Z = Blender.Draw.Number("", evcode["LOD_Z"], x, y, input_width, row_height,get_prop(73,zco), -1000000.0, 1000000.0, "")
-
-
- #Switch inputs
- x = origx
- y = y- (row_height + pad)
- LOD_SWITCHLABEL = Blender.Draw.Label("Switch Settings", x, y, input_width, row_height)
- y = y- (row_height + pad)
- LOD_SIGLABEL = Blender.Draw.Label("Significant Size", x, y, label_width, row_height)
- x = origx + (label_width + pad)
- LOD_SIG = Blender.Draw.Number("", evcode["LOD_SIG"], x, y, input_width, row_height, get_prop(73,sig_size), -1000000.0, 1000000.0, "")
- x = origx
- y = y- (row_height + pad)
- LOD_INLABEL = Blender.Draw.Label("Switch In", x, y, label_width, row_height)
- x = origx + (label_width + pad)
- LOD_IN = Blender.Draw.Number("", evcode["LOD_IN"], x, y, input_width, row_height, get_prop(73,switch_in), -1000000.0, 1000000.0, "")
- x = origx
- y = y- (row_height + pad)
- LOD_OUTLABEL = Blender.Draw.Label("Switch Out", x, y, label_width, row_height)
- x = origx + (label_width + pad)
- LOD_OUT = Blender.Draw.Number("", evcode["LOD_OUT"], x, y, input_width, row_height, get_prop(73,switch_out), -1000000.0, 1000000.0, "")
- x = origx
- y = y- (row_height + pad)
- LOD_TRANSLABEL = Blender.Draw.Label("Transition", x, y, label_width, row_height)
- x = origx + (label_width + pad)
- LOD_TRANS = Blender.Draw.Number("", evcode["LOD_TRANS"], x, y, input_width, row_height, get_prop(73,trans), -1000000.0, 1000000.0, "")
-
-
- x = origx
- y = y - (row_height + pad)
- LOD_MAKE = Blender.Draw.PushButton("Make LOD", evcode["LOD_MAKE"], x, y, input_width + label_width + pad, row_height, "Make a LOD Node out of Active Object")
- y = y - (row_height + pad)
- LOD_DELETE = Blender.Draw.PushButton("Delete LOD", evcode["LOD_DELETE"], x, y, input_width + label_width + pad, row_height, "Delete the LOD Node properties")
- y = y - (row_height + pad)
- LOD_CALC_CENTER = Blender.Draw.PushButton("Calculate Center", evcode["LOD_CALC_CENTER"], x, y, input_width + label_width + pad, row_height, "Calculate the center of this LOD")
- y = y - (row_height + pad)
- LOD_GRAB_CENTER = Blender.Draw.PushButton("Grab Center", evcode["LOD_GRAB_CENTER"], x, y, input_width + label_width + pad, row_height, "Grab center from 3d cursor")
- y = y - (row_height + pad)
- LOD_FREEZE = Blender.Draw.Toggle("Freeze Center", evcode["LOD_FREEZE"], x, y, input_width + label_width + pad, row_height, get_lockmask(freeze_mask), "")
- y = y - (row_height + pad)
- LOD_PREVIOUS = Blender.Draw.Toggle("Previous Range", evcode["LOD_PREVIOUS"], x, y, input_width + label_width + pad, row_height, get_lockmask(previous_mask), "")
-
-def gui():
- #draw the propsheet/toolbox.
- psheety = 800
- #psheetx = psheety + 10
- draw_propsheet(20,psheety)
-
-Draw.Register(gui,event,but_event)
- \ No newline at end of file