home *** CD-ROM | disk | FTP | other *** search
/ Planet Source Code Jumbo …e CD Visual Basic 1 to 7 / 3_2004-2005.ISO / Data / Zips / SolarPro_-18094310232004.psc / FormCreateObj.frm < prev    next >
Text File  |  2004-04-08  |  19KB  |  608 lines

  1. VERSION 5.00
  2. Object = "{BDC217C8-ED16-11CD-956C-0000C04E4C0A}#1.1#0"; "TABCTL32.OCX"
  3. Begin VB.Form FormCreateObj 
  4.    AutoRedraw      =   -1  'True
  5.    BorderStyle     =   1  'Fixed Single
  6.    Caption         =   "Create Object"
  7.    ClientHeight    =   5355
  8.    ClientLeft      =   45
  9.    ClientTop       =   435
  10.    ClientWidth     =   8415
  11.    BeginProperty Font 
  12.       Name            =   "Tahoma"
  13.       Size            =   8.25
  14.       Charset         =   178
  15.       Weight          =   400
  16.       Underline       =   0   'False
  17.       Italic          =   0   'False
  18.       Strikethrough   =   0   'False
  19.    EndProperty
  20.    LinkTopic       =   "Form1"
  21.    MaxButton       =   0   'False
  22.    MinButton       =   0   'False
  23.    ScaleHeight     =   357
  24.    ScaleMode       =   3  'Pixel
  25.    ScaleWidth      =   561
  26.    StartUpPosition =   1  'CenterOwner
  27.    Begin VB.CommandButton CommandLoadObj 
  28.       Caption         =   "Load"
  29.       Height          =   375
  30.       Left            =   1140
  31.       TabIndex        =   37
  32.       Top             =   4860
  33.       Width           =   975
  34.    End
  35.    Begin VB.CommandButton CommandSaveObj 
  36.       Caption         =   "Save"
  37.       Height          =   375
  38.       Left            =   1140
  39.       TabIndex        =   36
  40.       Top             =   4440
  41.       Width           =   975
  42.    End
  43.    Begin VB.TextBox TextNameStr 
  44.       Height          =   315
  45.       Left            =   120
  46.       TabIndex        =   34
  47.       Text            =   "UserDefined"
  48.       Top             =   3540
  49.       Width           =   1695
  50.    End
  51.    Begin VB.CheckBox CheckCalculRad 
  52.       Caption         =   "Calculate Radiation"
  53.       Height          =   255
  54.       Left            =   120
  55.       TabIndex        =   32
  56.       Top             =   4020
  57.       Value           =   1  'Checked
  58.       Width           =   1695
  59.    End
  60.    Begin VB.CommandButton CommandTransform 
  61.       Caption         =   "Transform"
  62.       Height          =   375
  63.       Left            =   60
  64.       TabIndex        =   19
  65.       Top             =   4860
  66.       Width           =   975
  67.    End
  68.    Begin VB.CommandButton CommandAddToScene 
  69.       Caption         =   "Add To Scene"
  70.       Height          =   375
  71.       Left            =   2220
  72.       TabIndex        =   18
  73.       Top             =   4440
  74.       Width           =   1275
  75.    End
  76.    Begin VB.CommandButton CommandCancel 
  77.       Cancel          =   -1  'True
  78.       Caption         =   "Cancel"
  79.       Height          =   375
  80.       Left            =   2220
  81.       TabIndex        =   17
  82.       Top             =   4860
  83.       Width           =   1275
  84.    End
  85.    Begin VB.CommandButton CommandDraw 
  86.       Caption         =   "Create"
  87.       Default         =   -1  'True
  88.       Height          =   375
  89.       Left            =   60
  90.       TabIndex        =   16
  91.       Top             =   4440
  92.       Width           =   975
  93.    End
  94.    Begin TabDlg.SSTab SSTab1 
  95.       Height          =   2895
  96.       Left            =   60
  97.       TabIndex        =   1
  98.       Top             =   120
  99.       Width           =   3435
  100.       _ExtentX        =   6059
  101.       _ExtentY        =   5106
  102.       _Version        =   393216
  103.       Style           =   1
  104.       Tabs            =   2
  105.       Tab             =   1
  106.       TabHeight       =   529
  107.       TabCaption(0)   =   "Rotate"
  108.       TabPicture(0)   =   "FormCreateObj.frx":0000
  109.       Tab(0).ControlEnabled=   0   'False
  110.       Tab(0).Control(0)=   "Label1"
  111.       Tab(0).Control(1)=   "Label2"
  112.       Tab(0).Control(2)=   "Label3"
  113.       Tab(0).Control(3)=   "Label4"
  114.       Tab(0).Control(4)=   "Label5"
  115.       Tab(0).Control(5)=   "Label6"
  116.       Tab(0).Control(6)=   "Label7"
  117.       Tab(0).Control(7)=   "TextEq"
  118.       Tab(0).Control(8)=   "TextZ1"
  119.       Tab(0).Control(9)=   "TextZ2"
  120.       Tab(0).Control(10)=   "TextNZ"
  121.       Tab(0).Control(11)=   "TextTeta1"
  122.       Tab(0).Control(12)=   "TextTeta2"
  123.       Tab(0).Control(13)=   "TextNTeta"
  124.       Tab(0).ControlCount=   14
  125.       TabCaption(1)   =   "Extrude"
  126.       TabPicture(1)   =   "FormCreateObj.frx":001C
  127.       Tab(1).ControlEnabled=   -1  'True
  128.       Tab(1).Control(0)=   "Label10"
  129.       Tab(1).Control(0).Enabled=   0   'False
  130.       Tab(1).Control(1)=   "Label12"
  131.       Tab(1).Control(1).Enabled=   0   'False
  132.       Tab(1).Control(2)=   "Label13"
  133.       Tab(1).Control(2).Enabled=   0   'False
  134.       Tab(1).Control(3)=   "Label14"
  135.       Tab(1).Control(3).Enabled=   0   'False
  136.       Tab(1).Control(4)=   "Label15"
  137.       Tab(1).Control(4).Enabled=   0   'False
  138.       Tab(1).Control(5)=   "Label16"
  139.       Tab(1).Control(5).Enabled=   0   'False
  140.       Tab(1).Control(6)=   "TextZnExtrude"
  141.       Tab(1).Control(6).Enabled=   0   'False
  142.       Tab(1).Control(7)=   "TextZlength"
  143.       Tab(1).Control(7).Enabled=   0   'False
  144.       Tab(1).Control(8)=   "TextnX"
  145.       Tab(1).Control(8).Enabled=   0   'False
  146.       Tab(1).Control(9)=   "TextX2"
  147.       Tab(1).Control(9).Enabled=   0   'False
  148.       Tab(1).Control(10)=   "TextX1"
  149.       Tab(1).Control(10).Enabled=   0   'False
  150.       Tab(1).Control(11)=   "TextEqExtrude"
  151.       Tab(1).Control(11).Enabled=   0   'False
  152.       Tab(1).ControlCount=   12
  153.       Begin VB.TextBox TextEqExtrude 
  154.          Height          =   315
  155.          Left            =   60
  156.          TabIndex        =   25
  157.          Text            =   "x^2 / 12"
  158.          Top             =   720
  159.          Width           =   3315
  160.       End
  161.       Begin VB.TextBox TextX1 
  162.          Height          =   315
  163.          Left            =   60
  164.          TabIndex        =   24
  165.          Text            =   "-15"
  166.          Top             =   1560
  167.          Width           =   975
  168.       End
  169.       Begin VB.TextBox TextX2 
  170.          Height          =   315
  171.          Left            =   1200
  172.          TabIndex        =   23
  173.          Text            =   "15"
  174.          Top             =   1560
  175.          Width           =   975
  176.       End
  177.       Begin VB.TextBox TextnX 
  178.          Height          =   315
  179.          Left            =   2340
  180.          TabIndex        =   22
  181.          Text            =   "20"
  182.          Top             =   1560
  183.          Width           =   975
  184.       End
  185.       Begin VB.TextBox TextZlength 
  186.          Height          =   315
  187.          Left            =   60
  188.          TabIndex        =   21
  189.          Text            =   "50"
  190.          Top             =   2460
  191.          Width           =   975
  192.       End
  193.       Begin VB.TextBox TextZnExtrude 
  194.          Height          =   315
  195.          Left            =   2340
  196.          TabIndex        =   20
  197.          Text            =   "2"
  198.          Top             =   2460
  199.          Width           =   975
  200.       End
  201.       Begin VB.TextBox TextNTeta 
  202.          Height          =   315
  203.          Left            =   -72660
  204.          TabIndex        =   15
  205.          Text            =   "40"
  206.          Top             =   2460
  207.          Width           =   975
  208.       End
  209.       Begin VB.TextBox TextTeta2 
  210.          Height          =   315
  211.          Left            =   -73800
  212.          TabIndex        =   13
  213.          Text            =   "6.283185"
  214.          Top             =   2460
  215.          Width           =   975
  216.       End
  217.       Begin VB.TextBox TextTeta1 
  218.          Height          =   315
  219.          Left            =   -74940
  220.          TabIndex        =   11
  221.          Text            =   "0"
  222.          Top             =   2460
  223.          Width           =   975
  224.       End
  225.       Begin VB.TextBox TextNZ 
  226.          Height          =   315
  227.          Left            =   -72660
  228.          TabIndex        =   9
  229.          Text            =   "5"
  230.          Top             =   1560
  231.          Width           =   975
  232.       End
  233.       Begin VB.TextBox TextZ2 
  234.          Height          =   315
  235.          Left            =   -73800
  236.          TabIndex        =   7
  237.          Text            =   "50"
  238.          Top             =   1560
  239.          Width           =   975
  240.       End
  241.       Begin VB.TextBox TextZ1 
  242.          Height          =   315
  243.          Left            =   -74940
  244.          TabIndex        =   5
  245.          Text            =   "0"
  246.          Top             =   1560
  247.          Width           =   975
  248.       End
  249.       Begin VB.TextBox TextEq 
  250.          Height          =   315
  251.          Left            =   -74940
  252.          TabIndex        =   2
  253.          Text            =   "z/2"
  254.          Top             =   720
  255.          Width           =   3315
  256.       End
  257.       Begin VB.Label Label16 
  258.          AutoSize        =   -1  'True
  259.          Caption         =   "Equation Of Curve: y = f (x)"
  260.          Height          =   195
  261.          Left            =   60
  262.          TabIndex        =   31
  263.          Top             =   480
  264.          Width           =   2055
  265.       End
  266.       Begin VB.Label Label15 
  267.          AutoSize        =   -1  'True
  268.          Caption         =   "x1"
  269.          Height          =   195
  270.          Left            =   60
  271.          TabIndex        =   30
  272.          Top             =   1320
  273.          Width           =   180
  274.       End
  275.       Begin VB.Label Label14 
  276.          AutoSize        =   -1  'True
  277.          Caption         =   "x2"
  278.          Height          =   195
  279.          Left            =   1200
  280.          TabIndex        =   29
  281.          Top             =   1320
  282.          Width           =   180
  283.       End
  284.       Begin VB.Label Label13 
  285.          AutoSize        =   -1  'True
  286.          Caption         =   "devision (N)"
  287.          Height          =   195
  288.          Left            =   2340
  289.          TabIndex        =   28
  290.          Top             =   1320
  291.          Width           =   855
  292.       End
  293.       Begin VB.Label Label12 
  294.          AutoSize        =   -1  'True
  295.          Caption         =   "z Length"
  296.          Height          =   195
  297.          Left            =   60
  298.          TabIndex        =   27
  299.          Top             =   2220
  300.          Width           =   615
  301.       End
  302.       Begin VB.Label Label10 
  303.          AutoSize        =   -1  'True
  304.          Caption         =   "devision (N)"
  305.          Height          =   195
  306.          Left            =   2340
  307.          TabIndex        =   26
  308.          Top             =   2220
  309.          Width           =   855
  310.       End
  311.       Begin VB.Label Label7 
  312.          AutoSize        =   -1  'True
  313.          Caption         =   "devision (N)"
  314.          Height          =   195
  315.          Left            =   -72660
  316.          TabIndex        =   14
  317.          Top             =   2220
  318.          Width           =   855
  319.       End
  320.       Begin VB.Label Label6 
  321.          AutoSize        =   -1  'True
  322.          Caption         =   "Teta2"
  323.          Height          =   195
  324.          Left            =   -73800
  325.          TabIndex        =   12
  326.          Top             =   2220
  327.          Width           =   420
  328.       End
  329.       Begin VB.Label Label5 
  330.          AutoSize        =   -1  'True
  331.          Caption         =   "Teta1"
  332.          Height          =   195
  333.          Left            =   -74940
  334.          TabIndex        =   10
  335.          Top             =   2220
  336.          Width           =   420
  337.       End
  338.       Begin VB.Label Label4 
  339.          AutoSize        =   -1  'True
  340.          Caption         =   "devision (N)"
  341.          Height          =   195
  342.          Left            =   -72660
  343.          TabIndex        =   8
  344.          Top             =   1320
  345.          Width           =   855
  346.       End
  347.       Begin VB.Label Label3 
  348.          AutoSize        =   -1  'True
  349.          Caption         =   "Upper Z"
  350.          Height          =   195
  351.          Left            =   -73800
  352.          TabIndex        =   6
  353.          Top             =   1320
  354.          Width           =   570
  355.       End
  356.       Begin VB.Label Label2 
  357.          AutoSize        =   -1  'True
  358.          Caption         =   "Lower Z"
  359.          Height          =   195
  360.          Left            =   -74940
  361.          TabIndex        =   4
  362.          Top             =   1320
  363.          Width           =   570
  364.       End
  365.       Begin VB.Label Label1 
  366.          AutoSize        =   -1  'True
  367.          Caption         =   "Equation Of Curve: R = f (Z)"
  368.          Height          =   195
  369.          Left            =   -74940
  370.          TabIndex        =   3
  371.          Top             =   480
  372.          Width           =   2070
  373.       End
  374.    End
  375.    Begin VB.PictureBox PicPrev 
  376.       Appearance      =   0  'Flat
  377.       AutoRedraw      =   -1  'True
  378.       BackColor       =   &H00965A3C&
  379.       ForeColor       =   &H80000008&
  380.       Height          =   5235
  381.       Left            =   3540
  382.       ScaleHeight     =   347
  383.       ScaleMode       =   3  'Pixel
  384.       ScaleWidth      =   319
  385.       TabIndex        =   0
  386.       Top             =   60
  387.       Width           =   4815
  388.    End
  389.    Begin VB.CheckBox CheckCauseShadow 
  390.       Caption         =   "Cause Shadow"
  391.       Height          =   255
  392.       Left            =   2160
  393.       TabIndex        =   33
  394.       Top             =   4020
  395.       Width           =   1395
  396.    End
  397.    Begin VB.Label Label8 
  398.       AutoSize        =   -1  'True
  399.       Caption         =   "Name"
  400.       Height          =   195
  401.       Left            =   120
  402.       TabIndex        =   35
  403.       Top             =   3300
  404.       Width           =   405
  405.    End
  406. End
  407. Attribute VB_Name = "FormCreateObj"
  408. Attribute VB_GlobalNameSpace = False
  409. Attribute VB_Creatable = False
  410. Attribute VB_PredeclaredId = True
  411. Attribute VB_Exposed = False
  412. Dim ViewTeta, ViewFi, ViewScale
  413.  
  414. Private Sub CommandCancel_Click()
  415.  ReleaseGDI
  416.  Me.Hide
  417. End Sub
  418.  
  419. Private Sub CommandDraw_Click()
  420. Select Case SSTab1.Tab
  421.  Case 0 'Rotate
  422.   TextEq.Text = Replace(Replace(LCase(TextEq.Text), " ", ""), "r=", "")
  423.   MakeObjByRotateCurve UDefObj, TextEq.Text, Val(TextZ1.Text), Val(TextZ2.Text), Val(TextNZ.Text), Val(TextTeta1.Text), Val(TextTeta2.Text), Val(TextNTeta.Text), 4, TextNameStr.Text, , &H999999
  424.  Case 1 'Extrude
  425.   TextEq.Text = Replace(Replace(LCase(TextEq.Text), " ", ""), "y=", "")
  426.   MakeObjByExtrude UDefObj, TextEqExtrude.Text, Val(TextX1), Val(TextX2), Val(TextnX.Text), Val(TextZlength), Val(TextZnExtrude), 4, TextNameStr.Text, , &H999999, 0
  427.  End Select
  428.  Call DrawCrObjShapes
  429.  
  430. End Sub
  431.  
  432. Sub DrawCrObjShapes()
  433.  Dim v As Vector3DType, Azy As SinCos3AngType, dr1 As Integer, VnFlesh As Page3DType
  434.  
  435.  Call FillHwndOut
  436.  
  437.  SelectQbPenBrush 15, 16
  438.  DrawObject3D UDefObj
  439.  
  440.  With UDefObj
  441.   If .NumPages > 0 Then
  442.     v = VnOfPage(.Page(0))
  443.     Azy = GetSinCosForRotation_X_To_Vector(v)
  444.     VnFlesh = MakeXFlesh(6, 2, RGB(150, 0, 0))
  445.     VnFlesh = RotatePage3D(VnFlesh, Azy)
  446.     TransferSelfPage3D VnFlesh, VectorOfPoint(.Page(0).Point(0))
  447.     'DrawLine3D Line3D(.Page(0).Point(0), TransferPoint3D(.Page(0).Point(0), v))
  448.     DrawPage3D VnFlesh, RGB(50, 0, 0)
  449.   End If
  450.  End With
  451.  
  452.  'If ShouldDrawAxises Then
  453.   SelectQbPenBrush 0, 16, 0
  454.   For i = 0 To 2
  455.    DrawPage3D FleshAxis(i), -2
  456.   Next
  457.   
  458.   SelectQbPenBrush 15, 16, 0
  459.   DrawPolyDraw3D TextXdraw
  460.   SelectQbPenBrush 7, 16, 0
  461.   DrawPolyDraw3D TextYdraw
  462.  'End If
  463.  
  464.  RefreshGDIwindow
  465.  
  466. End Sub
  467.  
  468. Private Sub CommandAddToScene_Click()
  469.  Dim c As Long
  470.  c = 0
  471.  If CheckCalculRad.Value Then c = c + 4
  472.  If CheckCauseShadow.Value Then c = c + 8
  473.  
  474.  UDefObj.ColEdge = -1
  475.  UDefObj.iCode = c
  476.  UDefObj.NameStr = TextNameStr.Text
  477.  AddObjectToScene UserScene, UDefObj
  478.  Hide
  479.  Call FormWizard.Form_Activate 'Enable UserDefined Object Check Box
  480. End Sub
  481.  
  482. Private Sub CommandLoadObj_Click()
  483.  On Error Resume Next
  484.  With MDIFormMain.CD1
  485.   .Flags = .Flags Or cdlOFNFileMustExist Or cdlOFNOverwritePrompt
  486.   .Filter = "*.Obj|*.Obj|All Files|*.*"
  487.   .ShowOpen
  488.   If Err Then Exit Sub 'cancel
  489.   LoadObjectFromFile .FileName, UDefObj
  490.  End With
  491.  Call DrawCrObjShapes
  492.  
  493. End Sub
  494.  
  495. Private Sub CommandSaveObj_Click()
  496.  On Error Resume Next
  497.  With MDIFormMain.CD1
  498.   .Flags = .Flags Or cdlOFNFileMustExist Or cdlOFNOverwritePrompt
  499.   .Filter = "*.Obj|*.Obj|All Files|*.*"
  500.   .ShowSave
  501.   If Err Then Exit Sub 'cancel
  502.   SaveObjectToFile .FileName, UDefObj
  503.  End With
  504.  
  505. End Sub
  506.  
  507. Private Sub CommandTransform_Click()
  508.  On Error Resume Next
  509.  FormTransforms.Show 1
  510.  ShouldRefreshFormGr = True
  511.  If FormTransforms.CancelPressed Then Exit Sub
  512.  ApplyTransformsToObj UDefObj
  513.  FormTransforms.SetAsDefault
  514.  Call DrawCrObjShapes
  515.  
  516. End Sub
  517.  
  518. Private Sub Form_Activate()
  519.  ReleaseGDI
  520.  With PicPrev
  521.   If gdi_BackgrFillCol < 0 Then gdi_BackgrFillCol = GetRealNearestColor(.hdc, .BackColor)
  522.   InitializeGDI PicPrev
  523.   SetViewShift2D .ScaleWidth \ 2, .ScaleHeight * 0.6
  524.   SetViewShift3D Point3D(0, 0, 0)
  525.  End With
  526.  If ViewScale = 0 Then
  527.   ViewScale = 4: ViewTeta = 45: ViewFi = 45
  528.  End If
  529.  SetViewScale3D ViewScale
  530.  SetView3D ViewTeta, ViewFi
  531.  Call DrawCrObjShapes
  532.  DoEvents
  533.  RefreshGDIwindow
  534.  
  535. End Sub
  536.  
  537. Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
  538.  ReleaseGDI
  539.  
  540. End Sub
  541.  
  542. Private Sub PicPrev_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
  543. Static xm1 As Long, ym1 As Long
  544.  
  545. Dim dx, dy
  546. Dim redraw1
  547.  
  548. If xm1 = 0 Or Button = 0 Then
  549.  xm1 = x: ym1 = y: Exit Sub
  550. End If
  551.  
  552. ' Shift: 1=Shift  , 2=Ctrl , 4=Alt
  553.  
  554. redraw1 = 0
  555.  
  556. dx = x - xm1: dy = y - ym1
  557.  
  558. If Abs(dy) > 1 Then
  559.  redraw1 = 1
  560.  ym1 = y
  561.  If Shift = vbShiftMask Then 'Shift key
  562.   SetViewShift2D 0, dy, True
  563.  ElseIf Shift = vbCtrlMask Then  'Ctrl Key
  564.   ViewScale = ViewScale - dy * 0.02
  565.   If ViewScale <= 0 Then ViewScale = 0.000001
  566.   SetViewScale3D ViewScale
  567.  ElseIf Shift = vbAltMask Then 'Alt Key
  568.   With View3DShiftOrig
  569.    '.y = .y + dx * 0.5
  570.   End With
  571.  Else
  572.   'If dy > 8 Then dy = 8
  573.   ViewFi = ViewFi - dy * 0.3
  574.   If Abs(ViewFi) > 180 Then ViewFi = ViewFi - 360 * Sgn(ViewFi)
  575.   SetView3D ViewTeta, ViewFi, False
  576.  End If
  577. End If
  578.  
  579. If Abs(dx) > 1 Then
  580.  redraw1 = 1
  581.  xm1 = x
  582.  If Shift = vbShiftMask Then  'Shift
  583.   SetViewShift2D dx, 0, True
  584.  ElseIf Shift = vbCtrlMask Then  'Ctrl
  585.   If Sgn(dx) = Sgn(dy) Then  'if both have the same effect
  586.    ViewScale = ViewScale - dx * 0.02
  587.    If ViewScale <= 0 Then ViewScale = 0.000001
  588.    SetViewScale3D ViewScale
  589.   End If
  590.  ElseIf Shift = vbAltMask Then 'Alt Key
  591.   With View3DShiftOrig
  592.    '.x = .x + dy * 0.5
  593.   End With
  594.  Else
  595.   'If dx > 8 Then dx = 8
  596.   ViewTeta = ViewTeta - dx * 0.6
  597.   If Abs(ViewTeta) > 360 Then ViewTeta = ViewTeta - 360 * Sgn(ViewTeta)
  598.   SetView3D ViewTeta, ViewFi, False
  599. End If
  600. End If
  601.  
  602. If redraw1 Then
  603.  Call DrawCrObjShapes
  604. End If
  605.  
  606. End Sub
  607.  
  608.