home *** CD-ROM | disk | FTP | other *** search
/ Using Visual Basic 5 (Platinum Edition) / vb5.iso / ACTIVEX / VIS3SPAC / DATA.9 / examples / vb / 08_2UniCurve / UniCurve.frm (.txt) next >
Encoding:
Visual Basic Form  |  1996-11-10  |  7.0 KB  |  200 lines

  1. VERSION 4.00
  2. Begin VB.Form Form1 
  3.    Caption         =   "B-Spline Curve"
  4.    ClientHeight    =   5445
  5.    ClientLeft      =   1140
  6.    ClientTop       =   1425
  7.    ClientWidth     =   6825
  8.    Height          =   5820
  9.    Left            =   1080
  10.    LinkTopic       =   "Form1"
  11.    ScaleHeight     =   5445
  12.    ScaleWidth      =   6825
  13.    Top             =   1110
  14.    Width           =   6945
  15.    Begin TgsVisual3SpaceLibCtl.V3Space V3Space1 
  16.       Height          =   5415
  17.       Left            =   0
  18.       TabIndex        =   0
  19.       Top             =   0
  20.       Width           =   6735
  21.       _Version        =   131072
  22.       _ExtentX        =   11880
  23.       _ExtentY        =   9551
  24.       _StockProps     =   0
  25.    End
  26. Attribute VB_Name = "Form1"
  27. Attribute VB_Creatable = False
  28. Attribute VB_Exposed = False
  29. Private Sub Form_Initialize()
  30.     Dim root As SoSeparator
  31.     Set root = New SoSeparator
  32.     'Create the scene graph for the spiral
  33.     Dim spiral As SoSeparator
  34.     Set spiral = New SoSeparator
  35.     Dim curveSep As SoSeparator
  36.     Set curveSep = makeCurve()
  37.     Dim lmodel As SoLightModel
  38.     Set lmodel = New SoLightModel
  39.     Dim clr As SoBaseColor
  40.     Set clr = New SoBaseColor
  41.     Call lmodel.model.setValue(0)   'SoLightModel::BASE_COLOR;
  42.     Call clr.RGB.setValue(1#, 0#, 0.1)
  43.     Call spiral.addChild(lmodel)
  44.     Call spiral.addChild(clr)
  45.     Call spiral.addChild(curveSep)
  46.     Call root.addChild(spiral)
  47.     'Create the scene graph for the floor
  48.     Dim floor As SoSeparator
  49.     Set floor = New SoSeparator
  50.     Dim xlate As SoTranslation
  51.     Set xlate = New SoTranslation
  52.     Dim rot   As SoRotation
  53.     Set rot = New SoRotation
  54.     Dim scale1 As SoScale
  55.     Set scale1 = New SoScale
  56.     Dim myInput As SoInput
  57.     Set myInput = New SoInput
  58.     Dim result As SoGroup
  59.     Set idisp = V3Space1.GetIDispatch
  60.     Set result = myInput.readAllUrl("examples\data\floorData.iv", idisp)
  61.     Call xlate.translation.setValue(-12#, -5#, -5#)
  62.     Call scale1.scaleFactor.setValue(2#, 1#, 2#)
  63.     Set vec3f = New SbVec3f
  64.     Call vec3f.setValue(0#, 1#, 0#)
  65.     Dim tRot As SbRotation
  66.     Set tRot = New SbRotation
  67.     Call tRot.setValue(vec3f, 3.14159265358979 / 2#)
  68.     Call rot.rotation.setValue(tRot)
  69.     Call floor.addChild(rot)
  70.     Call floor.addChild(xlate)
  71.     Call floor.addChild(scale1)
  72.     Call floor.addChild(result)
  73.     Call root.addChild(floor)
  74.     'Create the scene graph for the spiral's shadow
  75.     Dim shadow As SoSeparator
  76.     Set shadow = New SoSeparator
  77.     Dim shmdl  As SoLightModel
  78.     Set shmdl = New SoLightModel
  79.     Dim shmtl  As SoMaterial
  80.     Set shmtl = New SoMaterial
  81.     Dim shclr  As SoBaseColor
  82.     Set shclr = New SoBaseColor
  83.     Dim shxl As SoTranslation
  84.     Set shxl = New SoTranslation
  85.     Dim shscl  As SoScale
  86.     Set shscl = New SoScale
  87.     Call shmdl.model.setValue(0)    'SoLightModel::BASE_COLOR;
  88.     Call shclr.RGB.setValue(0.21, 0.15, 0.09)
  89.     Call shmtl.transparency.setValue(0.5)
  90.     Call shxl.translation.setValue(0#, -4.9, 0#)
  91.     Call shscl.scaleFactor.setValue(1#, 0#, 1#)
  92.     Call shadow.addChild(shmtl)
  93.     Call shadow.addChild(shmdl)
  94.     Call shadow.addChild(shclr)
  95.     Call shadow.addChild(shxl)
  96.     Call shadow.addChild(shscl)
  97.     Call shadow.addChild(curveSep)
  98.     Call root.addChild(shadow)
  99.     Call V3Space1.setSceneRoot(root)
  100.     Dim cam As Object
  101.     Set cam = V3Space1.getCurrentCamera
  102.     Call cam.position.setValue(-6#, 8#, 20#)
  103.     Call vec3f.setValue(0#, -2#, -4#)
  104.     Call cam.pointAt(vec3f)
  105.     Set root = Nothing
  106.     Set spiral = Nothing
  107.     Set curveSep = Nothing
  108.     Set lmodel = Nothing
  109.     Set clr = Nothing
  110.     Set floor = Nothing
  111.     Set xlate = Nothing
  112.     Set rot = Nothing
  113.     Set scale1 = Nothing
  114.     Set myInput = Nothing
  115.     Set result = Nothing
  116.     Set idisp = Nothing
  117.     Set vec3f = Nothing
  118.     Set tRot = Nothing
  119.     Set shadow = Nothing
  120.     Set shmdl = Nothing
  121.     Set shmtl = Nothing
  122.     Set shclr = Nothing
  123.     Set shxl = Nothing
  124.     Set shscl = Nothing
  125.     Set cam = Nothing
  126. End Sub
  127. Public Function makeCurve() As SoSeparator
  128.     Dim curveSep As SoSeparator
  129.     Set curveSep = New SoSeparator
  130.     'Set the draw style of the curve.
  131.     Dim drawStyle  As SoDrawStyle
  132.     Set drawStyle = New SoDrawStyle
  133.     Call drawStyle.lineWidth.setValue(4)
  134.     Call curveSep.addChild(drawStyle)
  135.     'Define the NURBS curve including the control points
  136.     'and a complexity.
  137.     Dim complexity As SoComplexity
  138.     Set complexity = New SoComplexity
  139.     Dim controlPts As SoCoordinate3
  140.     Set controlPts = New SoCoordinate3
  141.     Dim curve As SoNurbsCurve
  142.     Set curve = New SoNurbsCurve
  143.     Call complexity.Value.setValue(0.8)
  144.     '0   { 6.0,  0.0,  6.0},
  145.     Call controlPts.Point.set1Value(0, 6#, 0#, 6#)
  146.     '1   {-5.5,  0.5,  5.5},
  147.     Call controlPts.Point.set1Value(1, -5.5, 0.5, 5.5)
  148.     '2   {-5.0,  1.0, -5.0},
  149.     Call controlPts.Point.set1Value(2, -5#, 1#, -5#)
  150.     '3   { 4.5,  1.5, -4.5},
  151.     Call controlPts.Point.set1Value(3, 4.5, 1.5, -4.5)
  152.     '4   { 4.0,  2.0,  4.0},
  153.     Call controlPts.Point.set1Value(4, 4#, 2#, 4#)
  154.     '5   {-3.5,  2.5,  3.5},
  155.     Call controlPts.Point.set1Value(5, -3.5, 2.5, 3.5)
  156.     '6   {-3.0,  3.0, -3.0},
  157.     Call controlPts.Point.set1Value(6, -3#, 3#, -3#)
  158.     '7   { 2.5,  3.5, -2.5},
  159.     Call controlPts.Point.set1Value(7, 2.5, 3.5, -2.5)
  160.     '8   { 2.0,  4.0,  2.0},
  161.     Call controlPts.Point.set1Value(8, 2#, 4#, 2#)
  162.     '9   {-1.5,  4.5,  1.5},
  163.     Call controlPts.Point.set1Value(9, -1.5, 4.5, 1.5)
  164.     '10   {-1.0,  5.0, -1.0},
  165.     Call controlPts.Point.set1Value(10, -1#, 5#, -1#)
  166.     '11   { 0.5,  5.5, -0.5},
  167.     Call controlPts.Point.set1Value(11, 0.5, 5.5, -0.5)
  168.     '12   { 0.0,  6.0,  0.0}};
  169.     Call controlPts.Point.set1Value(12, 0#, 6#, 0#)
  170.     curve.numControlPoints.setValue (13)
  171.     'The knot vector
  172.     '0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 10, 10, 10};
  173.     Call curve.knotVector.set1Value(0, 0)
  174.     Call curve.knotVector.set1Value(1, 0)
  175.     Call curve.knotVector.set1Value(2, 0)
  176.     Call curve.knotVector.set1Value(3, 0)
  177.     Call curve.knotVector.set1Value(4, 1)
  178.     Call curve.knotVector.set1Value(5, 2)
  179.     Call curve.knotVector.set1Value(6, 3)
  180.     Call curve.knotVector.set1Value(7, 4)
  181.     Call curve.knotVector.set1Value(8, 5)
  182.     Call curve.knotVector.set1Value(9, 6)
  183.     Call curve.knotVector.set1Value(10, 7)
  184.     Call curve.knotVector.set1Value(11, 8)
  185.     Call curve.knotVector.set1Value(12, 9)
  186.     Call curve.knotVector.set1Value(13, 10)
  187.     Call curve.knotVector.set1Value(14, 10)
  188.     Call curve.knotVector.set1Value(15, 10)
  189.     Call curve.knotVector.set1Value(16, 10)
  190.     Call curveSep.addChild(complexity)
  191.     Call curveSep.addChild(controlPts)
  192.     Call curveSep.addChild(curve)
  193.     Set makeCurve = curveSep
  194.     Set curceSep = Nothing
  195.     Set drawStyle = Nothing
  196.     Set complexity = Nothing
  197.     Set controlPts = Nothing
  198.     Set curve = Nothing
  199. End Function
  200.