home *** CD-ROM | disk | FTP | other *** search
/ Maximum CD 1998 November / maximum-cd-1998-11.iso / Truespace 4 / Data / PROGRAM / Scripts / primcrea.py < prev    next >
Encoding:
Python Source  |  1998-08-27  |  3.2 KB  |  97 lines

  1. import trueSpace
  2. import string
  3.  
  4. import win32ui
  5. import win32api
  6. import dialog
  7. import win32con
  8.  
  9. def MakeDlgTemplate(title):
  10.     style = win32con.DS_MODALFRAME | win32con.WS_POPUP | win32con.WS_VISIBLE | win32con.WS_CAPTION | win32con.WS_SYSMENU | win32con.DS_SETFONT
  11.     cs = win32con.WS_CHILD | win32con.WS_VISIBLE
  12.  
  13.     # Window frame and title
  14.     dlg = [ [title, (0, 0, 210, 100), style, None, (8, "MS Sans Serif")], ]
  15.  
  16.     # Primitive type label and text box
  17.     dlg.append([130, "Primitive type: (Cube)", -1, (7, 9, 69, 9), cs | win32con.SS_LEFT])
  18.     s = cs | win32con.WS_TABSTOP | win32con.WS_BORDER 
  19.  
  20.     # Primitive properties and text boxes
  21.     dlg.append([130, "Primitive Properties:", -1, (7, 22, 69, 9), cs | win32con.SS_LEFT])
  22.     dlg.append([130, "Sections:", -1, (7, 35, 40, 9), cs | win32con.SS_LEFT])
  23.     dlg.append([130, "X size:",   -1, (7, 50, 40, 9), cs | win32con.SS_LEFT])
  24.     dlg.append([130, "Y size:",   -1, (7, 65, 40, 9), cs | win32con.SS_LEFT])
  25.     dlg.append([130, "Z size:",   -1, (7, 80, 40, 9), cs | win32con.SS_LEFT])
  26.  
  27.         # edit boxes 
  28.     s = cs | win32con.WS_TABSTOP | win32con.WS_BORDER 
  29.     dlg.append(['EDIT', None, win32ui.IDC_EDIT1, (60, 35, 60, 12), s])
  30.     dlg.append(['EDIT', None, win32ui.IDC_EDIT2, (60, 50, 60, 12), s])
  31.     dlg.append(['EDIT', None, win32ui.IDC_EDIT3, (60, 65, 60, 12), s])
  32.     dlg.append(['EDIT', None, win32ui.IDC_EDIT4, (60, 80, 60, 12), s])
  33.  
  34.     # OK/Cancel Buttons
  35.     s = cs | win32con.WS_TABSTOP 
  36.     dlg.append([128, "OK", win32con.IDOK, (150, 5, 50, 14), s | win32con.BS_DEFPUSHBUTTON])
  37.     s = win32con.BS_PUSHBUTTON | s
  38.     dlg.append([128, "Cancel", win32con.IDCANCEL, (150, 20, 50, 14), s])
  39.     return dlg
  40.  
  41. class CreateDlg(dialog.Dialog):
  42.     Cancel = 0
  43.     def __init__(self, title):
  44.         dialog.Dialog.__init__(self, MakeDlgTemplate(title) )
  45.         self.AddDDX(win32ui.IDC_EDIT1,'x')
  46.         self.AddDDX(win32ui.IDC_EDIT2,'y')
  47.         self.AddDDX(win32ui.IDC_EDIT3,'z')
  48.         self.AddDDX(win32ui.IDC_EDIT4,'w')
  49.     def OnCancel(self):
  50.         self.Cancel = 1
  51.         self._obj_.OnCancel()
  52.  
  53. #####################################################################
  54. # Create dialog and read data/properties
  55. #####################################################################
  56. def GetData(title='Primitive Creation'):
  57.     d = CreateDlg(title)
  58.     d['x'] = "1"
  59.     d['y'] = "2"
  60.     d['z'] = "2"
  61.     d['w'] = "2"
  62.     d.DoModal()
  63.     if d.Cancel:
  64.         return (None, None, None, None)
  65.     else:    
  66.         return (d['x'], d['y'], d['z'], d['w'] )
  67.  
  68. #####################################################################
  69. #Object creation routines:
  70. #####################################################################
  71. #CreateCone(longitudes, latitudes, radius, height)
  72. #CreateCube(sections, x, y, z)
  73. #CreateCylinder(longitudes, latitudes, radius1, radius2, height)
  74. #CreatePlane(xsections, ysections)
  75. #CreateSphere(longitudes, latitudes, radius)
  76. #CreateTorus(longitudes, latitudes, inner-radius)
  77. #CreateLocalLight()
  78. #CreateInfiniteLight()
  79. #CreateSpotLight()
  80. #CreateCamera ()
  81.  
  82. doc = trueSpace.GetActiveDocument()
  83.  
  84. d1,d2,d3,d4 = GetData()
  85.  
  86. if d1 == None:
  87.     print "Cancelled...\n"
  88. else:
  89.     x = string.atof(d1)
  90.     y = string.atof(d2)
  91.     z = string.atof(d3)
  92.     w = string.atof(d4)
  93.     doc.CreateCube(x, y, z, w)        # create a new primitive
  94.         doc.Draw()                # redraw scene
  95.     print "Primitive was created...\n"
  96.  
  97.