Example #1
0
def drawAA():
    global MINAA, MAXAA, AASAMPLES
    global IMGFILTERW, IMGFILTERH, IMGFILTER
    global EXP_ANIM
    ##  aa settings
    col = 10
    line = 200
    BGL.glRasterPos2i(col, line)
    Draw.Text("AA:")
    col = 100
    MINAA = Draw.Number("Min AA ", 2, col, line, 120, 18, MINAA.val, -4, 5)
    col = 230
    MAXAA = Draw.Number("Max AA  ", 2, col, line, 120, 18, MAXAA.val, -4, 5)
    col = 360
    AASAMPLES = Draw.Number("Samples", 2, col, line, 120, 18, AASAMPLES.val, 0,
                            32)
    col = 10
    line = 175
    BGL.glRasterPos2i(col, line)
    Draw.Text("Image Filter:")
    col = 100
    line = 173
    IMGFILTER = Draw.Menu(
        "%tImage Filter|box|gaussian|mitchell|triangle|catmull-rom|blackman-harris|sinc|lanczos",
        FILTER_EVENT, col, line, 120, 18, IMGFILTER.val)
    col = 10
    line = 120
    EXP_ANIM = Draw.Toggle("Export As Animation", 2, col, line, 140, 18,
                           EXP_ANIM.val)
    drawButtons()
def gui_masse_volumique():
	# Création d'Id pour les évènements
	nCpt_evt = 1
	global EV_BT_OK
	EV_BT_OK = nCpt_evt; nCpt_evt += 1
	global EV_BT_ANNULER
	EV_BT_ANNULER = nCpt_evt; nCpt_evt += 1
	global EV_MASS_VOL
	EV_MASS_VOL = nCpt_evt; nCpt_evt += 1
	
	pos_x = 5
	pos_y = 100; pas_y = 36
	BGL.glRasterPos2i( pos_x, pos_y )
	Draw.Text("Choisissez la masse volumique du maillage (et validez par \"OK\") :")
	
	#[nom bouton] = Draw.Number("[nom]", [numéro d'événement], [position x], [position y], \
	#                            [largeur], [hauteur], \
	#                            [valeur initiale], [valeur minimale],[valeur maximale], "[astuce]")
	global bt_masse_volumique
	largeur_mv = 360
	hauteur = 25
	pos_y -= pas_y
	bt_masse_volumique = Draw.Number("Masse volumique :", EV_MASS_VOL, pos_x, pos_y, \
												largeur_mv, hauteur, \
												1.0, 0.0, 100000.0, "saisissez la masse volumique")
	largeur_bt = 80
	pos_y -= pas_y
	dx_espacement = int( ( largeur_mv - 2.0 * largeur_bt ) / 3.0 )
	dx_espacement = int( dx_espacement + 0.5 )
	pos_x_bt_OK = pos_x + dx_espacement
	pos_x_bt_Annuler = pos_x_bt_OK + largeur_bt + dx_espacement
	Draw.PushButton("OK", EV_BT_OK, pos_x_bt_OK, pos_y, largeur_bt, hauteur, "Valide")
	Draw.PushButton("Annuler", EV_BT_ANNULER, pos_x_bt_Annuler, pos_y, largeur_bt, hauteur, "Annule")
Example #3
0
def import_gui():
  global filename, fileinput, impstatus

  # Clear drawing area.
  BGL.glClearColor(0.9,0.9,0.9,1)
  BGL.glClear(BGL.GL_COLOR_BUFFER_BIT)

  # Status.
  BGL.glRasterPos2i(10,8)
  if impstatus == 0:
    BGL.glColor3f(0.0,0.0,0.0)
    Draw.Text('Importer ready.','tiny')
  elif impstatus == 1:
    BGL.glColor3f(0.0,0.75,0.0)
    Draw.Text('Importing...','tiny')
  elif impstatus == 2:
    BGL.glColor3f(0.75,0.0,0.0)
    Draw.Text('File not found!','tiny')

  # Filename input box.
  BGL.glRasterPos2i(10,20)
  w = Draw.Text('File to import:')

  Draw.Button(filename, 3, w+15, 15, 200,20)
  #fileinput = Draw.String('',3, w+15,15, 200,20, filename, 512,
  #                        'Filename to import.')

  Draw.Button('Import', 1, w+15+210,15, 40,20)
  Draw.Button('Quit', 2, w+15+210+50,15, 40,20)
Example #4
0
    def doDraw(self):
        # this has black color...
 #       Draw.Label(self.title,
#                   self.pos_x, self.pos_y, self.width, self.height)
        BGL.glColor3f(*self.color)        
        BGL.glRasterPos2i(self.pos_x, self.pos_y)
        Draw.Text(self.title + self.button.val)
Example #5
0
	def dotext(self):

		##   By default this function prints the desired text, in the desired colour centrally in the panel.
		##   Possibly there will be more options in a leter release.

		##   Find the vertical centreline of the panel.
		centreline=self.left+(self.width/2)

		##   Find the horizontal centreline of the panel and subtract about half the height of the font (roughly).
		textline=self.base+(self.height/2-5)

		##   Find the length of the string that was passed in.
		stringlength=Draw.GetStringWidth(self.text)

		##   Halve it.
		offset=stringlength/2

		##   Calculate the start point for the text.
		titlestart=centreline-offset

		##   Change to the text colour.
		BGL.glColor3f(self.textcolour[0],self.textcolour[1],self.textcolour[2])

		##   Position raster.
		BGL.glRasterPos2i(titlestart,textline)

		##   Print it.
		Draw.Text(self.text)
Example #6
0
	def draw(self):
		area = Window.GetAreaSize()
		w = area[0]; wPad = int(w*0.03)
		h = area[1]; hPad = int(h*0.03)
		BGL.glColor3f(0.3, 0.3, 0.3)
		BGL.glRectf(wPad-5, h-60, w-wPad+5, h-85)
		BGL.glColor3f(1.0,1.0,1.0)
		BGL.glRasterPos2i(wPad, h-75)
		Draw.Text('Chicken Configuration script', 'large')
		BGL.glRasterPos2i(wPad, h-100)
		Draw.Text('This script is launched the first time you run Chicken, or when a configuration error has been detected')

		BGL.glColor3f(0.5, 0.5, 0.5)
		BGL.glRectf(wPad, h-205, w-wPad, h-225)
		BGL.glColor3f(1.0,1.0,1.0)
		BGL.glRasterPos2i(wPad, h-220)
		Draw.Text('Binary Utilities - ')
		Draw.Text('if executables such as "pview" are on your PATH, you can leave this on Auto. Otherwise enter the folder manually')
		self.bBinPathAuto.update([wPad+5, h-250, w/2-wPad-5, 20])
		self.bBinPathManual.update([w/2, h-250, w/2-wPad-5, 20])

		if self.bBinPathManual.val:
			self.bBinPath.update([wPad+5, h-272, w-2*wPad-90, 20])
			self.bBinPathSel.update([w-wPad-85, h-272, 80, 20])
		self.bLaunch.update([wPad+5, h-330, 100, 20])
		self.bCheck.update([w-wPad-85, h-330, 80, 20])
		if self.error is not None:
			if self.error is True:
				BGL.glColor3f(1.0,0.0,0.0)
				BGL.glRasterPos2i(w-wPad-150, h-365)
				Draw.Text('Configuration error detected')
			else:
				BGL.glColor3f(0.0,0.0,0.0)
				BGL.glRasterPos2i(w-wPad-200, h-365)
				Draw.Text('Configuration checked and saved')
Example #7
0
def drawCamera():
	global DOF, DOFRADIUS, DOFDIST, SPHERICALCAMERA
	##  camera settings
	col=10; line=200; BGL.glRasterPos2i(col, line); Draw.Text("Camera:")
	col=100; line=195; DOF=Draw.Toggle("DOF", DOF_CAMERA, col, line, 120, 18, DOF.val)
	col=225; DOFDIST=Draw.Number("Distance", 2, col, line, 120, 18, DOFDIST.val, 0.0, 200.00)
	col=350; DOFRADIUS=Draw.Number("Radius", 2, col, line, 120, 18, DOFRADIUS.val, 0.0, 200.00)
	col=100; line=170; SPHERICALCAMERA=Draw.Toggle("Spherical", SPHER_CAMERA, col, line, 120, 18, SPHERICALCAMERA.val)
	drawButtons()
Example #8
0
	def gui(self,):
		quitbutton = Blender.Draw.Button("Exit", 1, 0, 0, 100, 20, "Close Window")
		
		y=35

		for line in self.msg:
			BGL.glRasterPos2i(10,y)
			Blender.Draw.Text(line)
			y+=15
Example #9
0
def drawLights():
	global MESHLIGHTPOWER, DSAMPLES
	## meshlight power slider
	col=10; line=200; BGL.glRasterPos2i(col, line); Draw.Text("Meshlight:")
	col=100; line=195; MESHLIGHTPOWER=Draw.Number("Power", 2, col, line, 120, 18, MESHLIGHTPOWER.val, 1, 15)
	## lightserver settings
	col=10; line=150; BGL.glRasterPos2i(col, line); Draw.Text("Lightserver:")
	col=100; line=147; DSAMPLES=Draw.Number("Direct Samples  ", 2, col, line, 250, 18, DSAMPLES.val, 0, 1024); 
	drawButtons()
Example #10
0
def drawAA():
	global MINAA, MAXAA, AASAMPLES
	global IMGFILTERW, IMGFILTERH, IMGFILTER
	global EXP_ANIM
	##  aa settings
	col=10; line=200; BGL.glRasterPos2i(col, line); Draw.Text("AA:")
	col=100; MINAA=Draw.Number("Min AA ", 2, col, line, 120, 18, MINAA.val, -4, 5); 
	col=230; MAXAA=Draw.Number("Max AA  ", 2, col, line, 120, 18, MAXAA.val, -4, 5)
	col=360; AASAMPLES=Draw.Number("Samples", 2, col, line, 120, 18, AASAMPLES.val, 0, 32)
	col=10; line=175; BGL.glRasterPos2i(col, line); Draw.Text("Image Filter:")
	col=100; line=173; IMGFILTER=Draw.Menu("%tImage Filter|box|gaussian|mitchell|triangle|catmull-rom|blackman-harris|sinc|lanczos", FILTER_EVENT, col, line, 120, 18, IMGFILTER.val)
	col=10; line=120; EXP_ANIM=Draw.Toggle("Export As Animation", 2, col, line, 140, 18, EXP_ANIM.val)
	drawButtons()
Example #11
0
def drawAO():
	global OCCLUSSION, OCCBRIGHTR, OCCBRIGHTG, OCCBRIGHTB, OCCDARKR, OCCDARKG, OCCDARKB, OCCSAMPLES, OCCDIST
	col=10; line=200; BGL.glRasterPos2i(col, line); Draw.Text("Ambient Occlusion")
	col=10; line=175; OCCLUSSION=Draw.Toggle("Amb Occ", 2, col, line, 85, 18, OCCLUSSION.val)
	col=100; OCCBRIGHTR=Draw.Number("Bright (R)", 2, col, line, 125, 18, OCCBRIGHTR.val, 0.0, 1.0)
	col=230; OCCBRIGHTG=Draw.Number("Bright (G)", 2, col, line, 125, 18, OCCBRIGHTG.val, 0.0, 1.0)
	col=360; OCCBRIGHTB=Draw.Number("Bright (B)", 2, col, line, 125, 18, OCCBRIGHTB.val, 0.0, 1.0)
	col=100; line=150; OCCDARKR=Draw.Number("Dark (R)", 2, col, line, 125, 18, OCCDARKR.val, 0.00, 1.0)
	col=230; OCCDARKG=Draw.Number("Dark (G)", 2, col, line, 125, 18, OCCDARKG.val, 0.0, 1.0)
	col=360; OCCDARKB=Draw.Number("Dark (B)", 2, col, line, 125, 18, OCCDARKB.val, 0.0, 1.0)
	col=100; line=125; OCCSAMPLES=Draw.Number("Samples", 2, col, line, 125, 18, OCCSAMPLES.val, 0, 256)
	col=230; OCCDIST=Draw.Number("Distance", 2, col, line, 125, 18, OCCDIST.val, -1.0, 150.0)
	drawButtons()
Example #12
0
    def gui(self):  # the function to draw the screen
        BGL.glClearColor(0, 0, 0.5, 1)
        BGL.glClear(BGL.GL_COLOR_BUFFER_BIT)
        BGL.glColor3f(1, 1, 1)

        BGL.glRasterPos2i(20, 200)
        Draw.Text("Select the object to export:", "normal")
        self.objMenu = Draw.Menu(self.sObjSelection, 1, 20, 170, 200, 20,
                                 self.objSel, "Select the animated object.")

        BGL.glRasterPos2i(20, 150)
        Draw.Text("Select the armature to export:", "normal")
        self.armMenu = Draw.Menu(self.sArmSelection, 2, 20, 120, 200, 20,
                                 self.armSel, "Select the matching armature.")

        BGL.glRasterPos2i(20, 100)
        Draw.Text("Select the root bone of the armature:", "normal")
        self.boneMenu = Draw.Menu(self.sBoneSelection, 3, 20, 70, 200, 20,
                                  self.boneSel,
                                  "Select the Root Bone of the armature.")

        Draw.PushButton("Export", 4, 250, 150, 50, 20, "Export File")
        Draw.PushButton("Cancel", 5, 250, 110, 50, 20, "Cancel")

        BGL.glRasterPos2i(72, 16)
        string = "Selections: " + ("%s" % self.objSel) + " / " + (
            "%s" % self.armSel) + " / " + ("%s" % self.boneSel)

        Draw.Text(string, "small")
Example #13
0
def Display_Output_Bar(Y_POS, CONTROL_HEIGHT, CONTROL_WIDTH):
    """ Create the Display output box."""
    Create_Tab(3, Y_POS, CONTROL_WIDTH, Y_POS - CONTROL_HEIGHT, "Output setup", 0)
    
    Draw.PushButton('Select output location', OutputButton, 9, (Y_POS - 41), 130, 18, 'Select output location')
    
    BGL.glRasterPos2i(143, (Y_POS - 36))
    if OUTPUTString:
        RIGHT_LIMIT = 144
        tempString = OUTPUTString
        if (Draw.GetStringWidth('...' + tempString) > (CONTROL_WIDTH - RIGHT_LIMIT)):
            while Draw.GetStringWidth('...' + tempString) > (CONTROL_WIDTH - RIGHT_LIMIT):
                tempString = tempString[2:]
            Draw.Text('...' + tempString)
        else:
            Draw.Text(OUTPUTString)
    else:
        Draw.Text('Please select a folder...')
Example #14
0
def Display_Camera_Bar(Y_POS, CONTROL_HEIGHT, CONTROL_WIDTH):
    """ Create the Camera setup box. """
    Create_Tab(3, Y_POS, CONTROL_WIDTH, Y_POS - CONTROL_HEIGHT, "Camera setup", Camera_Setup_Selection)
    
    global select_all_cameras_button
    select_all_cameras_button = Draw.PushButton('Select all cameras', no_action, ((CONTROL_WIDTH / 2) + 3), (Y_POS - 22), (CONTROL_WIDTH / 2) - 9, 16, 'Selects all cameras in the scene', Select_All_Cameras)
    
    if Camera_Setup_Selection['Automatic setup'][0].val:
        global camera_number_button
        camera_number_button = Draw.Number("Number of cameras:", CameraNumberButton, 9, (Y_POS - 63), (CONTROL_WIDTH / 2) - 9, 18, camera_number_button_value, camera_number_button_minimum, camera_number_button_maximum, 'Number of cameras to be set up in the scene', camButtonClicked, camera_number_button_step)
        
        global camera_latitude_button
        camera_latitude_button = Draw.Number("Latitude:", CameraLatitudeButton, ((CONTROL_WIDTH / 2) + 3), (Y_POS - 63), (CONTROL_WIDTH / 2) - 9, 18, camera_latitude_button.val, 0, math.pi/2, 'General latitude of the cameras')
        
        global camera_ontop_button
        camera_ontop_button = Draw.Number("Ceiling cameras:", CameraOntopButton, 9, (Y_POS - 84), (CONTROL_WIDTH / 2) - 9, 18, camera_ontop_button.val, 0, 4, 'Number of cameras to be positioned in the ceiling', lambda x,y:None, 10)
        
        if camera_ontop_button.val:
            global camera_ontop_latitude_button
            camera_ontop_latitude_button = Draw.Number("Ceiling latitude:", CameraOntopLatitudeButton, ((CONTROL_WIDTH / 2) + 3), (Y_POS - 84), (CONTROL_WIDTH / 2) - 9, 18, camera_ontop_latitude_button.val, 0, math.pi/2, 'Latitude of the cameras in the ceiling')
        
        global camera_radius_button
        camera_radius_button = Draw.Number("Radius:", CameraRadiusButton, ((CONTROL_WIDTH / 2) + 3), (Y_POS - CONTROL_HEIGHT) + 6, (CONTROL_WIDTH / 2) - 9, 18, camera_radius_button.val, 1, 40, 'The radius of the circle the cameras are placed in, in meters', lambda x,y:None, 10)
    
    if Camera_Setup_Selection['Pre-saved setup'][0].val:
        global camera_import_button
        camera_import_button = Draw.PushButton('Select camera setup (.xml)', CameraImportButton, 9, (Y_POS - 63), (CONTROL_WIDTH / 2) - 9, 18,  'Select camera setup (.xml)')
        
        BGL.glRasterPos2i(11, (Y_POS - 80))
        if CAMString:
            RIGHT_LIMIT = 6
            tempString = CAMString
            if (Draw.GetStringWidth('...' + tempString) > (CONTROL_WIDTH - RIGHT_LIMIT)):
                while Draw.GetStringWidth('...' + tempString) > (CONTROL_WIDTH - RIGHT_LIMIT):
                    tempString = tempString[2:]
                Draw.Text('...' + tempString)
            else:
                Draw.Text(CAMString)
        else:
            Draw.Text('Please select a file...')
    
    global camera_export_button
    camera_export_button = Draw.PushButton('Export current setup', CameraExportButton, 9, (Y_POS - CONTROL_HEIGHT) + 6, (CONTROL_WIDTH / 2) - 9, 18, 'Press this button to save your camera setup')
Example #15
0
    def draw(self):
        area = Window.GetAreaSize()
        w = area[0]
        wPad = int(w * 0.03)
        h = area[1]
        hPad = int(h * 0.03)
        BGL.glColor3f(0.3, 0.3, 0.3)
        BGL.glRectf(wPad - 5, h - 60, w - wPad + 5, h - 85)
        BGL.glColor3f(1.0, 1.0, 1.0)
        BGL.glRasterPos2i(wPad, h - 75)
        Draw.Text('Chicken Configuration script', 'large')
        BGL.glRasterPos2i(wPad, h - 100)
        Draw.Text(
            'This script is launched the first time you run Chicken, or when a configuration error has been detected'
        )

        BGL.glColor3f(0.5, 0.5, 0.5)
        BGL.glRectf(wPad, h - 205, w - wPad, h - 225)
        BGL.glColor3f(1.0, 1.0, 1.0)
        BGL.glRasterPos2i(wPad, h - 220)
        Draw.Text('Binary Utilities - ')
        Draw.Text(
            'if executables such as "pview" are on your PATH, you can leave this on Auto. Otherwise enter the folder manually'
        )
        self.bBinPathAuto.update([wPad + 5, h - 250, w / 2 - wPad - 5, 20])
        self.bBinPathManual.update([w / 2, h - 250, w / 2 - wPad - 5, 20])

        if self.bBinPathManual.val:
            self.bBinPath.update([wPad + 5, h - 272, w - 2 * wPad - 90, 20])
            self.bBinPathSel.update([w - wPad - 85, h - 272, 80, 20])
        self.bLaunch.update([wPad + 5, h - 330, 100, 20])
        self.bCheck.update([w - wPad - 85, h - 330, 80, 20])
        if self.error is not None:
            if self.error is True:
                BGL.glColor3f(1.0, 0.0, 0.0)
                BGL.glRasterPos2i(w - wPad - 150, h - 365)
                Draw.Text('Configuration error detected')
            else:
                BGL.glColor3f(0.0, 0.0, 0.0)
                BGL.glRasterPos2i(w - wPad - 200, h - 365)
                Draw.Text('Configuration checked and saved')
Example #16
0
def drawLights():
    global MESHLIGHTPOWER, DSAMPLES
    ## meshlight power slider
    col = 10
    line = 200
    BGL.glRasterPos2i(col, line)
    Draw.Text("Meshlight:")
    col = 100
    line = 195
    MESHLIGHTPOWER = Draw.Number("Power", 2, col, line, 120, 18,
                                 MESHLIGHTPOWER.val, 1, 15)
    ## lightserver settings
    col = 10
    line = 150
    BGL.glRasterPos2i(col, line)
    Draw.Text("Lightserver:")
    col = 100
    line = 147
    DSAMPLES = Draw.Number("Direct Samples  ", 2, col, line, 250, 18,
                           DSAMPLES.val, 0, 1024)
    drawButtons()
Example #17
0
def drawCamera():
    global DOF, DOFRADIUS, DOFDIST, SPHERICALCAMERA
    ##  camera settings
    col = 10
    line = 200
    BGL.glRasterPos2i(col, line)
    Draw.Text("Camera:")
    col = 100
    line = 195
    DOF = Draw.Toggle("DOF", DOF_CAMERA, col, line, 120, 18, DOF.val)
    col = 225
    DOFDIST = Draw.Number("Distance", 2, col, line, 120, 18, DOFDIST.val, 0.0,
                          200.00)
    col = 350
    DOFRADIUS = Draw.Number("Radius", 2, col, line, 120, 18, DOFRADIUS.val,
                            0.0, 200.00)
    col = 100
    line = 170
    SPHERICALCAMERA = Draw.Toggle("Spherical", SPHER_CAMERA, col, line, 120,
                                  18, SPHERICALCAMERA.val)
    drawButtons()
def draw():     # Define the draw function (which draws your GUI).
	global EVENT_Button
	global EVENT_Type
	global EVENT_shtoguntype
	global EVENT_String
	global EVENT_Bitmap
	global EVENT_WVTU_1
	global Object_Button
	global Object_Type
	global Object_shtoguntype
	global Object_String
	global Object_Bitmap
	global Object_WVTU_1

	BGL.glClearColor(0.244564, 0.244406, 0.244406, 0.0)
	BGL.glClear(GL_COLOR_BUFFER_BIT)

	BGL.glColor3f(1.000000, 1.000000, 1.000000)
	Object_Button = Draw.Button("Connect to Shotgun", EVENT_Button, 20, 8, 200, 20, "")
	BGL.glRasterPos2i(100, 108)
	Object_Type = Draw.Text("Type")
	Object_shtoguntype = Draw.Menu("Asset", EVENT_shtoguntype, 20, 100, 60, 20, Object_shtoguntype.val, "Type of Shotgun entry")
	Object_String = Draw.String("id : ", EVENT_String, 20, 60, 60, 20,Object_String.val, 399, "ID # for the Shotgun entry")
	BGL.glRasterPos2i(24, 210)
	BGL.glDrawPixels(0, 0, GL_RGB, GL_UNSIGNED_BYTE, Object_Bitmap)
	BGL.glRasterPos2i(24, 152)
	Object_WVTU_1 = Draw.Text("WVTU "+VERSION+"")
Example #19
0
def drawAO():
    global OCCLUSSION, OCCBRIGHTR, OCCBRIGHTG, OCCBRIGHTB, OCCDARKR, OCCDARKG, OCCDARKB, OCCSAMPLES, OCCDIST
    col = 10
    line = 200
    BGL.glRasterPos2i(col, line)
    Draw.Text("Ambient Occlusion")
    col = 10
    line = 175
    OCCLUSSION = Draw.Toggle("Amb Occ", 2, col, line, 85, 18, OCCLUSSION.val)
    col = 100
    OCCBRIGHTR = Draw.Number("Bright (R)", 2, col, line, 125, 18,
                             OCCBRIGHTR.val, 0.0, 1.0)
    col = 230
    OCCBRIGHTG = Draw.Number("Bright (G)", 2, col, line, 125, 18,
                             OCCBRIGHTG.val, 0.0, 1.0)
    col = 360
    OCCBRIGHTB = Draw.Number("Bright (B)", 2, col, line, 125, 18,
                             OCCBRIGHTB.val, 0.0, 1.0)
    col = 100
    line = 150
    OCCDARKR = Draw.Number("Dark (R)", 2, col, line, 125, 18, OCCDARKR.val,
                           0.00, 1.0)
    col = 230
    OCCDARKG = Draw.Number("Dark (G)", 2, col, line, 125, 18, OCCDARKG.val,
                           0.0, 1.0)
    col = 360
    OCCDARKB = Draw.Number("Dark (B)", 2, col, line, 125, 18, OCCDARKB.val,
                           0.0, 1.0)
    col = 100
    line = 125
    OCCSAMPLES = Draw.Number("Samples", 2, col, line, 125, 18, OCCSAMPLES.val,
                             0, 256)
    col = 230
    OCCDIST = Draw.Number("Distance", 2, col, line, 125, 18, OCCDIST.val, -1.0,
                          150.0)
    drawButtons()
Example #20
0
def gui():              # the function to draw the screen
  global mystring, mymsg, toggle
  if len(mystring) > 90: mystring = ""
  BGL.glClearColor(0,0,1,1)
  BGL.glClear(BGL.GL_COLOR_BUFFER_BIT)
  BGL.glColor3f(1,1,1)
  Draw.Toggle("Toggle", 1, 10, 10, 55, 20, toggle,"A toggle button")
  BGL.glRasterPos2i(72, 16)
  if toggle: toggle_state = "down"
  else: toggle_state = "up"
  Draw.Text("The toggle button is %s." % toggle_state, "small")
  BGL.glRasterPos2i(10, 230)
  Draw.Text("Type letters from a to z, ESC to leave.")
  BGL.glRasterPos2i(20, 200)
  Draw.Text(mystring)
  BGL.glColor3f(1,0.4,0.3)
  BGL.glRasterPos2i(340, 70)
  Draw.Text(mymsg, "tiny")
def gui():
    global active_object, file_str, local_toggle, global_toggle, all_to_triangle
    my_export_button = Draw.PushButton("Export", 3, 100, 50, 70, 20, "Export active object to selected file.")
    # my_local_toggle = Draw.Toggle("local coordinates", 0, 100, 100, 150, 20, local_toggle, "When selected local mesh coordinates will be exported.")
    # my_global_toggle = Draw.Toggle("global coordinates", 1, 250, 100, 150, 20, global_toggle, "When selected global mesh coordinates will be exported.")
    # my_triangles_toggle = Draw.Toggle("Quads to Triangles", 5, 100, 75, 150, 20, all_to_triangle, "When selected all faces will be transformed to triangles.")
    # BGL.glRasterPos2i(255, 80)
    # Draw.Text("!! THIS WILL ALTER YOUR OBJECT !!", "normal")
    my_file_choose_btn = Draw.PushButton("Choose file", 2, 100, 150, 120, 20, "Click here to select a file to save to")
    my_exit_btn = Draw.PushButton("Exit", 4, 200, 50, 70, 20, "Click here to abort and exit.")
    BGL.glRasterPos2i(230, 155)
    Draw.Text(file_str, "normal")
    BGL.glRasterPos2i(100, 175)
    Draw.Text("Selected object:", "normal")
    BGL.glRasterPos2i(230, 175)
    Draw.Text(active_object.name, "normal")
Example #22
0
 def gui(self):              # the function to draw the screen
   BGL.glClearColor(0,0,0.5,1)
   BGL.glClear(BGL.GL_COLOR_BUFFER_BIT)
   BGL.glColor3f(1,1,1)
   
   BGL.glRasterPos2i(20,200)
   Draw.Text("Select the object to export:", "normal")
   self.objMenu = Draw.Menu(self.sObjSelection, 1, 20, 170, 200, 20, self.objSel, "Select the animated object.")
   
   BGL.glRasterPos2i(20,150)
   Draw.Text("Select the armature to export:", "normal")
   self.armMenu = Draw.Menu(self.sArmSelection, 2, 20, 120, 200, 20, self.armSel, "Select the matching armature.")
   
   BGL.glRasterPos2i(20,100)
   Draw.Text("Select the root bone of the armature:", "normal")
   self.boneMenu = Draw.Menu(self.sBoneSelection, 3, 20, 70, 200, 20, self.boneSel, "Select the Root Bone of the armature.")
   
   Draw.PushButton("Export", 4, 250, 150, 50, 20, "Export File")
   Draw.PushButton("Cancel", 5, 250, 110, 50, 20, "Cancel")
   
   BGL.glRasterPos2i(72, 16)
   string = "Selections: " + ("%s" % self.objSel) + " / " + ("%s" % self.armSel) + " / " + ("%s" % self.boneSel)
   
   Draw.Text(string, "small")
Example #23
0
def Display_File_Bar(Y_POS, CONTROL_HEIGHT, CONTROL_WIDTH):
    """ Create the File setup box."""
    global num_motions_button
    Create_Tab(3, Y_POS, CONTROL_WIDTH, Y_POS - CONTROL_HEIGHT, "File setup", 0)
    
    RIGHT_LIMIT = 90
    global ASF_button
    ASF_button = Draw.PushButton('ASF-file', ASFBUTTON, 9, (Y_POS - 41), 65, 18,  'ASF-file')
    
    BGL.glRasterPos2i(80, (Y_POS - 37))
    if ASFString:
        tempString = ASFString
        if (Draw.GetStringWidth('...' + tempString) > (CONTROL_WIDTH - RIGHT_LIMIT)):
            while Draw.GetStringWidth('...' + tempString) > (CONTROL_WIDTH - RIGHT_LIMIT):
                tempString = tempString[2:]
            Draw.Text('...' + tempString)
        else:
            Draw.Text(ASFString)
    else:
        Draw.Text('Please select a file...')
    
    global AMC_button
    AMC_button = Draw.PushButton('AMC-file', AMCBUTTON, 9, (Y_POS - 63), 65, 18,  'AMC-file')
    
    BGL.glRasterPos2i(80, (Y_POS - 58))
    if AMCString:
        tempString = AMCString
        if (Draw.GetStringWidth('...' + tempString) > (CONTROL_WIDTH - RIGHT_LIMIT)):
            while Draw.GetStringWidth('...' + tempString) > (CONTROL_WIDTH - RIGHT_LIMIT):
                tempString = tempString[2:]
            Draw.Text('...' + tempString)
        else:
            Draw.Text(AMCString)
    else:
        Draw.Text('Please select a file...')
    
    if num_motions_button.val > 1:
        global AMC2_button
        AMC2_button = Draw.PushButton('AMC2-file', AMC2BUTTON, 9, (Y_POS - 85), 65, 18,  'AMC-file')
        
        BGL.glRasterPos2i(80, (Y_POS - 80))
        if stitch and AMC2String:
            tempString = AMC2String
            if (Draw.GetStringWidth('...' + tempString) > (CONTROL_WIDTH - RIGHT_LIMIT)):
                while Draw.GetStringWidth('...' + tempString) > (CONTROL_WIDTH - RIGHT_LIMIT):
                    tempString = tempString[2:]
                Draw.Text('...' + tempString)
            else:
                Draw.Text(AMC2String)
        else:
            Draw.Text('Please select a file...')
    if num_motions_button.val > 2:
        global AMC3_button
        AMC3_button = Draw.PushButton('AMC3-file', AMC3BUTTON, 9, (Y_POS - 107), 65, 18,  'AMC-file')
        
        BGL.glRasterPos2i(80, (Y_POS - 101))
        if AMC3String:
            tempString = AMC3String
            if (Draw.GetStringWidth('...' + tempString) > (CONTROL_WIDTH - RIGHT_LIMIT)):
                while Draw.GetStringWidth('...' + tempString) > (CONTROL_WIDTH - RIGHT_LIMIT):
                    tempString = tempString[2:]
                Draw.Text('...' + tempString)
            else:
                Draw.Text(AMC3String)
        else:
            Draw.Text('Please select a file...')
    if num_motions_button.val > 3:
        global AMC4_button
        AMC4_button = Draw.PushButton('AMC4-file', AMC4BUTTON, 9, (Y_POS - 129), 65, 18,  'AMC-file')
        
        BGL.glRasterPos2i(80, (Y_POS - 123))
        if AMC4String:
            tempString = AMC4String
            if (Draw.GetStringWidth('...' + tempString) > (CONTROL_WIDTH - RIGHT_LIMIT)):
                while Draw.GetStringWidth('...' + tempString) > (CONTROL_WIDTH - RIGHT_LIMIT):
                    tempString = tempString[2:]
                Draw.Text('...' + tempString)
            else:
                Draw.Text(AMC4String)
        else:
            Draw.Text('Please select a file...')
    if num_motions_button.val > 4:
        global AMC5_button
        AMC5_button = Draw.PushButton('AMC5-file', AMC5BUTTON, 9, (Y_POS - 151), 65, 18,  'AMC-file')
        
        BGL.glRasterPos2i(80, (Y_POS - 145))
        if AMC5String:
            tempString = AMC5String
            if (Draw.GetStringWidth('...' + tempString) > (CONTROL_WIDTH - RIGHT_LIMIT)):
                while Draw.GetStringWidth('...' + tempString) > (CONTROL_WIDTH - RIGHT_LIMIT):
                    tempString = tempString[2:]
                Draw.Text('...' + tempString)
            else:
                Draw.Text(AMC5String)
        else:
            Draw.Text('Please select a file...')
    
    num_motions_button = Draw.Number("Number of motions:", STITCHBUTTON, 9, (Y_POS - 63 - (22*num_motions_button.val)), (CONTROL_WIDTH / 2) - 9, 18, num_motions_button.val, 1, 5, 'The number of motions to be imported')
    
    if num_motions_button.val > 1:
        global motion_transition_button
        motion_transition_button = Draw.Number("Transition time (frames):", no_action, ((CONTROL_WIDTH / 2) + 3), (Y_POS - 63 - (22*num_motions_button.val)), (CONTROL_WIDTH / 2) - 9, 18, motion_transition_button.val, 1, 1000, 'The number of frames between each motion')
Example #24
0
def renderGUI():

	"""
	Renders the GUI for the script.
	"""
	
	global G

	# find the selection set and update some selection
	#  related flags
	haveEmpty  = False
	haveCamera = False
	emptyName  = ""
	G.selection = Object.GetSelected()
	G.curempty  = None
	if G.selection is not None and len(G.selection) > 0:
		mso = G.selection[0]
		msotype = mso.getType()
		if msotype == 'Empty':
			haveEmpty = True
			G.curempty = mso
			emptyName = G.curempty.getName()
		elif msotype == 'Camera':
			haveCamera = True
	emptyHasCoords = G.coordmap.has_key(emptyName)
	removeUnknownsFromCoords()
	
	# clear any buttons that need to have set states
	G.buttons.add = G.buttons.delete = None
	
	# clear the window
	c = COLOR_BACKGROUND
	BGL.glClearColor(c[0], c[1], c[2], c[3])
	BGL.glClear(BGL.GL_COLOR_BUFFER_BIT)

	# paint the image in the background
	if G.image is not None:
		#drawImage(G.image, G.imgpos, G.iw, G.ih, G.zoom)
		Draw.Image(G.image, G.imgpos[0], G.imgpos[1], G.zoom, G.zoom)
	# paint 2D vertices in the image
	BGL.glPushAttrib(BGL.GL_POINT_BIT | BGL.GL_CURRENT_BIT)
	BGL.glPointSize(POINT_SIZE)
	x0 = int(G.imgpos[0] / G.zoom)
	y0 = int(G.imgpos[1] / G.zoom)
	def drawvc(ec):
		emptyname, coord = ec
		if Object.Get(emptyname) in G.selection:
			c = COLOR_VERTSEL
		else:
			c = COLOR_VERTUNSEL
		BGL.glColor4f(c[0], c[1], c[2], c[3])
		BGL.glVertex2f(G.zoom*(coord[0]+x0), G.zoom*(coord[1]+y0))
	BGL.glBegin(BGL.GL_POINTS)
	map(drawvc, G.coordmap.items())
	BGL.glEnd()
	BGL.glPopAttrib()
	
	# if we're in add mode then draw some extra stuff
	if G.mode == MODE_ADD:
	
		xm,ym = map(int, getWMCoords())
		xm -= 10
		ym += 10
		(xw,yw,ww,hw) = getWinRect()
		
		# draw crosshairs
		c = COLOR_CROSSHAIRS
		BGL.glColor4f(c[0], c[1], c[2], c[3])		
		verts = [ (xm,0), (xm,hw), (0,ym), (ww,ym) ]
		BGL.glBegin(BGL.GL_LINES)
		map(lambda x: BGL.glVertex2d(x[0],x[1]), verts)
		BGL.glEnd()

		#############################################
		# UNCOMMENT THIS SECTION FOR A COOL MINIMAP
		# EFFECT - NOT VERY USEFUL THOUGH
		#
		## draw "minimap" background
		#c = COLOR_MINIMAP
		#BGL.glColor4f(c[0], c[1], c[2], c[3])
		#verts = [ (119,10), (221,10), (221,111), (119,111) ]
		#BGL.glBegin(BGL.GL_QUADS)
		#map(lambda x: BGL.glVertex2i(x[0],x[1]), verts)
		#BGL.glEnd()
		#
		## paint the image into the minimap
		#ix,iy = wc2ic((xm,ym))
		#ix,iy = map(int, [ix, iy])
		#drawImage(G.ibuf, (120,10), G.iw, G.ih, 10.0, (ix-5,iy-5,10,10))
		#
		# END OF MINIMAP SECTION
		#############################################
	
	# paint the current empty name
	if haveEmpty:
		c = COLOR_TEXT
		BGL.glColor4d(c[0], c[1], c[2], c[3])
		BGL.glRasterPos2i(220, 10)
		Draw.Text(emptyName, 'small')
	
	# paint the normal GUI buttons
	G.buttons.quit = Draw.PushButton('Quit', BUTTON_QUIT, 5, 5, 100, 20, 'Exits the script.')
	G.buttons.load = Draw.PushButton('Load Image', BUTTON_LOAD, 5, 25, 100, 20, 'Loads an image.')
	G.buttons.zoom = Draw.Number('Zoom', BUTTON_ZOOM, 5, 45, 100, 20, G.zoom, ZOOM_MIN, ZOOM_MAX, 'Adjusts image zoom.')

	# paint camera-specific stuff
	if haveCamera:
		G.buttons.fullopt   = Draw.Toggle('Full Optimization', BUTTON_FULLOPT, 110, 5, 120, 20, G.fullopt, 'Full or partial optimization.')
		G.buttons.coplanar  = Draw.Toggle('Coplanar', BUTTON_COPLANAR, 110, 25, 120, 20, G.coplanar, 'Coplanar or non-coplanar target.')
		# Origin offset is not currently working in the Tsai module.
		#  It should be brought back here when it is.
		#G.buttons.ofsz      = Draw.Number('OfsZ', BUTTON_OFSZ, 110, 50, 100, 20, G.ofsz, OFS_MIN, OFS_MAX, 'Z origin offset.')
		#G.buttons.ofsy      = Draw.Number('OfsY', BUTTON_OFSY, 110, 70, 100, 20, G.ofsy, OFS_MIN, OFS_MAX, 'Y origin offset.')
		#G.buttons.ofsx      = Draw.Number('OfsX', BUTTON_OFSX, 110, 90, 100, 20, G.ofsx, OFS_MIN, OFS_MAX, 'X origin offset.')
		G.buttons.calibrate = Draw.PushButton('Calibrate', BUTTON_CALIBRATE, 235, 5, 100, 20, 'Calibrates the selected camera.')
	
	# paint empty-specific stuff
	elif haveEmpty and (G.mode == MODE_NORMAL):
		if emptyHasCoords:
			G.buttons.delete = Draw.PushButton('Delete', BUTTON_DELETE, 110, 5, 100, 20, 'Adds an image calibration coordinate.')
		else:
			G.buttons.add = Draw.PushButton('Add', BUTTON_ADD, 110, 5, 100, 20, 'Removes an image calibration coordinate.')
Example #25
0
def draw():
	global n2mat, bl_mats_menu, n2_shader_menu, shader_params_menu, texture_param_list
	
	win_size = Window.GetAreaSize()
	left = 0
	top = win_size[1]
	
	button_width = 100
	button_height = 17
	pen_x = left + padding
	pen_y = win_size[1] - (button_height + padding)
		
	# TODO: get material for selected object if any				
	
	if(n2mat):
		# Draw Label
		BGL.glColor3f(1.0, 1.0, 1.0)
		BGL.glRasterPos2i(pen_x, pen_y)
		text_width = Draw.Text('Blender Material')
		
		# Move Pen Point
		pen_x = pen_x + text_width + padding
		pen_y = pen_y - 5
		#
		menu = buildMenu(bl_mats)
		bl_mats_menu = Draw.Menu(menu, BL_MAT_CHANGED, pen_x, pen_y, button_width, button_height, bl_mat_index, 'Blender Material')
		
		# Move Pen Point
		pen_x = pen_x + button_width + (padding * 2)
		pen_y = pen_y + 5
		BGL.glRasterPos2i(pen_x, pen_y)

		# Draw Label
		text_width = Draw.Text('Nebula Shader')
		
		# Move Pen Point
		pen_x = pen_x + text_width + (padding)
		pen_y = pen_y - 5
		button_width = 180
		#
		menu = buildMenu(n2_shaders)
		n2_shader_menu = Draw.Menu(menu, NEBULA_SHADER_CHANGED, pen_x, pen_y, button_width, button_height, n2_shader_index, 'Nebula Shader')
		
		# Draw Params for current nebula shader
		shader = n2mat.GetShader()
		# Move Pen
		params_start_y = pen_y
		pen_x = left + padding
		params = shader.m_params
		label_width = 130
		label_max_chars = 25
		button_width_max = 80
		name_max_chars = 10
		column_size = label_width + (padding *2) + button_width_max
		# Get Mesh object holding the shaders name and params
		texture_param_list = []
		button_width = 120
		#params = []
		for key in params:
			param = params[key]
			if(not n2exporter.texture_param_types.has_key(param.m_type)):
				if((pen_y - button_height - padding) < button_height):
					pen_x = pen_x + column_size#(win_size[0] / 2)
					pen_y = params_start_y
				pen_y = pen_y - button_height - padding
				BGL.glRasterPos2i(pen_x, pen_y)
				label = param.m_label
				name = param.m_name
				stored_value = n2mat.GetParamValue(param.m_name)
				if(len(label)>label_max_chars):
					label = label[0:label_max_chars]
				if(len(name)>name_max_chars):
					name = name[0:name_max_chars]
				Draw.Text(str(label))
			if(param.m_type == "Int"):
				button_width = 50
				pen_x = pen_x + label_width + padding
				pen_y = pen_y - 5
				shader_params_menu[param.m_name] = Draw.Number("", SHADER_PARAM_CHANGED, pen_x, pen_y, button_width, button_height, int(stored_value), int(param.m_min), int(param.m_max), str(param.m_label))
				pen_x = pen_x - label_width - padding
				pen_y = pen_y + 5
			elif(param.m_type == "Bool"):
				button_width = 55
				pen_x = pen_x + label_width + padding
				pen_y = pen_y - 5
				menu = buildMenu(["False", "True"])
				shader_params_menu[param.m_name] = Draw.Menu(menu, SHADER_PARAM_CHANGED, pen_x, pen_y, button_width, button_height, int(stored_value), str(param.m_label))
				pen_x = pen_x - label_width - padding
				pen_y = pen_y + 5
			elif(param.m_type == "Float"):
				button_width = 60
				pen_x = pen_x + label_width + padding
				pen_y = pen_y - 5
				shader_params_menu[param.m_name] = Draw.Number("", SHADER_PARAM_CHANGED, pen_x, pen_y, button_width, button_height, float(stored_value), float(param.m_min), float(param.m_max), str(param.m_label))
				pen_x = pen_x - label_width - padding
				pen_y = pen_y + 5
			elif(param.m_type == "Enum"):
				button_width = 80
				pen_x = pen_x + label_width + padding
				pen_y = pen_y - 5
				menu = buildMenu(param.m_enum, param.m_default_enum)
				shader_params_menu[param.m_name] = Draw.Menu(menu, SHADER_PARAM_CHANGED, pen_x, pen_y, button_width, button_height, int(stored_value), str(param.m_label))
				pen_x = pen_x - label_width - padding
				pen_y = pen_y + 5
			elif(param.m_type == "Vector"):
				button_width = 50
				pen_y = pen_y - button_height - 5
				v = n2exporter.StringToVector(stored_value)
				shader_params_menu[param.m_name + "_x"] = Draw.Number("", SHADER_PARAM_CHANGED, pen_x, pen_y, button_width, button_height, v.x, 0.0, 100.0, "x Component")
				pen_x = pen_x + button_width
				shader_params_menu[param.m_name + "_y"] = Draw.Number("", SHADER_PARAM_CHANGED, pen_x, pen_y, button_width, button_height, v.y, 0.0, 100.0, "y Component")
				pen_x = pen_x + button_width
				shader_params_menu[param.m_name + "_z"] = Draw.Number("", SHADER_PARAM_CHANGED, pen_x, pen_y, button_width, button_height, v.z, 0.0, 100.0, "z Component")
				pen_x = pen_x + button_width
				shader_params_menu[param.m_name + "_w"] = Draw.Number("", SHADER_PARAM_CHANGED, pen_x, pen_y, button_width, button_height, v.w, 0.0, 100.0, "w Component")
				pen_x = pen_x - ((button_width) * 3)
			elif(n2exporter.texture_param_types.has_key(param.m_type)):
				texture_param_list.append(param.m_name)
		# Build textures menu
		if(len(texture_param_list)>0):
			if((pen_y - button_height - padding) < button_height):
				pen_x = pen_x = pen_x + column_size
				pen_y = params_start_y
			button_width = 80
			pen_y = pen_y - button_height - padding - 5
			#
			texture_param_name = texture_param_list[texture_param_index]
			menu = buildMenu(texture_param_list)
			shader_params_menu["TextureParams"] = Draw.Menu(menu, TEXTURE_PARAM_CHANGED, pen_x, pen_y, button_width, button_height, texture_param_index, "Shader Textures")
			# Move Pen
			pen_x = pen_x + button_width + padding
			button_width = 160
			default = n2mat.GetParamValue(texture_param_name)
			shader_params_menu[texture_param_name] = Draw.String("", TEXTURE_PARAM_CLICKED, pen_x, pen_y, button_width, button_height, default, 255, "Texture Params")
			#Draw Browse button
			pen_x = pen_x + button_width
			button_width = 20
			Draw.PushButton("...", TEXTURE_SELECT_CLICKED, pen_x, pen_y, button_width, button_height, "Select Texture")
	else:
		Draw.PupMenu("Error%t|You must have a blender material in the scene")
		Draw.Exit()
		return
Example #26
0
def draw():
	win_size = Window.GetAreaSize()
	left = 0
	top = win_size[1]
	
	button_width = 180
	button_height = 20
	label_width = 105
	pen_x = left + padding
	pen_y = win_size[1] - (button_height + padding)
		
	# Draw Label
	BGL.glColor3f(1.0, 1.0, 1.0)
	BGL.glRasterPos2i(pen_x, pen_y)
	text_width = Draw.Text('Nebula Home Dir')
	
	# Move Pen Point
	pen_x = pen_x + text_width + padding
	pen_y = pen_y - 5
	
	# Draw String Button
	home_dir_input = Draw.String("", HOME_DIR_CHANGED, pen_x, pen_y, button_width, button_height, config_data["home"], 255, "Nebula's Home Directory")
	pen_x = pen_x + button_width
	button_width = 20
	Draw.PushButton("...", BROWSE_HOME_CLICKED, pen_x, pen_y, button_width, button_height, "Browse for Nebula Home Directory")
	
	# Move Pen Point
	pen_x = left + padding
	pen_y = pen_y - button_height - 5
	button_width = 180
	BGL.glColor3f(1.0, 1.0, 1.0)
	BGL.glRasterPos2i(pen_x, pen_y)
	Draw.Text('Project Dir')
	
	# Move Pen Point
	pen_x = pen_x + text_width + padding
	pen_y = pen_y - 5
	
	# Draw String Button
	proj_dir_input = Draw.String("", PROJ_DIR_CHANGED, pen_x, pen_y, button_width, button_height, config_data["proj"], 255, "Projetct Directory")
	pen_x = pen_x + button_width
	button_width = 20
	Draw.PushButton("...", BROWSE_PROJ_CLICKED, pen_x, pen_y, button_width, button_height, "Browse for Project Directory")
	
	# Move Pen Point
	pen_x = left + padding
	pen_y = pen_y - button_height - 5
	button_width = 150
	BGL.glColor3f(1.0, 1.0, 1.0)
	BGL.glRasterPos2i(pen_x, pen_y)
	Draw.Text('Export Dir')
	
	# Draw String Button
	pen_x = pen_x + label_width
	pen_y = pen_y - 5
	dir_assigns["export"] = Draw.String("", ASSIGN_DIR_CHANGED, pen_x, pen_y, button_width, button_height, config_data["export"], 255, "Export Directory")
	pen_y = pen_y + 5
	
	for data in config_data:
		if(data != "home" and data != "export" and data != "texture_dir" and data != "proj"):
			# Move Pen Point
			pen_x = left + padding
			pen_y = pen_y - button_height - 5
			# Draw Label
			BGL.glColor3f(1.0, 1.0, 1.0)
			BGL.glRasterPos2i(pen_x, pen_y)
			text_width = Draw.Text(data)
			# Draw Button
			pen_x = pen_x + label_width
			pen_y = pen_y - 5
			dir_assigns[data] = Draw.String("", ASSIGN_DIR_CHANGED, pen_x, pen_y, button_width, button_height, config_data[data], 255, "Assign")
			pen_y = pen_y + 5
	# Draw OK Cancel Buttons
	button_width = 100
	
	pen_x = left + padding
	pen_y = pen_y - button_height - 5 - padding
	Draw.PushButton("Cancel", CANCEL_CLICKED, pen_x, pen_y, button_width, button_height, "Cancel Configuration")
	
	pen_x = pen_x + button_width + padding
	Draw.PushButton("OK", OK_CLICKED, pen_x, pen_y, button_width, button_height, "Save Configuration")
Example #27
0
def draw():
    global n2mat, bl_mats_menu, n2_shader_menu, shader_params_menu, texture_param_list

    win_size = Window.GetAreaSize()
    left = 0
    top = win_size[1]

    button_width = 100
    button_height = 17
    pen_x = left + padding
    pen_y = win_size[1] - (button_height + padding)

    # TODO: get material for selected object if any

    if (n2mat):
        # Draw Label
        BGL.glColor3f(1.0, 1.0, 1.0)
        BGL.glRasterPos2i(pen_x, pen_y)
        text_width = Draw.Text('Blender Material')

        # Move Pen Point
        pen_x = pen_x + text_width + padding
        pen_y = pen_y - 5
        #
        menu = buildMenu(bl_mats)
        bl_mats_menu = Draw.Menu(menu, BL_MAT_CHANGED, pen_x, pen_y,
                                 button_width, button_height, bl_mat_index,
                                 'Blender Material')

        # Move Pen Point
        pen_x = pen_x + button_width + (padding * 2)
        pen_y = pen_y + 5
        BGL.glRasterPos2i(pen_x, pen_y)

        # Draw Label
        text_width = Draw.Text('Nebula Shader')

        # Move Pen Point
        pen_x = pen_x + text_width + (padding)
        pen_y = pen_y - 5
        button_width = 180
        #
        menu = buildMenu(n2_shaders)
        n2_shader_menu = Draw.Menu(menu, NEBULA_SHADER_CHANGED, pen_x, pen_y,
                                   button_width, button_height,
                                   n2_shader_index, 'Nebula Shader')

        # Draw Params for current nebula shader
        shader = n2mat.GetShader()
        # Move Pen
        params_start_y = pen_y
        pen_x = left + padding
        params = shader.m_params
        label_width = 130
        label_max_chars = 25
        button_width_max = 80
        name_max_chars = 10
        column_size = label_width + (padding * 2) + button_width_max
        # Get Mesh object holding the shaders name and params
        texture_param_list = []
        button_width = 120
        #params = []
        for key in params:
            param = params[key]
            if (not n2exporter.texture_param_types.has_key(param.m_type)):
                if ((pen_y - button_height - padding) < button_height):
                    pen_x = pen_x + column_size  #(win_size[0] / 2)
                    pen_y = params_start_y
                pen_y = pen_y - button_height - padding
                BGL.glRasterPos2i(pen_x, pen_y)
                label = param.m_label
                name = param.m_name
                stored_value = n2mat.GetParamValue(param.m_name)
                if (len(label) > label_max_chars):
                    label = label[0:label_max_chars]
                if (len(name) > name_max_chars):
                    name = name[0:name_max_chars]
                Draw.Text(str(label))
            if (param.m_type == "Int"):
                button_width = 50
                pen_x = pen_x + label_width + padding
                pen_y = pen_y - 5
                shader_params_menu[param.m_name] = Draw.Number(
                    "", SHADER_PARAM_CHANGED, pen_x, pen_y, button_width,
                    button_height, int(stored_value), int(param.m_min),
                    int(param.m_max), str(param.m_label))
                pen_x = pen_x - label_width - padding
                pen_y = pen_y + 5
            elif (param.m_type == "Bool"):
                button_width = 55
                pen_x = pen_x + label_width + padding
                pen_y = pen_y - 5
                menu = buildMenu(["False", "True"])
                shader_params_menu[param.m_name] = Draw.Menu(
                    menu, SHADER_PARAM_CHANGED, pen_x, pen_y, button_width,
                    button_height, int(stored_value), str(param.m_label))
                pen_x = pen_x - label_width - padding
                pen_y = pen_y + 5
            elif (param.m_type == "Float"):
                button_width = 60
                pen_x = pen_x + label_width + padding
                pen_y = pen_y - 5
                shader_params_menu[param.m_name] = Draw.Number(
                    "", SHADER_PARAM_CHANGED, pen_x, pen_y, button_width,
                    button_height, float(stored_value), float(param.m_min),
                    float(param.m_max), str(param.m_label))
                pen_x = pen_x - label_width - padding
                pen_y = pen_y + 5
            elif (param.m_type == "Enum"):
                button_width = 80
                pen_x = pen_x + label_width + padding
                pen_y = pen_y - 5
                menu = buildMenu(param.m_enum, param.m_default_enum)
                shader_params_menu[param.m_name] = Draw.Menu(
                    menu, SHADER_PARAM_CHANGED, pen_x, pen_y, button_width,
                    button_height, int(stored_value), str(param.m_label))
                pen_x = pen_x - label_width - padding
                pen_y = pen_y + 5
            elif (param.m_type == "Vector"):
                button_width = 50
                pen_y = pen_y - button_height - 5
                v = n2exporter.StringToVector(stored_value)
                shader_params_menu[param.m_name + "_x"] = Draw.Number(
                    "", SHADER_PARAM_CHANGED, pen_x, pen_y, button_width,
                    button_height, v.x, 0.0, 100.0, "x Component")
                pen_x = pen_x + button_width
                shader_params_menu[param.m_name + "_y"] = Draw.Number(
                    "", SHADER_PARAM_CHANGED, pen_x, pen_y, button_width,
                    button_height, v.y, 0.0, 100.0, "y Component")
                pen_x = pen_x + button_width
                shader_params_menu[param.m_name + "_z"] = Draw.Number(
                    "", SHADER_PARAM_CHANGED, pen_x, pen_y, button_width,
                    button_height, v.z, 0.0, 100.0, "z Component")
                pen_x = pen_x + button_width
                shader_params_menu[param.m_name + "_w"] = Draw.Number(
                    "", SHADER_PARAM_CHANGED, pen_x, pen_y, button_width,
                    button_height, v.w, 0.0, 100.0, "w Component")
                pen_x = pen_x - ((button_width) * 3)
            elif (n2exporter.texture_param_types.has_key(param.m_type)):
                texture_param_list.append(param.m_name)
        # Build textures menu
        if (len(texture_param_list) > 0):
            if ((pen_y - button_height - padding) < button_height):
                pen_x = pen_x = pen_x + column_size
                pen_y = params_start_y
            button_width = 80
            pen_y = pen_y - button_height - padding - 5
            #
            texture_param_name = texture_param_list[texture_param_index]
            menu = buildMenu(texture_param_list)
            shader_params_menu["TextureParams"] = Draw.Menu(
                menu, TEXTURE_PARAM_CHANGED, pen_x, pen_y, button_width,
                button_height, texture_param_index, "Shader Textures")
            # Move Pen
            pen_x = pen_x + button_width + padding
            button_width = 160
            default = n2mat.GetParamValue(texture_param_name)
            shader_params_menu[texture_param_name] = Draw.String(
                "", TEXTURE_PARAM_CLICKED, pen_x, pen_y, button_width,
                button_height, default, 255, "Texture Params")
            #Draw Browse button
            pen_x = pen_x + button_width
            button_width = 20
            Draw.PushButton("...", TEXTURE_SELECT_CLICKED, pen_x, pen_y,
                            button_width, button_height, "Select Texture")
    else:
        Draw.PupMenu("Error%t|You must have a blender material in the scene")
        Draw.Exit()
        return
Example #28
0
def renderGUI():
    """
	Renders the GUI for the script.
	"""

    global G

    # find the selection set and update some selection
    #  related flags
    haveEmpty = False
    haveCamera = False
    emptyName = ""
    G.selection = Object.GetSelected()
    G.curempty = None
    if G.selection is not None and len(G.selection) > 0:
        mso = G.selection[0]
        msotype = mso.getType()
        if msotype == 'Empty':
            haveEmpty = True
            G.curempty = mso
            emptyName = G.curempty.getName()
        elif msotype == 'Camera':
            haveCamera = True
    emptyHasCoords = G.coordmap.has_key(emptyName)
    removeUnknownsFromCoords()

    # clear any buttons that need to have set states
    G.buttons.add = G.buttons.delete = None

    # clear the window
    c = COLOR_BACKGROUND
    BGL.glClearColor(c[0], c[1], c[2], c[3])
    BGL.glClear(BGL.GL_COLOR_BUFFER_BIT)

    # paint the image in the background
    if G.image is not None:
        #drawImage(G.image, G.imgpos, G.iw, G.ih, G.zoom)
        Draw.Image(G.image, G.imgpos[0], G.imgpos[1], G.zoom, G.zoom)
    # paint 2D vertices in the image
    BGL.glPushAttrib(BGL.GL_POINT_BIT | BGL.GL_CURRENT_BIT)
    BGL.glPointSize(POINT_SIZE)
    x0 = int(G.imgpos[0] / G.zoom)
    y0 = int(G.imgpos[1] / G.zoom)

    def drawvc(ec):
        emptyname, coord = ec
        if Object.Get(emptyname) in G.selection:
            c = COLOR_VERTSEL
        else:
            c = COLOR_VERTUNSEL
        BGL.glColor4f(c[0], c[1], c[2], c[3])
        BGL.glVertex2f(G.zoom * (coord[0] + x0), G.zoom * (coord[1] + y0))

    BGL.glBegin(BGL.GL_POINTS)
    map(drawvc, G.coordmap.items())
    BGL.glEnd()
    BGL.glPopAttrib()

    # if we're in add mode then draw some extra stuff
    if G.mode == MODE_ADD:

        xm, ym = map(int, getWMCoords())
        xm -= 10
        ym += 10
        (xw, yw, ww, hw) = getWinRect()

        # draw crosshairs
        c = COLOR_CROSSHAIRS
        BGL.glColor4f(c[0], c[1], c[2], c[3])
        verts = [(xm, 0), (xm, hw), (0, ym), (ww, ym)]
        BGL.glBegin(BGL.GL_LINES)
        map(lambda x: BGL.glVertex2d(x[0], x[1]), verts)
        BGL.glEnd()

        #############################################
        # UNCOMMENT THIS SECTION FOR A COOL MINIMAP
        # EFFECT - NOT VERY USEFUL THOUGH
        #
        ## draw "minimap" background
        #c = COLOR_MINIMAP
        #BGL.glColor4f(c[0], c[1], c[2], c[3])
        #verts = [ (119,10), (221,10), (221,111), (119,111) ]
        #BGL.glBegin(BGL.GL_QUADS)
        #map(lambda x: BGL.glVertex2i(x[0],x[1]), verts)
        #BGL.glEnd()
        #
        ## paint the image into the minimap
        #ix,iy = wc2ic((xm,ym))
        #ix,iy = map(int, [ix, iy])
        #drawImage(G.ibuf, (120,10), G.iw, G.ih, 10.0, (ix-5,iy-5,10,10))
        #
        # END OF MINIMAP SECTION
        #############################################

    # paint the current empty name
    if haveEmpty:
        c = COLOR_TEXT
        BGL.glColor4d(c[0], c[1], c[2], c[3])
        BGL.glRasterPos2i(220, 10)
        Draw.Text(emptyName, 'small')

    # paint the normal GUI buttons
    G.buttons.quit = Draw.PushButton('Quit', BUTTON_QUIT, 5, 5, 100, 20,
                                     'Exits the script.')
    G.buttons.load = Draw.PushButton('Load Image', BUTTON_LOAD, 5, 25, 100, 20,
                                     'Loads an image.')
    G.buttons.zoom = Draw.Number('Zoom', BUTTON_ZOOM, 5, 45, 100, 20, G.zoom,
                                 ZOOM_MIN, ZOOM_MAX, 'Adjusts image zoom.')

    # paint camera-specific stuff
    if haveCamera:
        G.buttons.fullopt = Draw.Toggle('Full Optimization', BUTTON_FULLOPT,
                                        110, 5, 120, 20, G.fullopt,
                                        'Full or partial optimization.')
        G.buttons.coplanar = Draw.Toggle('Coplanar', BUTTON_COPLANAR, 110, 25,
                                         120, 20, G.coplanar,
                                         'Coplanar or non-coplanar target.')
        # Origin offset is not currently working in the Tsai module.
        #  It should be brought back here when it is.
        #G.buttons.ofsz      = Draw.Number('OfsZ', BUTTON_OFSZ, 110, 50, 100, 20, G.ofsz, OFS_MIN, OFS_MAX, 'Z origin offset.')
        #G.buttons.ofsy      = Draw.Number('OfsY', BUTTON_OFSY, 110, 70, 100, 20, G.ofsy, OFS_MIN, OFS_MAX, 'Y origin offset.')
        #G.buttons.ofsx      = Draw.Number('OfsX', BUTTON_OFSX, 110, 90, 100, 20, G.ofsx, OFS_MIN, OFS_MAX, 'X origin offset.')
        G.buttons.calibrate = Draw.PushButton(
            'Calibrate', BUTTON_CALIBRATE, 235, 5, 100, 20,
            'Calibrates the selected camera.')

    # paint empty-specific stuff
    elif haveEmpty and (G.mode == MODE_NORMAL):
        if emptyHasCoords:
            G.buttons.delete = Draw.PushButton(
                'Delete', BUTTON_DELETE, 110, 5, 100, 20,
                'Adds an image calibration coordinate.')
        else:
            G.buttons.add = Draw.PushButton(
                'Add', BUTTON_ADD, 110, 5, 100, 20,
                'Removes an image calibration coordinate.')
Example #29
0
def OnDraw():
    global Ticks, Tickctrl
    BGL.glClear(Blender.BGL.GL_COLOR_BUFFER_BIT)
    
    BGL.glColor3f(0.2, 0.3, 0.3)
    DrawBox(LEFT-10, TOP - 10, 300, 380)
    
    BGL.glColor3f(0.1, 0.1, 0.1)
    
    BGL.glRasterPos2i(LEFT, TOP)
    Draw.Text("DirectX Exporter", "large")
    
    BGL.glRasterPos2i(LEFT, TOP - 40)
    Draw.Text("Export", "large")
    Draw.Toggle("All", 0, LEFT, TOP - 80, 80, 20, ExportType == 0, "Export all static objects in the current scene.")
    Draw.Toggle("Selected", 1, LEFT + 100, TOP - 80, 80, 20, ExportType == 1, "Export all selected objects.")
    Draw.Toggle("Animated", 2, LEFT + 200, TOP - 80, 80, 20, ExportType == 2, "Export one mesh with one armature. Make sure that only the mesh and it's armature are selected.")
     
    BGL.glRasterPos2i(LEFT, EDATA)
    Draw.Text("Exported data", "large")
    Draw.Toggle("Normals", 3, LEFT, EDATA - 40, 80, 20, Normals, "Export vertex normals.")
    Draw.Toggle("Colors", 4, LEFT + 200, EDATA - 40, 80, 20, Colors, "Export vertex diffuse colors.")
    Draw.Toggle("Texcoords", 6, LEFT, EDATA - 70, 80, 20, TexCoords, "Export vertex texture coordinates.")   
    Draw.Toggle("Materials", 7, LEFT + 100, EDATA - 40, 80, 20, Materials, "Export materials.") 
     
    BGL.glRasterPos2i(LEFT, MISC)
    Draw.Text("Misc options", "large")
    Draw.Toggle("Swap y and z", 8, LEFT, MISC - 40, 80, 20, SwapYZ, "Right-handed to left-handed system.")
    Draw.Toggle("Apply world", 9, LEFT + 100, MISC - 40, 80, 20, UseWTrans, "Apply world transformation to exported vertices.")
    Tickctrl = Draw.Number("Speed", 10, LEFT + 200, MISC - 40, 80, 20, Ticks, 1, 100, "Animation ticks per second.")
    #Draw.Toggle("Compressed", 11, LEFT, MISC - 70, 80, 20, Compressed, "Compress the file.")
    
    Draw.Button("Export...", 100, LEFT + 40, DOIT, 80, 40, "Export data.")
    Draw.Button("Exit", 101, LEFT + 140, DOIT, 80, 40, "Exit the script.")
     
    BGL.glColor3f(0.3, 0.3, 0.3)
    BGL.glRasterPos2i(LEFT, 35)
    Draw.Text("(C) 2006 Heikki Salo", "small")
    BGL.glRasterPos2i(LEFT, 20)
    Draw.Text("http://directpython.sourceforge.net/exportx.html", "small")
Example #30
0
def draw():
    global mnu_persist_servers, mnu_mesh_formats, mnu_width, mnu_height, mnu_fullscreen, mnu_renderpath, mnu_group, mnu_filename, mnu_aa

    win_size = Window.GetAreaSize()
    left = 0
    top = win_size[1]

    button_width = 130
    button_height = 20
    label_width = 105
    pen_x = left + padding
    pen_y = win_size[1] - (button_height + padding)

    # Draw Label
    BGL.glColor3f(1.0, 1.0, 1.0)
    BGL.glRasterPos2i(pen_x, pen_y)
    text_width = Draw.Text('Persist Server')

    # Move Pen Point
    pen_x = pen_x + text_width + padding
    pen_y = pen_y - 5

    # Draw Persist Server Menu
    mnu_persist_servers = Draw.Menu(buildMenu(persist_servers),
                                    PERSIST_SERVER_CHANGED, pen_x, pen_y,
                                    button_width, button_height,
                                    persist_server, "Persist Server to use")

    # Move Pen Point
    pen_x = left + padding
    pen_y = pen_y - button_height - 5
    button_width = 180
    BGL.glColor3f(1.0, 1.0, 1.0)
    BGL.glRasterPos2i(pen_x, pen_y)
    Draw.Text('Mesh Format')

    # Move Pen Point
    pen_x = pen_x + text_width + padding
    pen_y = pen_y - 5
    button_width = 80

    # Draw Mesh Format Menu
    mnu_mesh_formats = Draw.Menu(buildMenu(mesh_formats), MESH_FORMAT_CHANGED,
                                 pen_x, pen_y, button_width, button_height,
                                 mesh_format,
                                 "Mesh Format to use(ASCII/Binary)")

    # Move Pen Point
    pen_x = left + padding
    pen_y = pen_y - button_height - 5
    button_width = 180
    BGL.glColor3f(1.0, 1.0, 1.0)
    BGL.glRasterPos2i(pen_x, pen_y)
    text_width = Draw.Text('Preview Window')

    # Move Pen Point
    pen_x = pen_x + text_width + padding
    pen_y = pen_y - 5
    button_width = 100

    mnu_width = Draw.Number("Width", WIDTH_CHANGED, pen_x, pen_y, button_width,
                            button_height, window_width, 32, 2048,
                            "Preview Window Width")

    # Move Pen Point
    pen_x = pen_x + button_width + padding

    mnu_height = Draw.Number("Height", HEIGHT_CHANGED, pen_x, pen_y,
                             button_width, button_height, window_height, 32,
                             2048, "Preview Window Height")

    # Move Pen Point
    pen_x = left + padding
    pen_y = pen_y - button_height - 5
    BGL.glColor3f(1.0, 1.0, 1.0)
    BGL.glRasterPos2i(pen_x, pen_y)
    text_width = Draw.Text('Preview Fullscreen')
    button_width = 20

    # Move Pen Point
    pen_x = pen_x + text_width + padding
    pen_y = pen_y - 5

    mnu_fullscreen = Draw.Toggle("X", FULLSCREEN_CHANGED, pen_x, pen_y,
                                 button_width, button_height, fullscreen,
                                 "Preview Fullscreen")

    # Move Pen Point
    pen_x = pen_x + button_width + padding
    pen_y = pen_y + 5
    button_width = 180
    BGL.glColor3f(1.0, 1.0, 1.0)
    BGL.glRasterPos2i(pen_x, pen_y)
    Draw.Text('Antialias Samples')

    # Move Pen Point
    pen_x = pen_x + text_width + padding
    pen_y = pen_y - 5
    button_width = 40

    # Draw Mesh Format Menu
    mnu_aa = Draw.Menu(buildMenu(aasamples), AA_CHANGED, pen_x, pen_y,
                       button_width, button_height, aa, "Antialias Samples")

    # Move Pen Point
    pen_x = left + padding
    pen_y = pen_y - button_height - 5
    button_width = 180
    BGL.glColor3f(1.0, 1.0, 1.0)
    BGL.glRasterPos2i(pen_x, pen_y)
    text_width = Draw.Text('Export Group / filename')

    # Move Pen Point
    pen_x = pen_x + text_width + padding
    pen_y = pen_y - 5
    button_width = 80

    mnu_group = Draw.String("", GROUP_CHANGED, pen_x, pen_y, button_width,
                            button_height, group, 255, "Export Group")

    # Move Pen Point
    pen_x = pen_x + button_width + padding

    mnu_filename = Draw.String("", FILENAME_CHANGED, pen_x, pen_y,
                               button_width, button_height, filename, 255,
                               "Export Filename")

    # Move Pen Point
    pen_x = pen_x + text_width + padding
    pen_y = pen_y - 5
    button_width = 100

    # Move Pen Point
    pen_x = left + padding
    pen_y = pen_y - button_height - 5
    BGL.glColor3f(1.0, 1.0, 1.0)
    BGL.glRasterPos2i(pen_x, pen_y)
    Draw.Text('Preview Renderpath')

    # Move Pen Point
    pen_x = pen_x + text_width + padding
    pen_y = pen_y - 5
    button_width = 60

    mnu_renderpath = Draw.Menu(buildMenu(renderpaths), RENDERPATH_CHANGED,
                               pen_x, pen_y, button_width, button_height,
                               renderpath, "Renderpath to use for preview")

    # Move Pen Point
    pen_x = left + padding
    pen_y = pen_y - button_height - 5
    button_width = 80

    Draw.PushButton("Close", CANCEL_CLICKED, pen_x, pen_y, button_width,
                    button_height, "Close Exporter")

    pen_x = pen_x + button_width + padding
    Draw.PushButton("Export", OK_CLICKED, pen_x, pen_y, button_width,
                    button_height, "Export Scene")
Example #31
0
def draw():
	global mnu_persist_servers, mnu_mesh_formats, mnu_width, mnu_height, mnu_fullscreen, mnu_renderpath, mnu_group, mnu_filename, mnu_aa
	
	win_size = Window.GetAreaSize()
	left = 0
	top = win_size[1]
	
	button_width = 130
	button_height = 20
	label_width = 105
	pen_x = left + padding
	pen_y = win_size[1] - (button_height + padding)
		
	# Draw Label
	BGL.glColor3f(1.0, 1.0, 1.0)
	BGL.glRasterPos2i(pen_x, pen_y)
	text_width = Draw.Text('Persist Server')
	
	# Move Pen Point
	pen_x = pen_x + text_width + padding
	pen_y = pen_y - 5
	
	# Draw Persist Server Menu
	mnu_persist_servers = Draw.Menu(buildMenu(persist_servers), PERSIST_SERVER_CHANGED, pen_x, pen_y, button_width, button_height, persist_server, "Persist Server to use")
	
	# Move Pen Point
	pen_x = left + padding
	pen_y = pen_y - button_height - 5
	button_width = 180
	BGL.glColor3f(1.0, 1.0, 1.0)
	BGL.glRasterPos2i(pen_x, pen_y)
	Draw.Text('Mesh Format')
	
	# Move Pen Point
	pen_x = pen_x + text_width + padding
	pen_y = pen_y - 5
	button_width = 80
	
	# Draw Mesh Format Menu
	mnu_mesh_formats = Draw.Menu(buildMenu(mesh_formats), MESH_FORMAT_CHANGED, pen_x, pen_y, button_width, button_height, mesh_format, "Mesh Format to use(ASCII/Binary)")
	
	# Move Pen Point
	pen_x = left + padding
	pen_y = pen_y - button_height - 5
	button_width = 180
	BGL.glColor3f(1.0, 1.0, 1.0)
	BGL.glRasterPos2i(pen_x, pen_y)
	text_width = Draw.Text('Preview Window')
	
	# Move Pen Point
	pen_x = pen_x + text_width + padding
	pen_y = pen_y - 5
	button_width = 100
	
	mnu_width = Draw.Number("Width", WIDTH_CHANGED, pen_x, pen_y, button_width, button_height, window_width, 32, 2048, "Preview Window Width")
	
	# Move Pen Point
	pen_x = pen_x + button_width + padding
	
	mnu_height = Draw.Number("Height", HEIGHT_CHANGED, pen_x, pen_y, button_width, button_height, window_height, 32, 2048, "Preview Window Height")
	
	# Move Pen Point
	pen_x = left + padding
	pen_y = pen_y - button_height - 5
	BGL.glColor3f(1.0, 1.0, 1.0)
	BGL.glRasterPos2i(pen_x, pen_y)
	text_width = Draw.Text('Preview Fullscreen')
	button_width = 20
	
	# Move Pen Point
	pen_x = pen_x + text_width + padding
	pen_y = pen_y - 5
	
	mnu_fullscreen = Draw.Toggle("X", FULLSCREEN_CHANGED, pen_x, pen_y, button_width, button_height, fullscreen, "Preview Fullscreen")
	
	# Move Pen Point
	pen_x = pen_x + button_width + padding
	pen_y = pen_y + 5
	button_width = 180
	BGL.glColor3f(1.0, 1.0, 1.0)
	BGL.glRasterPos2i(pen_x, pen_y)
	Draw.Text('Antialias Samples')
	
	# Move Pen Point
	pen_x = pen_x + text_width + padding
	pen_y = pen_y - 5
	button_width = 40
	
	# Draw Mesh Format Menu
	mnu_aa = Draw.Menu(buildMenu(aasamples), AA_CHANGED, pen_x, pen_y, button_width, button_height, aa, "Antialias Samples")
	
	# Move Pen Point
	pen_x = left + padding
	pen_y = pen_y - button_height - 5
	button_width = 180
	BGL.glColor3f(1.0, 1.0, 1.0)
	BGL.glRasterPos2i(pen_x, pen_y)
	text_width = Draw.Text('Export Group / filename')
	
	# Move Pen Point
	pen_x = pen_x + text_width + padding
	pen_y = pen_y - 5
	button_width = 80
	
	mnu_group = Draw.String("", GROUP_CHANGED, pen_x, pen_y, button_width, button_height, group, 255, "Export Group")
	
	# Move Pen Point
	pen_x = pen_x + button_width + padding
	
	mnu_filename = Draw.String("", FILENAME_CHANGED, pen_x, pen_y, button_width, button_height, filename, 255, "Export Filename")
	
	# Move Pen Point
	pen_x = pen_x + text_width + padding
	pen_y = pen_y - 5
	button_width = 100
	
	# Move Pen Point
	pen_x = left + padding
	pen_y = pen_y - button_height - 5
	BGL.glColor3f(1.0, 1.0, 1.0)
	BGL.glRasterPos2i(pen_x, pen_y)
	Draw.Text('Preview Renderpath')
	
	# Move Pen Point
	pen_x = pen_x + text_width + padding
	pen_y = pen_y - 5
	button_width = 60
	
	mnu_renderpath = Draw.Menu(buildMenu(renderpaths), RENDERPATH_CHANGED, pen_x, pen_y, button_width, button_height, renderpath, "Renderpath to use for preview")
	
	# Move Pen Point
	pen_x = left + padding
	pen_y = pen_y - button_height - 5
	button_width = 80
	
	Draw.PushButton("Close", CANCEL_CLICKED, pen_x, pen_y, button_width, button_height, "Close Exporter")
	
	pen_x = pen_x + button_width + padding
	Draw.PushButton("Export", OK_CLICKED, pen_x, pen_y, button_width, button_height, "Export Scene")
Example #32
0
def gui():  # drawing the screen

    global SCREEN, START_SCREEN, CONFIG_SCREEN, KEYMENUS, LABELS
    global BEVT_KEYMENU, BUT_KEYMENU, CFGKEY
    global BUT_TYPES, SCROLL_DOWN, VARS_NUM

    WIDTH, HEIGHT = Window.GetAreaSize()

    theme = Theme.Get()[0]
    tui = theme.get('ui')
    ttxt = theme.get('text')

    COL_BG = float_colors(ttxt.back)
    COL_TXT = ttxt.text
    COL_TXTHI = ttxt.text_hi

    BGL.glClearColor(COL_BG[0], COL_BG[1], COL_BG[2], COL_BG[3])
    BGL.glClear(BGL.GL_COLOR_BUFFER_BIT)
    BGL.glColor3ub(COL_TXT[0], COL_TXT[1], COL_TXT[2])

    if SCREEN == START_SCREEN:
        x = 10
        y = 10
        h = 20
        w = 90
        BGL.glRasterPos2i(x, y)
        Draw.Text(
            'Select a configuration key to access it.  Press Q or ESC to leave.'
        )
        km_len = len(KEYMENUS)
        km_columns = (WIDTH - x) / w
        if km_columns == 0: km_rows = km_len
        else:
            km_rows = km_len / km_columns
            if (km_len % km_columns): km_rows += 1
        if km_rows == 0: km_rows = 1
        ystart = y + 2 * h * km_rows
        if ystart > (HEIGHT - 70): ystart = HEIGHT - 70
        y = ystart
        column = 1
        for i, km in enumerate(KEYMENUS):
            column += 1
            BGL.glRasterPos2i(x + 2, y + h + 5)
            Draw.Text(LABELS[i])
            BUT_KEYMENU[i] = Draw.Menu(
                km, BEVT_KEYMENU[i], x, y, w - 10, h, 0,
                'Choose a key to access its configuration data')
            if column > km_columns:
                column = 1
                y -= 2 * h
                if y < 35: break
                x = 10
            else:
                x += w
        x = 10
        y = 50 + ystart
        BGL.glColor3ub(COL_TXTHI[0], COL_TXTHI[1], COL_TXTHI[2])
        BGL.glRasterPos2i(x, y)
        Draw.Text('Scripts Configuration Editor')
        Draw.PushButton('help', BEVT_HELP, x, 22, 45, 16,
                        'View help information about this script (hotkey: H)')

    elif SCREEN == CONFIG_SCREEN:
        x = y = 10
        h = 18
        data = CFGKEY.sorteddata
        tips = CFGKEY.tips
        fromdisk = CFGKEY.fromdisk
        limits = CFGKEY.limits
        VARS_NUM = 0
        for k in data.keys():
            VARS_NUM += len(data[k])
        lines = VARS_NUM + 5  # to account for header and footer
        y = lines * h
        if y > HEIGHT - 20: y = HEIGHT - 20
        BGL.glColor3ub(COL_TXTHI[0], COL_TXTHI[1], COL_TXTHI[2])
        BGL.glRasterPos2i(x, y)
        Draw.Text('Scripts Configuration Editor')
        y -= 20
        BGL.glColor3ub(COL_TXT[0], COL_TXT[1], COL_TXT[2])
        txtsize = 10
        if HEIGHT < lines * h:
            BGL.glRasterPos2i(10, 5)
            txtsize += Draw.Text('Arrow keys or mouse wheel to scroll, ')
        BGL.glRasterPos2i(txtsize, 5)
        Draw.Text('Q or ESC to return.')
        BGL.glRasterPos2i(x, y)
        Draw.Text('Key: "%s"' % CFGKEY.name)
        bh = 16
        bw = 45
        by = 16
        i = -1
        if CFGKEY.scriptname:
            i = 0
            Draw.PushButton(
                'help', BEVT_HELP, x, by, bw, bh,
                'Show documentation for the script that owns this key (hotkey: H)'
            )
        Draw.PushButton('back', BEVT_BACK, x + (1 + i) * bw, by, bw, bh,
                        'Back to config keys selection screen (hotkey: ESC)')
        Draw.PushButton('exit', BEVT_EXIT, x + (2 + i) * bw, by, bw, bh,
                        'Exit from Scripts Config Editor (hotkey: Q)')
        Draw.PushButton('revert', BEVT_CANCEL, x + (3 + i) * bw, by, bw, bh,
                        'Revert data to original values (hotkey: U)')
        Draw.PushButton('apply', BEVT_APPLY, x + (4 + i) * bw, by, bw, bh,
                        'Apply changes, if any (hotkey: ENTER)')
        delmsg = 'Delete this data key from memory'
        if fromdisk: delmsg = "%s and from disk" % delmsg
        Draw.PushButton('delete', BEVT_DEL, x + (5 + i) * bw, by, bw, bh,
                        '%s (hotkey: DELETE)' % delmsg)
        if fromdisk:
            Draw.Toggle(
                "file", BEVT_DISK, x + 3 + (6 + i) * bw, by, bw, bh,
                DISK_UPDATE,
                'Update also the file where this config key is stored')
        i = -1
        top = -1
        y -= 20
        yend = 30
        if data.has_key(bool) and y > 0:
            lst = data[bool]
            for l in lst:
                top += 1
                i += 1
                if top < SCROLL_DOWN: continue
                y -= h
                if y < yend: break
                w = 20
                tog = data[bool][i][1]
                if tips and tips.has_key(l[0]): tooltip = tips[l[0]]
                else: tooltip = "click to toggle"
                BUT_TYPES[bool][i] = Draw.Toggle("", BEVT_BOOL + i, x, y, w, h,
                                                 tog, tooltip)
                BGL.glRasterPos2i(x + w + 3, y + 5)
                Draw.Text(l[0].lower().replace('_', ' '))
            i = -1
            y -= 5
        if data.has_key(int) and y > 0:
            lst = data[int]
            for l in lst:
                w = 70
                top += 1
                i += 1
                if top < SCROLL_DOWN: continue
                y -= h
                if y < yend: break
                val = data[int][i][1]
                if limits: min, max = limits[l[0]]
                else: min, max = 0, 10
                if tips and tips.has_key(l[0]): tooltip = tips[l[0]]
                else: tooltip = "click / drag to change"
                BUT_TYPES[int][i] = Draw.Number("", BEVT_INT + i, x, y, w, h,
                                                val, min, max, tooltip)
                BGL.glRasterPos2i(x + w + 3, y + 3)
                Draw.Text(l[0].lower().replace('_', ' '))
            i = -1
            y -= 5
        if data.has_key(float) and y > 0:
            lst = data[float]
            for l in lst:
                w = 70
                top += 1
                i += 1
                if top < SCROLL_DOWN: continue
                y -= h
                if y < yend: break
                val = data[float][i][1]
                if limits: min, max = limits[l[0]]
                else: min, max = 0.0, 1.0
                if tips and tips.has_key(l[0]): tooltip = tips[l[0]]
                else: tooltip = "click and drag to change"
                BUT_TYPES[float][i] = Draw.Number("", BEVT_FLOAT + i, x, y, w,
                                                  h, val, min, max, tooltip)
                BGL.glRasterPos2i(x + w + 3, y + 3)
                Draw.Text(l[0].lower().replace('_', ' '))
            i = -1
            y -= 5
        if data.has_key(str) and y > 0:
            lst = data[str]
            for l in lst:
                top += 1
                i += 1
                if top < SCROLL_DOWN: continue
                y -= h
                if y < yend: break
                name = l[0].lower()
                is_dir = is_file = False
                if name.find('_dir', -4) > 0: is_dir = True
                elif name.find('_file', -5) > 0: is_file = True
                w = WIDTH - 20
                wbrowse = 50
                if is_dir and w > wbrowse: w -= wbrowse
                if tips and tips.has_key(l[0]): tooltip = tips[l[0]]
                else: tooltip = "click to write a new string"
                name = name.replace('_', ' ') + ': '
                if len(l[1]) > MAX_STR_LEN:
                    l[1] = l[1][:MAX_STR_LEN]
                BUT_TYPES[str][i] = Draw.String(name, BEVT_STR + i, x, y, w, h,
                                                l[1], MAX_STR_LEN, tooltip)
                if is_dir:
                    Draw.PushButton(
                        'browse', BEVT_BROWSEDIR + i, x + w + 1, y, wbrowse, h,
                        'click to open a file selector (pick any file in the desired dir)'
                    )
                elif is_file:
                    Draw.PushButton('browse', BEVT_BROWSEFILE + i, x + w + 1,
                                    y, 50, h, 'click to open a file selector')
Example #33
0
def gui(): # drawing the screen

	global SCREEN, START_SCREEN, CONFIG_SCREEN, KEYMENUS, LABELS
	global BEVT_KEYMENU, BUT_KEYMENU, CFGKEY
	global BUT_TYPES, SCROLL_DOWN, VARS_NUM

	WIDTH, HEIGHT = Window.GetAreaSize()

	theme = Theme.Get()[0]
	tui = theme.get('ui')
	ttxt = theme.get('text')

	COL_BG = float_colors(ttxt.back)
	COL_TXT = ttxt.text
	COL_TXTHI = ttxt.text_hi

	BGL.glClearColor(COL_BG[0],COL_BG[1],COL_BG[2],COL_BG[3])
	BGL.glClear(BGL.GL_COLOR_BUFFER_BIT)
	BGL.glColor3ub(COL_TXT[0],COL_TXT[1], COL_TXT[2])

	if SCREEN == START_SCREEN:
		x = 10
		y = 10
		h = 20
		w = 90
		BGL.glRasterPos2i(x, y)
		Draw.Text('Select a configuration key to access it.  Press Q or ESC to leave.')
		km_len = len(KEYMENUS)
		km_columns = (WIDTH - x) / w
		if km_columns == 0: km_rows = km_len
		else:
			km_rows = km_len / km_columns
			if (km_len % km_columns): km_rows += 1
		if km_rows == 0: km_rows = 1
		ystart = y + 2*h*km_rows
		if ystart > (HEIGHT - 70): ystart = HEIGHT - 70
		y = ystart
		column = 1
		for i, km in enumerate(KEYMENUS):
			column += 1
			BGL.glRasterPos2i(x + 2, y + h + 5)
			Draw.Text(LABELS[i])
			BUT_KEYMENU[i] = Draw.Menu(km, BEVT_KEYMENU[i],
				x, y, w - 10, h, 0, 'Choose a key to access its configuration data')
			if column > km_columns:
				column = 1
				y -= 2*h
				if y < 35: break
				x = 10
			else: x += w
		x = 10
		y = 50 + ystart
		BGL.glColor3ub(COL_TXTHI[0], COL_TXTHI[1], COL_TXTHI[2])
		BGL.glRasterPos2i(x, y)
		Draw.Text('Scripts Configuration Editor')
		Draw.PushButton('help', BEVT_HELP, x, 22, 45, 16,
			'View help information about this script (hotkey: H)')

	elif SCREEN == CONFIG_SCREEN:
		x = y = 10
		h = 18
		data = CFGKEY.sorteddata
		tips = CFGKEY.tips
		fromdisk = CFGKEY.fromdisk
		limits = CFGKEY.limits
		VARS_NUM = 0
		for k in data.keys():
			VARS_NUM += len(data[k])
		lines = VARS_NUM + 5 # to account for header and footer
		y = lines*h
		if y > HEIGHT - 20: y = HEIGHT - 20
		BGL.glColor3ub(COL_TXTHI[0],COL_TXTHI[1], COL_TXTHI[2])
		BGL.glRasterPos2i(x, y)
		Draw.Text('Scripts Configuration Editor')
		y -= 20
		BGL.glColor3ub(COL_TXT[0],COL_TXT[1], COL_TXT[2])
		txtsize = 10
		if HEIGHT < lines*h:
			BGL.glRasterPos2i(10, 5)
			txtsize += Draw.Text('Arrow keys or mouse wheel to scroll, ')
		BGL.glRasterPos2i(txtsize, 5)
		Draw.Text('Q or ESC to return.')
		BGL.glRasterPos2i(x, y)
		Draw.Text('Key: "%s"' % CFGKEY.name)
		bh = 16
		bw = 45
		by = 16
		i = -1
		if CFGKEY.scriptname:
			i = 0
			Draw.PushButton('help', BEVT_HELP, x, by, bw, bh,
				'Show documentation for the script that owns this key (hotkey: H)')
		Draw.PushButton('back', BEVT_BACK, x + (1+i)*bw, by, bw, bh,
			'Back to config keys selection screen (hotkey: ESC)')
		Draw.PushButton('exit', BEVT_EXIT, x + (2+i)*bw, by, bw, bh,
			'Exit from Scripts Config Editor (hotkey: Q)')
		Draw.PushButton('revert', BEVT_CANCEL, x + (3+i)*bw, by, bw, bh,
			'Revert data to original values (hotkey: U)')
		Draw.PushButton('apply', BEVT_APPLY, x + (4+i)*bw, by, bw, bh,
			'Apply changes, if any (hotkey: ENTER)')
		delmsg = 'Delete this data key from memory'
		if fromdisk: delmsg = "%s and from disk" % delmsg
		Draw.PushButton('delete', BEVT_DEL, x + (5+i)*bw, by, bw, bh,
			'%s (hotkey: DELETE)' % delmsg)
		if fromdisk:
			Draw.Toggle("file", BEVT_DISK, x + 3 + (6+i)*bw, by, bw, bh, DISK_UPDATE,
				'Update also the file where this config key is stored')
		i = -1
		top = -1
		y -= 20
		yend = 30
		if data.has_key(bool) and y > 0:
			lst = data[bool]
			for l in lst:
				top += 1
				i += 1
				if top < SCROLL_DOWN: continue
				y -= h
				if y < yend: break
				w = 20
				tog = data[bool][i][1]
				if tips and tips.has_key(l[0]): tooltip = tips[l[0]]
				else: tooltip = "click to toggle"
				BUT_TYPES[bool][i] = Draw.Toggle("", BEVT_BOOL + i,
					x, y, w, h, tog, tooltip)
				BGL.glRasterPos2i(x + w + 3, y + 5)
				Draw.Text(l[0].lower().replace('_', ' '))
			i = -1
			y -= 5
		if data.has_key(int) and y > 0:
			lst = data[int]
			for l in lst:
				w = 70
				top += 1
				i += 1
				if top < SCROLL_DOWN: continue
				y -= h
				if y < yend: break
				val = data[int][i][1]
				if limits: min, max = limits[l[0]]
				else: min, max = 0, 10
				if tips and tips.has_key(l[0]): tooltip = tips[l[0]]
				else: tooltip = "click / drag to change"
				BUT_TYPES[int][i] = Draw.Number("", BEVT_INT + i,
					x, y, w, h, val, min, max, tooltip)
				BGL.glRasterPos2i(x + w + 3, y + 3)
				Draw.Text(l[0].lower().replace('_', ' '))
			i = -1
			y -= 5
		if data.has_key(float) and y > 0:
			lst = data[float]
			for l in lst:
				w = 70
				top += 1
				i += 1
				if top < SCROLL_DOWN: continue
				y -= h
				if y < yend: break
				val = data[float][i][1]
				if limits: min, max = limits[l[0]]
				else: min, max = 0.0, 1.0
				if tips and tips.has_key(l[0]): tooltip = tips[l[0]]
				else: tooltip = "click and drag to change"
				BUT_TYPES[float][i] = Draw.Number("", BEVT_FLOAT + i,
					x, y, w, h, val, min, max, tooltip)
				BGL.glRasterPos2i(x + w + 3, y + 3)
				Draw.Text(l[0].lower().replace('_', ' '))
			i = -1
			y -= 5
		if data.has_key(str) and y > 0:
			lst = data[str]
			for l in lst:
				top += 1
				i += 1
				if top < SCROLL_DOWN: continue
				y -= h
				if y < yend: break
				name = l[0].lower()
				is_dir = is_file = False
				if name.find('_dir', -4) > 0:	is_dir = True
				elif name.find('_file', -5) > 0: is_file = True
				w = WIDTH - 20
				wbrowse = 50
				if is_dir and w > wbrowse: w -= wbrowse
				if tips and tips.has_key(l[0]): tooltip = tips[l[0]]
				else: tooltip = "click to write a new string"
				name = name.replace('_',' ') + ': '
				if len(l[1]) > MAX_STR_LEN:
					l[1] = l[1][:MAX_STR_LEN]
				BUT_TYPES[str][i] = Draw.String(name, BEVT_STR + i,
					x, y, w, h, l[1], MAX_STR_LEN, tooltip)
				if is_dir:
					Draw.PushButton('browse', BEVT_BROWSEDIR + i, x+w+1, y, wbrowse, h,
						'click to open a file selector (pick any file in the desired dir)')
				elif is_file:
					Draw.PushButton('browse', BEVT_BROWSEFILE + i, x + w + 1, y, 50, h,
						'click to open a file selector')
Example #34
0
def GUI():
	global GUIPARAMS, PARAMS
	
	BGL.glClearColor(*(ScreenColor + [1.0]))
	BGL.glClear(BGL.GL_COLOR_BUFFER_BIT)
	
	minx = 5
	maxx = 500
	miny = 5
	maxy = 450
	
	lineheight = 24
	buPad = 5 # Generic Button Padding, most buttons should have 24-19 (or 5) px space around them
	
	lP = 5 # Left Padding
	rP = 5 # Right Padding
	
	# Draw Background Box
	BGL.glColor3f(*BackgroundColor)
	BGL.glRecti(minx, miny, maxx, maxy)
	
	# Draw Title
	BGL.glColor3f(*TitleBG)
	BGL.glRecti(minx, maxy - (lineheight), maxx, maxy)
	BGL.glColor3f(*TitleCol)
	
	title = "2D Cutout Image Importer v" + VERSIONSTRING
	BGL.glRasterPos2i(minx + lP, maxy - 15)
	Draw.Text(title, 'large')
	
	Draw.PushButton('Exit', EXIT, maxx-50-rP, maxy - lineheight + 2, 50, 19, "Exit Script")
		
	# Path Buttons
	if GUIPARAMS['Path'].val == '':
		Draw.PushButton('Single Image', SINGLE_IMG, minx + lP, maxy - (2*lineheight), 150, 19, "Select a Single Image to Import")
		Draw.PushButton('Directory', DIRECTORY_IMG, minx + lP + 150, maxy - (2*lineheight), 150, 19, "Select a Directory of Images to Import")
		
	else:
		Draw.PushButton('Clear', CLR_PATH, minx+lP, maxy - (2*lineheight), 50, 19, "Clear Path and Change Import Options")

	GUIPARAMS['Path'] = Draw.String('Path: ', NO_EVT, minx + lP, maxy - (3*lineheight), (maxx-minx-lP-rP), 19, GUIPARAMS['Path'].val, 399, 'Path to Import From')
	if PARAMS['ImportType'] == DIR:
		GUIPARAMS['ImageExt'] = Draw.String('Image Ext: ', CHG_EXT, minx + lP, maxy - (4*lineheight), 110, 19,  GUIPARAMS['ImageExt'].val, 6, 'Image extension for batch directory importing (case insensitive)')
	GUIPARAMS['PackImage'] = Draw.Toggle('Pack', NO_EVT, maxx - rP - 50, maxy - (4*lineheight), 50, 19, GUIPARAMS['PackImage'].val, 'Pack Image(s) into .Blend File')
	
	# Geometry and Viewport Options
	BGL.glColor3f(*TextCol)
	BGL.glRecti(minx+lP, maxy - (5*lineheight), maxx-rP, maxy - (5*lineheight) + 1)
	BGL.glRasterPos2i(minx + lP, maxy-(5*lineheight) + 3)
	Draw.Text('Geometry and Display Options', 'small')
	
	GUIPARAMS['PPU'] = Draw.Slider('Pixels Per Unit: ', NO_EVT, minx + lP, maxy - (6*lineheight), (maxx-minx)/2 - lP, 19, GUIPARAMS['PPU'].val, 1, 5000, 0, 'Set the Number of Pixels Per Blender Unit to preserve Image Size Relations') 
	GUIPARAMS['VPTransp'] = Draw.Toggle('Viewport Transparency', NO_EVT, minx + lP, maxy - (8*lineheight),  (maxx-minx)/2 - lP, 2*lineheight - buPad, GUIPARAMS['VPTransp'].val, 'Display Alpha Transparency in the Viewport')

	GUIPARAMS['XOff'] = Draw.Slider('Offs X: ', NO_EVT, minx + lP + (maxx-minx)/2, maxy - (6*lineheight), (maxx-minx)/2 - lP - rP, 19, GUIPARAMS['XOff'].val, 0, 5.0, 0, 'Amount to Offset Each Imported in the X-Direction if Importing Multiple Images')
	GUIPARAMS['YOff'] = Draw.Slider('Offs Y: ', NO_EVT, minx + lP + (maxx-minx)/2, maxy - (7*lineheight), (maxx-minx)/2 - lP - rP, 19, GUIPARAMS['YOff'].val, 0, 5.0, 0, 'Amount to Offset Each Imported in the Y-Direction if Importing Multiple Images')
	GUIPARAMS['ZOff'] = Draw.Slider('Offs Z: ', NO_EVT, minx + lP + (maxx-minx)/2, maxy - (8*lineheight), (maxx-minx)/2 - lP - rP, 19, GUIPARAMS['ZOff'].val, 0, 5.0, 0, 'Amount to Offset Each Imported in the Z-Direction if Importing Multiple Images')

	# Material and Texture Options
	BGL.glColor3f(*TextCol)
	BGL.glRecti(minx+lP, maxy - (9*lineheight), maxx-rP, maxy - (9*lineheight) + 1)
	BGL.glRasterPos2i(minx + lP, maxy-(9*lineheight) + 3)
	Draw.Text('Material and Texture Options', 'small')
	
	half = (maxx-minx-lP-rP)/2
	GUIPARAMS['CopyMat'] = Draw.Toggle('Copy Existing Material', NO_EVT, minx + lP, maxy-(10*lineheight), half, 19, GUIPARAMS['CopyMat'].val, 'Copy an Existing Material')
	if GUIPARAMS['CopyMat'].val:
		menStr = compileMaterialList()
		GUIPARAMS['MatId'] = Draw.Menu(menStr, NO_EVT, minx + lP, maxy - (11*lineheight), half, 19, GUIPARAMS['MatId'].val, 'Material to Copy Settings From') 
	else:
		GUIPARAMS['MatCol'] = Draw.ColorPicker(NO_EVT, minx+lP, maxy - (13*lineheight), 40, (3*lineheight) - buPad, GUIPARAMS['MatCol'].val, 'Color of Newly Created Material')
		GUIPARAMS['Ref'] = Draw.Slider('Ref: ', NO_EVT, minx +lP+45, maxy - (11*lineheight), half-45, 19, GUIPARAMS['Ref'].val, 0.0, 1.0, 0, 'Set the Ref Value for Created Materials')
		GUIPARAMS['Spec'] = Draw.Slider('Spec: ', NO_EVT, minx +lP+45, maxy - (12*lineheight), half-45, 19, GUIPARAMS['Spec'].val, 0.0, 2.0, 0, 'Set the Spec Value for Created Materials')
		GUIPARAMS['Hard'] = Draw.Slider('Hard: ', NO_EVT, minx +lP+45, maxy - (13*lineheight), half-45, 19, GUIPARAMS['Hard'].val, 1, 500, 0, 'Set the Hardness Value for Created Materials')
		GUIPARAMS['Alpha'] = Draw.Slider('A: ', NO_EVT, minx +lP, maxy - (14*lineheight), half, 19, GUIPARAMS['Alpha'].val, 0.0, 1.0, 0, 'Set the Alpha Value for Created Materials')
		
		GUIPARAMS['ZTransp'] = Draw.Toggle('ZTransparency', NO_EVT, minx + lP, maxy - (15*lineheight), half, 19, GUIPARAMS['ZTransp'].val, 'Enable ZTransparency')
		GUIPARAMS['Shadeless'] = Draw.Toggle('Shadeless', NO_EVT, minx + lP, maxy - (16*lineheight), half, 19, GUIPARAMS['Shadeless'].val, 'Enable Shadeless')

	GUIPARAMS['TexChan'] = Draw.Number('Texture Channel: ', NO_EVT, minx + lP+ half + buPad, maxy - (10*lineheight), half-rP, 19, GUIPARAMS['TexChan'].val, 1, 10, 'Texture Channel for Image Texture')
	
	GUIPARAMS['MPTCol'] = Draw.Toggle('Color', NO_EVT, minx + lP + half + buPad, maxy - (11*lineheight), half/2, 19, GUIPARAMS['MPTCol'].val, 'Map To Color Channel')
	GUIPARAMS['MPTAlpha'] = Draw.Toggle('Alpha', NO_EVT, minx + lP + int((1.5)*half) + buPad, maxy - (11*lineheight), half/2 - rP, 19, GUIPARAMS['MPTAlpha'].val, 'Map To Alpha Channel')
	
	third = int((maxx-minx-lP-rP)/6)
	GUIPARAMS['UseAlpha'] = Draw.Toggle('Use Alpha', NO_EVT, minx + lP + half + buPad, maxy - (12*lineheight), third, 19, GUIPARAMS['UseAlpha'].val, "Use the Images' Alpha Values")
	GUIPARAMS['CalcAlpha'] = Draw.Toggle('Calc Alpha', NO_EVT, minx + lP + half + third + buPad, maxy - (12*lineheight), third, 19, GUIPARAMS['CalcAlpha'].val, "Calculate Images' Alpha Values")
	GUIPARAMS['ExtendMode'] = Draw.Toggle('Extend', NO_EVT, minx+lP+half+third+third+buPad, maxy - (12*lineheight), third-3, 19, GUIPARAMS['ExtendMode'].val, "Use Extend texture mode. If deselected, Repeat is used")
	GUIPARAMS['Seq'] = Draw.Toggle('Sequence', NO_EVT, minx + lP + half + buPad, maxy - (13*lineheight), half-rP, 19, GUIPARAMS['Seq'].val, 'Set the Image(s) to use a Sequence instead of a Still')
	
	if GUIPARAMS['Seq'].val and not PARAMS['ImportType'] == DIR:
		GUIPARAMS['AutoRefresh'] = Draw.Toggle('Auto Refresh', NO_EVT, minx + lP + half + buPad, maxy - (14*lineheight), half/2, 19, GUIPARAMS['AutoRefresh'].val, 'Use Auto Refresh')
		GUIPARAMS['Cyclic'] = Draw.Toggle('Cyclic', NO_EVT, minx + lP + half + buPad + half/2, maxy - (14*lineheight), half/2 - rP, 19, GUIPARAMS['Cyclic'].val, 'Repeat Frames Cyclically`')

		GUIPARAMS['Frames'] = Draw.Number('Frames: ', NO_EVT, minx +lP + half + buPad, maxy - (15*lineheight), half - rP, 19, GUIPARAMS['Frames'].val, 1, 30000, 'Sets the Number of Images of a Movie to Use')
		GUIPARAMS['Offs'] = Draw.Number('Offs: ', NO_EVT, minx +lP + half + buPad, maxy - (16*lineheight), half/2, 19, GUIPARAMS['Offs'].val, -30000, 30000, 'Offsets the Number of the Frame to use in the Animation')
		GUIPARAMS['StartFr'] = Draw.Number('StartFr: ', NO_EVT, minx +lP + half + buPad + half/2, maxy - (16*lineheight), half/2 - rP, 19, GUIPARAMS['StartFr'].val, 1, 30000, 'Sets the Global Starting Frame of the Movie')
	elif GUIPARAMS['Seq'].val and PARAMS['ImportType'] == DIR:
		BGL.glColor3f(*ErrCol)
		BGL.glRasterPos2i(minx + lP + half + buPad + 7, maxy-(14 * lineheight) + 5)
		Draw.Text('Sequence only available for Single Image Import', 'small')
		
	# Import Options
	BGL.glColor3f(*TextCol)
	BGL.glRecti(minx+lP, maxy - (17*lineheight), maxx-rP, maxy - (17*lineheight) + 1)
	BGL.glRasterPos2i(minx + lP, maxy-(17*lineheight) + 3)
	Draw.Text('Import', 'small')

	if GUIPARAMS['Path'].val and GUIPARAMS['ImageExt'].val or GUIPARAMS['Path'].val and PARAMS['ImportType'] == SINGLE:
		Draw.PushButton('Import', DO_SCRIPT, minx + lP, maxy - (18*lineheight), 75, 19, "Import Image(s)")
	else:
		BGL.glColor3f(*ErrCol)
		BGL.glRasterPos2i(minx+lP, maxy - (18*lineheight) + 5)
		Draw.Text('A path and image type must be specified to import images')
		
	GUIPARAMS['RedrawImp'] = Draw.Toggle('Redraw During Import', NO_EVT, maxx - rP - 150, maxy - (18*lineheight), 150, 19, GUIPARAMS['RedrawImp'].val, 'Redraw the View as Images Import')
Example #35
0
def gui(): # drawing the screen

	global SCREEN, START_SCREEN, SCRIPT_SCREEN
	global SCRIPT_INFO, AllGroups, GROUP_MENUS
	global BEVT_EMAIL, BEVT_LINK
	global BEVT_VIEWSOURCE, BEVT_EXIT, BEVT_BACK, BEVT_GMENU, BUT_GMENU, BEVT_EXEC
	global PADDING, WIN_W, WIN_H, SCROLL_DOWN, COLUMNS, FMODE

	theme = Theme.Get()[0]
	tui = theme.get('ui')
	ttxt = theme.get('text')

	COL_BG = float_colors(ttxt.back)
	COL_TXT = ttxt.text
	COL_TXTHI = ttxt.text_hi

	BGL.glClearColor(COL_BG[0],COL_BG[1],COL_BG[2],COL_BG[3])
	BGL.glClear(BGL.GL_COLOR_BUFFER_BIT)
	BGL.glColor3ub(COL_TXT[0],COL_TXT[1], COL_TXT[2])

	resize = screen_was_resized()
	if resize: fit_on_screen()

	if SCREEN == START_SCREEN:
		x = PADDING
		bw = 85
		bh = 25
		hincr = 50

		butcolumns = (WIN_W - 2*x)/ bw
		if butcolumns < 2: butcolumns = 2
		elif butcolumns > 7: butcolumns = 7

		len_gm = len(GROUP_MENUS)
		butlines = len_gm / butcolumns
		if len_gm % butcolumns: butlines += 1

		h = hincr * butlines + 20
		y = h + bh

		BGL.glColor3ub(COL_TXTHI[0],COL_TXTHI[1], COL_TXTHI[2])
		BGL.glRasterPos2i(x, y)
		Draw.Text('Scripts Help Browser')

		y -= bh

		BGL.glColor3ub(COL_TXT[0],COL_TXT[1], COL_TXT[2])

		i = 0
		j = 0
		for group_menu in GROUP_MENUS:
			BGL.glRasterPos2i(x, y)
			Draw.Text(group_menu[0]+':')
			BUT_GMENU[j] = Draw.Menu(group_menu[1], BEVT_GMENU[j],
				x, y-bh-5, bw, bh, 0,
				'Choose a script to read its help information')
			if i == butcolumns - 1:
				x = PADDING
				i = 0
				y -= hincr
			else:
				i += 1
				x += bw + 3
			j += 1

		x = PADDING
		y = 10
		BGL.glRasterPos2i(x, y)
		Draw.Text('Select script for its help.  Press Q or ESC to leave.')

	elif SCREEN == SCRIPT_SCREEN:
		if SCRIPT_INFO:

			if resize:
				SCRIPT_INFO.wrap_lines(1)
				SCROLL_DOWN = 0

			h = 18 * SCRIPT_INFO.len_content + 12 * SCRIPT_INFO.spaces
			x = PADDING
			y = WIN_H
			bw = 38
			bh = 16

			BGL.glColor3ub(COL_TXTHI[0],COL_TXTHI[1], COL_TXTHI[2])
			for line in SCRIPT_INFO.header:
				y -= 18
				BGL.glRasterPos2i(x, y)
				size = Draw.Text(line)

			for line in text_wrap('Tooltip: %s' % SCRIPT_INFO.script.tip):
				y -= 18
				BGL.glRasterPos2i(x, y)
				size = Draw.Text(line)

			i = 0
			y -= 28
			for data in SCRIPT_INFO.d['__url__']:
				Draw.PushButton('link %d' % (i + 1), BEVT_LINK[i],
					x + i*bw, y, bw, bh, data[0])
				i += 1
			y -= bh + 1

			i = 0
			for data in SCRIPT_INFO.d['__email__']:
				Draw.PushButton('email', BEVT_EMAIL[i], x + i*bw, y, bw, bh, data[0])
				i += 1
			y -= 18

			y0 = y
			BGL.glColor3ub(COL_TXT[0],COL_TXT[1], COL_TXT[2])
			for line in SCRIPT_INFO.content[SCROLL_DOWN:]:
				if line:
					line = line.replace('<br>', '')
					BGL.glRasterPos2i(x, y)
					Draw.Text(line)
					y -= 18
				else: y -= 12
				if y < PADDING + 20: # reached end, either stop or go to 2nd column
					if COLUMNS == 1: break
					elif x == PADDING: # make sure we're still in column 1
						x = 6*TEXT_WRAP + PADDING / 2
						y = y0

			x = PADDING
			Draw.PushButton('source', BEVT_VIEWSOURCE, x, 17, 45, bh,
				'View this script\'s source code in the Text Editor (hotkey: S)')
			Draw.PushButton('exit', BEVT_EXIT, x + 45, 17, 45, bh,
				'Exit from Scripts Help Browser (hotkey: Q)')
			if not FMODE: 
				Draw.PushButton('back', BEVT_BACK, x + 2*45, 17, 45, bh,
				'Back to scripts selection screen (hotkey: ESC)')
				Draw.PushButton('run script', BEVT_EXEC, x + 3*45, 17, 60, bh, 'Run this script')

			BGL.glColor3ub(COL_TXTHI[0],COL_TXTHI[1], COL_TXTHI[2])
			BGL.glRasterPos2i(x, 5)
			Draw.Text('use the arrow keys or the mouse wheel to scroll text', 'small')
Example #36
0
def gui():  # drawing the screen

    global SCREEN, START_SCREEN, SCRIPT_SCREEN
    global SCRIPT_INFO, AllGroups, GROUP_MENUS
    global BEVT_EMAIL, BEVT_LINK
    global BEVT_VIEWSOURCE, BEVT_EXIT, BEVT_BACK, BEVT_GMENU, BUT_GMENU, BEVT_EXEC
    global PADDING, WIN_W, WIN_H, SCROLL_DOWN, COLUMNS, FMODE

    theme = Theme.Get()[0]
    tui = theme.get('ui')
    ttxt = theme.get('text')

    COL_BG = float_colors(ttxt.back)
    COL_TXT = ttxt.text
    COL_TXTHI = ttxt.text_hi

    BGL.glClearColor(COL_BG[0], COL_BG[1], COL_BG[2], COL_BG[3])
    BGL.glClear(BGL.GL_COLOR_BUFFER_BIT)
    BGL.glColor3ub(COL_TXT[0], COL_TXT[1], COL_TXT[2])

    resize = screen_was_resized()
    if resize: fit_on_screen()

    if SCREEN == START_SCREEN:
        x = PADDING
        bw = 85
        bh = 25
        hincr = 50

        butcolumns = (WIN_W - 2 * x) / bw
        if butcolumns < 2: butcolumns = 2
        elif butcolumns > 7: butcolumns = 7

        len_gm = len(GROUP_MENUS)
        butlines = len_gm / butcolumns
        if len_gm % butcolumns: butlines += 1

        h = hincr * butlines + 20
        y = h + bh

        BGL.glColor3ub(COL_TXTHI[0], COL_TXTHI[1], COL_TXTHI[2])
        BGL.glRasterPos2i(x, y)
        Draw.Text('Scripts Help Browser')

        y -= bh

        BGL.glColor3ub(COL_TXT[0], COL_TXT[1], COL_TXT[2])

        i = 0
        j = 0
        for group_menu in GROUP_MENUS:
            BGL.glRasterPos2i(x, y)
            Draw.Text(group_menu[0] + ':')
            BUT_GMENU[j] = Draw.Menu(
                group_menu[1], BEVT_GMENU[j], x, y - bh - 5, bw, bh, 0,
                'Choose a script to read its help information')
            if i == butcolumns - 1:
                x = PADDING
                i = 0
                y -= hincr
            else:
                i += 1
                x += bw + 3
            j += 1

        x = PADDING
        y = 10
        BGL.glRasterPos2i(x, y)
        Draw.Text('Select script for its help.  Press Q or ESC to leave.')

    elif SCREEN == SCRIPT_SCREEN:
        if SCRIPT_INFO:

            if resize:
                SCRIPT_INFO.wrap_lines(1)
                SCROLL_DOWN = 0

            h = 18 * SCRIPT_INFO.len_content + 12 * SCRIPT_INFO.spaces
            x = PADDING
            y = WIN_H
            bw = 38
            bh = 16

            BGL.glColor3ub(COL_TXTHI[0], COL_TXTHI[1], COL_TXTHI[2])
            for line in SCRIPT_INFO.header:
                y -= 18
                BGL.glRasterPos2i(x, y)
                size = Draw.Text(line)

            for line in text_wrap('Tooltip: %s' % SCRIPT_INFO.script.tip):
                y -= 18
                BGL.glRasterPos2i(x, y)
                size = Draw.Text(line)

            i = 0
            y -= 28
            for data in SCRIPT_INFO.d['__url__']:
                Draw.PushButton('link %d' % (i + 1), BEVT_LINK[i], x + i * bw,
                                y, bw, bh, data[0])
                i += 1
            y -= bh + 1

            i = 0
            for data in SCRIPT_INFO.d['__email__']:
                Draw.PushButton('email', BEVT_EMAIL[i], x + i * bw, y, bw, bh,
                                data[0])
                i += 1
            y -= 18

            y0 = y
            BGL.glColor3ub(COL_TXT[0], COL_TXT[1], COL_TXT[2])
            for line in SCRIPT_INFO.content[SCROLL_DOWN:]:
                if line:
                    line = line.replace('<br>', '')
                    BGL.glRasterPos2i(x, y)
                    Draw.Text(line)
                    y -= 18
                else:
                    y -= 12
                if y < PADDING + 20:  # reached end, either stop or go to 2nd column
                    if COLUMNS == 1: break
                    elif x == PADDING:  # make sure we're still in column 1
                        x = 6 * TEXT_WRAP + PADDING / 2
                        y = y0

            x = PADDING
            Draw.PushButton(
                'source', BEVT_VIEWSOURCE, x, 17, 45, bh,
                'View this script\'s source code in the Text Editor (hotkey: S)'
            )
            Draw.PushButton('exit', BEVT_EXIT, x + 45, 17, 45, bh,
                            'Exit from Scripts Help Browser (hotkey: Q)')
            if not FMODE:
                Draw.PushButton(
                    'back', BEVT_BACK, x + 2 * 45, 17, 45, bh,
                    'Back to scripts selection screen (hotkey: ESC)')
                Draw.PushButton('run script', BEVT_EXEC, x + 3 * 45, 17, 60,
                                bh, 'Run this script')

            BGL.glColor3ub(COL_TXTHI[0], COL_TXTHI[1], COL_TXTHI[2])
            BGL.glRasterPos2i(x, 5)
            Draw.Text('use the arrow keys or the mouse wheel to scroll text',
                      'small')
def gui():              # function drawing in screen
 	BGL.glRasterPos2i(10, 230) # установка позиции
  	Draw.Text("coods"+" "+mystr)
Example #38
0
def gui():              # function drawing in screen
 	BGL.glRasterPos2i(10, 230) # установка позиции
  	Draw.Text("Type letters from a to z, ESC to leave.")
  	BGL.glRasterPos2i(20, 200)
  	Draw.Text(mystring)
Example #39
0
def draw():
    win_size = Window.GetAreaSize()
    left = 0
    top = win_size[1]

    button_width = 180
    button_height = 20
    label_width = 105
    pen_x = left + padding
    pen_y = win_size[1] - (button_height + padding)

    # Draw Label
    BGL.glColor3f(1.0, 1.0, 1.0)
    BGL.glRasterPos2i(pen_x, pen_y)
    text_width = Draw.Text('Nebula Home Dir')

    # Move Pen Point
    pen_x = pen_x + text_width + padding
    pen_y = pen_y - 5

    # Draw String Button
    home_dir_input = Draw.String("", HOME_DIR_CHANGED, pen_x, pen_y,
                                 button_width, button_height,
                                 config_data["home"], 255,
                                 "Nebula's Home Directory")
    pen_x = pen_x + button_width
    button_width = 20
    Draw.PushButton("...", BROWSE_HOME_CLICKED, pen_x, pen_y, button_width,
                    button_height, "Browse for Nebula Home Directory")

    # Move Pen Point
    pen_x = left + padding
    pen_y = pen_y - button_height - 5
    button_width = 180
    BGL.glColor3f(1.0, 1.0, 1.0)
    BGL.glRasterPos2i(pen_x, pen_y)
    Draw.Text('Project Dir')

    # Move Pen Point
    pen_x = pen_x + text_width + padding
    pen_y = pen_y - 5

    # Draw String Button
    proj_dir_input = Draw.String("", PROJ_DIR_CHANGED, pen_x, pen_y,
                                 button_width, button_height,
                                 config_data["proj"], 255,
                                 "Projetct Directory")
    pen_x = pen_x + button_width
    button_width = 20
    Draw.PushButton("...", BROWSE_PROJ_CLICKED, pen_x, pen_y, button_width,
                    button_height, "Browse for Project Directory")

    # Move Pen Point
    pen_x = left + padding
    pen_y = pen_y - button_height - 5
    button_width = 150
    BGL.glColor3f(1.0, 1.0, 1.0)
    BGL.glRasterPos2i(pen_x, pen_y)
    Draw.Text('Export Dir')

    # Draw String Button
    pen_x = pen_x + label_width
    pen_y = pen_y - 5
    dir_assigns["export"] = Draw.String("", ASSIGN_DIR_CHANGED, pen_x, pen_y,
                                        button_width, button_height,
                                        config_data["export"], 255,
                                        "Export Directory")
    pen_y = pen_y + 5

    for data in config_data:
        if (data != "home" and data != "export" and data != "texture_dir"
                and data != "proj"):
            # Move Pen Point
            pen_x = left + padding
            pen_y = pen_y - button_height - 5
            # Draw Label
            BGL.glColor3f(1.0, 1.0, 1.0)
            BGL.glRasterPos2i(pen_x, pen_y)
            text_width = Draw.Text(data)
            # Draw Button
            pen_x = pen_x + label_width
            pen_y = pen_y - 5
            dir_assigns[data] = Draw.String("", ASSIGN_DIR_CHANGED, pen_x,
                                            pen_y, button_width, button_height,
                                            config_data[data], 255, "Assign")
            pen_y = pen_y + 5
    # Draw OK Cancel Buttons
    button_width = 100

    pen_x = left + padding
    pen_y = pen_y - button_height - 5 - padding
    Draw.PushButton("Cancel", CANCEL_CLICKED, pen_x, pen_y, button_width,
                    button_height, "Cancel Configuration")

    pen_x = pen_x + button_width + padding
    Draw.PushButton("OK", OK_CLICKED, pen_x, pen_y, button_width,
                    button_height, "Save Configuration")
Example #40
0
def draw():
    global EVENT_gui_exit
    global EVENT_gui_instruction
    global EVENT_gui_prepare
    global EVENT_gui_export
    global EVENT_gui_nexuizPath
    global EVENT_gui_fileName
    global EVENT_Text
    global EVENT_Text_0
    global EVENT_gui_scale
    global EVENT_Text_1
    global EVENT_gui_extrudeHeight
    global EVENT_Text_2
    global EVENT_gui_extrudeDownwards
    global EVENT_Text_3
    global EVENT_gui_echo
    global EVENT_Text_4
    global EVENT_Text_5
    global EVENT_Text_6
    global EVENT_Text_7
    global EVENT_Text_8
    global EVENT_Text_9
    global EVENT_Text_10
    global EVENT_Text_11
    global EVENT_Text_12
    global EVENT_Text_13
    global EVENT_Text_14
    global EVENT_Text_15
    global EVENT_gui_version
    global EVENT_Text_16
    global EVENT_gui_exportSurf
    global EVENT_Text_17
    global EVENT_gui_textureStri
    global EVENT_name_textureInd
    global EVENT_Text_18
    global EVENT_gui_textureBtn
    global Object_gui_exit
    global Object_gui_instruction
    global Object_gui_prepare
    global Object_gui_export
    global Object_gui_nexuizPath
    global Object_gui_fileName
    global Object_Text
    global Object_Text_0
    global Object_gui_scale
    global Object_Text_1
    global Object_gui_extrudeHeight
    global Object_Text_2
    global Object_gui_extrudeDownwards
    global Object_Text_3
    global Object_gui_echo
    global Object_Text_4
    global Object_Text_5
    global Object_Text_6
    global Object_Text_7
    global Object_Text_8
    global Object_Text_9
    global Object_Text_10
    global Object_Text_11
    global Object_Text_12
    global Object_Text_13
    global Object_Text_14
    global Object_Text_15
    global Object_gui_version
    global Object_Text_16
    global Object_gui_exportSurf
    global Object_Text_17
    global Object_gui_textureStri
    global Object_name_textureInd
    global Object_Text_18
    global Object_gui_textureBtn
    
    global nexify

    BGL.glClearColor(0.500000, 0.500000, 0.500000, 0.0)
    BGL.glClear(GL_COLOR_BUFFER_BIT)

    BGL.glColor3f(0.000000, 0.000000, 0.000000)
    Object_gui_exit = Draw.Button("Exit", EVENT_gui_exit, 8, 8, 76, 44, "Exit exporter")
    BGL.glRasterPos2i(64, 560)
    Object_gui_instruction = Draw.Text("Exporter  to MAP format for Nexuiz community")
    Object_gui_prepare = Draw.Button("Prepare", EVENT_gui_prepare, 88, 8, 76, 44, "Prepares for export: checks is all meshes are convex")
    Object_gui_export = Draw.Button("Export", EVENT_gui_export, 168, 8, 76, 44, "Exports prepared scene to a MAP file")
    Object_gui_nexuizPath = Draw.String("", EVENT_gui_nexuizPath, 152, 320, 148, 20, Object_gui_nexuizPath.val, 399, "Nexuiz absolute path")
    Object_gui_fileName = Draw.String("", EVENT_gui_fileName, 152, 296, 148, 20, Object_gui_fileName.val, 399, "MAP file name")
    BGL.glRasterPos2i(16, 328)
    Object_Text = Draw.Text("Nexuiz absolute path")
    BGL.glRasterPos2i(16, 304)
    Object_Text_0 = Draw.Text("MAP file name")
    Object_gui_scale = Draw.Number("", EVENT_gui_scale, 152, 272, 76, 20, Object_gui_scale.val, 0.000000, 1024.000000, "")
    BGL.glRasterPos2i(16, 280)
    Object_Text_1 = Draw.Text("Scale factor")
    Object_gui_extrudeHeight = Draw.Number("", EVENT_gui_extrudeHeight, 152, 248, 76, 20, Object_gui_extrudeHeight.val, 0.000000, 1024.000000, "")
    BGL.glRasterPos2i(16, 256)
    Object_Text_2 = Draw.Text("Extrude height")
    Object_gui_extrudeDownwards = Draw.Toggle("downwards", EVENT_gui_extrudeDownwards, 152, 224, 76, 20, Object_gui_extrudeDownwards.val, "")
    BGL.glRasterPos2i(16, 232)
    Object_Text_3 = Draw.Text("Extrude downwards")
    Object_gui_echo = Draw.Toggle("echo", EVENT_gui_echo, 152, 200, 76, 20, Object_gui_echo.val, "")
    BGL.glRasterPos2i(16, 208)
    Object_Text_4 = Draw.Text("Console echo")
    BGL.glRasterPos2i(32, 536)
    Object_Text_5 = Draw.Text("Brief instruction:")
    BGL.glRasterPos2i(8, 504)
    Object_Text_6 = Draw.Text("Exporter currently work with meshes, lights and nurbs surfaces.")
    BGL.glRasterPos2i(368, 504)
    Object_Text_7 = Draw.Text("As far as meshes are converted into NetRadiant brushes they should be convex")
    BGL.glRasterPos2i(8, 480)
    Object_Text_8 = Draw.Text("Concave meshes are splitted into individual faces. Faces after that are extruded on \"Extrude height\" parameter (see below).")
    BGL.glRasterPos2i(8, 456)
    Object_Text_9 = Draw.Text("As far as objects in NetRadiant may have properties different then objects in Blender game logic properties are used to store such params.")
    BGL.glRasterPos2i(8, 432)
    Object_Text_10 = Draw.Text("Possible mesh params: ignore(BOOL), convex(BOOL)")
    BGL.glRasterPos2i(8, 408)
    Object_Text_11 = Draw.Text("Possible light params: sun(BOOL), has_target(BOOL), target_x, target_y, target_z(FLOAT), radius(float)")
    BGL.glRasterPos2i(8, 64)
    Object_Text_12 = Draw.Text("First press PREPARE, then press EXPORT.")
    BGL.glRasterPos2i(8, 384)
    Object_Text_13 = Draw.Text("Due to Blender doesn't understand Radiant shaders one may use texture[i](STRING) properties, to overwrite texture files with shaders(i = material index).")
    BGL.glRasterPos2i(8, 84)
    Object_Text_14 = Draw.Text("REMEMBER: textures are to be on \".../nexuiz/data/textures\" subpath!")
    BGL.glRasterPos2i(272, 24)
    Object_Text_15 = Draw.Text("Ver")
    BGL.glRasterPos2i(304, 24)
    Object_gui_version = Draw.Text( __version__ )
    BGL.glRasterPos2i(16, 176)
    Object_Text_16 = Draw.Text("Focre selected surf")
    Object_gui_exportSurf = Draw.Button("Treat selected as surf when export", EVENT_gui_exportSurf, 152, 168, 212, 20, "")
    BGL.glRasterPos2i(16, 136)
    Object_Text_17 = Draw.Text("Overwrite texture")
    Object_gui_textureStri = Draw.String("", EVENT_gui_textureStri, 192, 132, 104, 20, Object_gui_textureStri.val, 399, "")
    Object_name_textureInd = Draw.Number("", EVENT_name_textureInd, 392, 132, 60, 20, Object_name_textureInd.val, 1.000000, 128.000000, "")
    BGL.glRasterPos2i(304, 140)
    Object_Text_18 = Draw.Text("material index")
    Object_gui_textureBtn = Draw.Button("over", EVENT_gui_textureBtn, 152, 132, 32, 20, "Overwrite selected object texture with the following.")
Example #41
0
def GUI():
	global GUIPARAMS, PARAMS
	
	BGL.glClearColor(*(ScreenColor + [1.0]))
	BGL.glClear(BGL.GL_COLOR_BUFFER_BIT)
	
	minx = 5
	maxx = 500
	miny = 5
	maxy = 450
	
	lineheight = 24
	buPad = 5 # Generic Button Padding, most buttons should have 24-19 (or 5) px space around them
	
	lP = 5 # Left Padding
	rP = 5 # Right Padding
	
	# Draw Background Box
	BGL.glColor3f(*BackgroundColor)
	BGL.glRecti(minx, miny, maxx, maxy)
	
	# Draw Title
	BGL.glColor3f(*TitleBG)
	BGL.glRecti(minx, maxy - (lineheight), maxx, maxy)
	BGL.glColor3f(*TitleCol)
	
	title = "2D Cutout Image Importer v" + VERSIONSTRING
	BGL.glRasterPos2i(minx + lP, maxy - 15)
	Draw.Text(title, 'large')
	
	Draw.PushButton('Exit', EXIT, maxx-50-rP, maxy - lineheight + 2, 50, 19, "Exit Script")
		
	# Path Buttons
	if GUIPARAMS['Path'].val == '':
		Draw.PushButton('Single Image', SINGLE_IMG, minx + lP, maxy - (2*lineheight), 150, 19, "Select a Single Image to Import")
		Draw.PushButton('Directory', DIRECTORY_IMG, minx + lP + 150, maxy - (2*lineheight), 150, 19, "Select a Directory of Images to Import")
		
	else:
		Draw.PushButton('Clear', CLR_PATH, minx+lP, maxy - (2*lineheight), 50, 19, "Clear Path and Change Import Options")

	GUIPARAMS['Path'] = Draw.String('Path: ', NO_EVT, minx + lP, maxy - (3*lineheight), (maxx-minx-lP-rP), 19, GUIPARAMS['Path'].val, 399, 'Path to Import From')
	if PARAMS['ImportType'] == DIR:
		GUIPARAMS['ImageExt'] = Draw.String('Image Ext: ', CHG_EXT, minx + lP, maxy - (4*lineheight), 110, 19,  GUIPARAMS['ImageExt'].val, 6, 'Image extension for batch directory importing (case insensitive)')
	GUIPARAMS['PackImage'] = Draw.Toggle('Pack', NO_EVT, maxx - rP - 50, maxy - (4*lineheight), 50, 19, GUIPARAMS['PackImage'].val, 'Pack Image(s) into .Blend File')
	
	# Geometry and Viewport Options
	BGL.glColor3f(*TextCol)
	BGL.glRecti(minx+lP, maxy - (5*lineheight), maxx-rP, maxy - (5*lineheight) + 1)
	BGL.glRasterPos2i(minx + lP, maxy-(5*lineheight) + 3)
	Draw.Text('Geometry and Display Options', 'small')
	
	GUIPARAMS['PPU'] = Draw.Slider('Pixels Per Unit: ', NO_EVT, minx + lP, maxy - (6*lineheight), (maxx-minx)/2 - lP, 19, GUIPARAMS['PPU'].val, 1, 5000, 0, 'Set the Number of Pixels Per Blender Unit to preserve Image Size Relations') 
	GUIPARAMS['VPTransp'] = Draw.Toggle('Viewport Transparency', NO_EVT, minx + lP, maxy - (8*lineheight),  (maxx-minx)/2 - lP, 2*lineheight - buPad, GUIPARAMS['VPTransp'].val, 'Display Alpha Transparency in the Viewport')

	GUIPARAMS['XOff'] = Draw.Slider('Offs X: ', NO_EVT, minx + lP + (maxx-minx)/2, maxy - (6*lineheight), (maxx-minx)/2 - lP - rP, 19, GUIPARAMS['XOff'].val, 0, 5.0, 0, 'Amount to Offset Each Imported in the X-Direction if Importing Multiple Images')
	GUIPARAMS['YOff'] = Draw.Slider('Offs Y: ', NO_EVT, minx + lP + (maxx-minx)/2, maxy - (7*lineheight), (maxx-minx)/2 - lP - rP, 19, GUIPARAMS['YOff'].val, 0, 5.0, 0, 'Amount to Offset Each Imported in the Y-Direction if Importing Multiple Images')
	GUIPARAMS['ZOff'] = Draw.Slider('Offs Z: ', NO_EVT, minx + lP + (maxx-minx)/2, maxy - (8*lineheight), (maxx-minx)/2 - lP - rP, 19, GUIPARAMS['ZOff'].val, 0, 5.0, 0, 'Amount to Offset Each Imported in the Z-Direction if Importing Multiple Images')

	# Material and Texture Options
	BGL.glColor3f(*TextCol)
	BGL.glRecti(minx+lP, maxy - (9*lineheight), maxx-rP, maxy - (9*lineheight) + 1)
	BGL.glRasterPos2i(minx + lP, maxy-(9*lineheight) + 3)
	Draw.Text('Material and Texture Options', 'small')
	
	half = (maxx-minx-lP-rP)/2
	GUIPARAMS['CopyMat'] = Draw.Toggle('Copy Existing Material', NO_EVT, minx + lP, maxy-(10*lineheight), half, 19, GUIPARAMS['CopyMat'].val, 'Copy an Existing Material')
	if GUIPARAMS['CopyMat'].val:
		menStr = compileMaterialList()
		GUIPARAMS['MatId'] = Draw.Menu(menStr, NO_EVT, minx + lP, maxy - (11*lineheight), half, 19, GUIPARAMS['MatId'].val, 'Material to Copy Settings From') 
	else:
		GUIPARAMS['MatCol'] = Draw.ColorPicker(NO_EVT, minx+lP, maxy - (13*lineheight), 40, (3*lineheight) - buPad, GUIPARAMS['MatCol'].val, 'Color of Newly Created Material')
		GUIPARAMS['Ref'] = Draw.Slider('Ref: ', NO_EVT, minx +lP+45, maxy - (11*lineheight), half-45, 19, GUIPARAMS['Ref'].val, 0.0, 1.0, 0, 'Set the Ref Value for Created Materials')
		GUIPARAMS['Spec'] = Draw.Slider('Spec: ', NO_EVT, minx +lP+45, maxy - (12*lineheight), half-45, 19, GUIPARAMS['Spec'].val, 0.0, 2.0, 0, 'Set the Spec Value for Created Materials')
		GUIPARAMS['Hard'] = Draw.Slider('Hard: ', NO_EVT, minx +lP+45, maxy - (13*lineheight), half-45, 19, GUIPARAMS['Hard'].val, 1, 500, 0, 'Set the Hardness Value for Created Materials')
		GUIPARAMS['Alpha'] = Draw.Slider('A: ', NO_EVT, minx +lP, maxy - (14*lineheight), half, 19, GUIPARAMS['Alpha'].val, 0.0, 1.0, 0, 'Set the Alpha Value for Created Materials')
		
		GUIPARAMS['ZTransp'] = Draw.Toggle('ZTransparency', NO_EVT, minx + lP, maxy - (15*lineheight), half, 19, GUIPARAMS['ZTransp'].val, 'Enable ZTransparency')
		GUIPARAMS['Shadeless'] = Draw.Toggle('Shadeless', NO_EVT, minx + lP, maxy - (16*lineheight), half, 19, GUIPARAMS['Shadeless'].val, 'Enable Shadeless')

	GUIPARAMS['TexChan'] = Draw.Number('Texture Channel: ', NO_EVT, minx + lP+ half + buPad, maxy - (10*lineheight), half-rP, 19, GUIPARAMS['TexChan'].val, 1, 10, 'Texture Channel for Image Texture')
	
	GUIPARAMS['MPTCol'] = Draw.Toggle('Color', NO_EVT, minx + lP + half + buPad, maxy - (11*lineheight), half/2, 19, GUIPARAMS['MPTCol'].val, 'Map To Color Channel')
	GUIPARAMS['MPTAlpha'] = Draw.Toggle('Alpha', NO_EVT, minx + lP + int((1.5)*half) + buPad, maxy - (11*lineheight), half/2 - rP, 19, GUIPARAMS['MPTAlpha'].val, 'Map To Alpha Channel')
	
	third = int((maxx-minx-lP-rP)/6)
	GUIPARAMS['UseAlpha'] = Draw.Toggle('Use Alpha', NO_EVT, minx + lP + half + buPad, maxy - (12*lineheight), third, 19, GUIPARAMS['UseAlpha'].val, "Use the Images' Alpha Values")
	GUIPARAMS['CalcAlpha'] = Draw.Toggle('Calc Alpha', NO_EVT, minx + lP + half + third + buPad, maxy - (12*lineheight), third, 19, GUIPARAMS['CalcAlpha'].val, "Calculate Images' Alpha Values")
	GUIPARAMS['ExtendMode'] = Draw.Toggle('Extend', NO_EVT, minx+lP+half+third+third+buPad, maxy - (12*lineheight), third-3, 19, GUIPARAMS['ExtendMode'].val, "Use Extend texture mode. If deselected, Repeat is used")
	GUIPARAMS['Seq'] = Draw.Toggle('Sequence', NO_EVT, minx + lP + half + buPad, maxy - (13*lineheight), half-rP, 19, GUIPARAMS['Seq'].val, 'Set the Image(s) to use a Sequence instead of a Still')
	
	if GUIPARAMS['Seq'].val and not PARAMS['ImportType'] == DIR:
		GUIPARAMS['AutoRefresh'] = Draw.Toggle('Auto Refresh', NO_EVT, minx + lP + half + buPad, maxy - (14*lineheight), half/2, 19, GUIPARAMS['AutoRefresh'].val, 'Use Auto Refresh')
		GUIPARAMS['Cyclic'] = Draw.Toggle('Cyclic', NO_EVT, minx + lP + half + buPad + half/2, maxy - (14*lineheight), half/2 - rP, 19, GUIPARAMS['Cyclic'].val, 'Repeat Frames Cyclically`')

		GUIPARAMS['Frames'] = Draw.Number('Frames: ', NO_EVT, minx +lP + half + buPad, maxy - (15*lineheight), half - rP, 19, GUIPARAMS['Frames'].val, 1, 30000, 'Sets the Number of Images of a Movie to Use')
		GUIPARAMS['Offs'] = Draw.Number('Offs: ', NO_EVT, minx +lP + half + buPad, maxy - (16*lineheight), half/2, 19, GUIPARAMS['Offs'].val, -30000, 30000, 'Offsets the Number of the Frame to use in the Animation')
		GUIPARAMS['StartFr'] = Draw.Number('StartFr: ', NO_EVT, minx +lP + half + buPad + half/2, maxy - (16*lineheight), half/2 - rP, 19, GUIPARAMS['StartFr'].val, 1, 30000, 'Sets the Global Starting Frame of the Movie')
	elif GUIPARAMS['Seq'].val and PARAMS['ImportType'] == DIR:
		BGL.glColor3f(*ErrCol)
		BGL.glRasterPos2i(minx + lP + half + buPad + 7, maxy-(14 * lineheight) + 5)
		Draw.Text('Sequence only available for Single Image Import', 'small')
		
	# Import Options
	BGL.glColor3f(*TextCol)
	BGL.glRecti(minx+lP, maxy - (17*lineheight), maxx-rP, maxy - (17*lineheight) + 1)
	BGL.glRasterPos2i(minx + lP, maxy-(17*lineheight) + 3)
	Draw.Text('Import', 'small')

	if GUIPARAMS['Path'].val and GUIPARAMS['ImageExt'].val or GUIPARAMS['Path'].val and PARAMS['ImportType'] == SINGLE:
		Draw.PushButton('Import', DO_SCRIPT, minx + lP, maxy - (18*lineheight), 75, 19, "Import Image(s)")
	else:
		BGL.glColor3f(*ErrCol)
		BGL.glRasterPos2i(minx+lP, maxy - (18*lineheight) + 5)
		Draw.Text('A path and image type must be specified to import images')
		
	GUIPARAMS['RedrawImp'] = Draw.Toggle('Redraw During Import', NO_EVT, maxx - rP - 150, maxy - (18*lineheight), 150, 19, GUIPARAMS['RedrawImp'].val, 'Redraw the View as Images Import')