home *** CD-ROM | disk | FTP | other *** search
/ The Houseplan Collection / HRCD2005.ISO / data1.cab / Zusatz / 3DS / DATA2.Z / Iter.frm < prev    next >
Text File  |  1999-11-24  |  115KB  |  2,618 lines

  1. VERSION 5.00
  2. Object = "{6B7E6392-850A-101B-AFC0-4210102A8DA7}#1.3#0"; "Comctl32.ocx"
  3. Begin VB.Form Iteratoren 
  4.    AutoRedraw      =   -1  'True
  5.    Caption         =   "ArCon ActiveX-Demo: Ausgabe verfⁿgbarer Informationen (Auszug)"
  6.    ClientHeight    =   7590
  7.    ClientLeft      =   1140
  8.    ClientTop       =   1515
  9.    ClientWidth     =   9105
  10.    Icon            =   "Iter.frx":0000
  11.    LinkTopic       =   "Form1"
  12.    PaletteMode     =   1  'UseZOrder
  13.    ScaleHeight     =   7590
  14.    ScaleWidth      =   9105
  15.    Begin VB.OptionButton OptionMax 
  16.       Caption         =   "maximal"
  17.       Height          =   195
  18.       Left            =   7050
  19.       TabIndex        =   7
  20.       Top             =   2925
  21.       Width           =   1050
  22.    End
  23.    Begin VB.OptionButton OptionHeigh 
  24.       Caption         =   "hoch"
  25.       Height          =   195
  26.       Left            =   7050
  27.       TabIndex        =   6
  28.       Top             =   2610
  29.       Width           =   1050
  30.    End
  31.    Begin VB.OptionButton OptionMedium 
  32.       Caption         =   "mittel"
  33.       Height          =   195
  34.       Left            =   7050
  35.       TabIndex        =   5
  36.       Top             =   2310
  37.       Width           =   1050
  38.    End
  39.    Begin VB.OptionButton OptionLow 
  40.       Caption         =   "niedrig"
  41.       Height          =   195
  42.       Left            =   7050
  43.       TabIndex        =   4
  44.       Top             =   1995
  45.       Width           =   1050
  46.    End
  47.    Begin VB.CommandButton Beenden 
  48.       Caption         =   "Beenden"
  49.       Height          =   495
  50.       Left            =   6960
  51.       TabIndex        =   2
  52.       Top             =   6960
  53.       Width           =   1995
  54.    End
  55.    Begin VB.CommandButton Aktualisieren 
  56.       Caption         =   "Daten von Arcon lesen!"
  57.       Height          =   495
  58.       Left            =   6960
  59.       TabIndex        =   1
  60.       Top             =   6060
  61.       Width           =   1995
  62.    End
  63.    Begin VB.Frame Frame1 
  64.       Caption         =   "Informationstiefe"
  65.       Height          =   1500
  66.       Left            =   6930
  67.       TabIndex        =   8
  68.       Top             =   1740
  69.       Width           =   2115
  70.    End
  71.    Begin ComctlLib.TreeView TreeView 
  72.       Height          =   7380
  73.       Left            =   75
  74.       TabIndex        =   0
  75.       Top             =   105
  76.       Width           =   6735
  77.       _ExtentX        =   11880
  78.       _ExtentY        =   13018
  79.       _Version        =   327682
  80.       Indentation     =   176
  81.       Style           =   7
  82.       Appearance      =   1
  83.    End
  84.    Begin VB.Frame Frame2 
  85.       Caption         =   "Ausgabe von"
  86.       Height          =   1575
  87.       Left            =   6915
  88.       TabIndex        =   9
  89.       Top             =   75
  90.       Width           =   2145
  91.       Begin VB.CheckBox UseObjects 
  92.          Caption         =   "M÷blierung/Objekten"
  93.          Height          =   315
  94.          Left            =   60
  95.          TabIndex        =   13
  96.          Top             =   1155
  97.          Width           =   1980
  98.       End
  99.       Begin VB.CheckBox UseDefaults 
  100.          Caption         =   "Standardeinstellungen"
  101.          Height          =   195
  102.          Left            =   60
  103.          TabIndex        =   12
  104.          Top             =   870
  105.          Width           =   1980
  106.       End
  107.       Begin VB.CheckBox UseProps 
  108.          Caption         =   "Eigenschaften"
  109.          Height          =   195
  110.          Left            =   45
  111.          TabIndex        =   11
  112.          Top             =   585
  113.          Width           =   1980
  114.       End
  115.       Begin VB.CheckBox UseLists 
  116.          Caption         =   "Auflistungen"
  117.          Height          =   195
  118.          Left            =   60
  119.          TabIndex        =   10
  120.          Top             =   300
  121.          Width           =   1980
  122.       End
  123.    End
  124.    Begin VB.Label Label1 
  125.       Caption         =   "Daten werden gelesen ..."
  126.       BeginProperty Font 
  127.          Name            =   "Times New Roman"
  128.          Size            =   24
  129.          Charset         =   0
  130.          Weight          =   400
  131.          Underline       =   0   'False
  132.          Italic          =   0   'False
  133.          Strikethrough   =   0   'False
  134.       EndProperty
  135.       ForeColor       =   &H000000FF&
  136.       Height          =   1455
  137.       Left            =   1080
  138.       TabIndex        =   3
  139.       Top             =   2160
  140.       Width           =   5775
  141.    End
  142. End
  143. Attribute VB_Name = "Iteratoren"
  144. Attribute VB_GlobalNameSpace = False
  145. Attribute VB_Creatable = False
  146. Attribute VB_PredeclaredId = True
  147. Attribute VB_Exposed = False
  148. ' MS Visual Basic Demo-Programm zur Demonstration der ActiveX-FΣhigkeit
  149. ' von ArCon(+).
  150. '
  151. ' Der abgebildete Code dient lediglich Demonstrationszwecken.
  152. ' Es wird keinerlei Garantie fⁿr die Richtigkeit und/oder
  153. ' FunktionsfΣhigkeit ⁿbernommen. Bei Fragen wenden Sie sich bitte an
  154. '
  155. '    mb-Programme
  156. '    Software im Bauwesen GmbH
  157. '    Hermannstra▀e 1
  158. '    D-31785 Hameln
  159. '    e-mail:  arcon@mb-software.de
  160. '    Internet http://www.mb-software.de
  161.  
  162. Option Explicit
  163.  
  164. Dim AktIndex As Integer
  165. Dim MaxRekLevel As Integer
  166. Dim RekLevel As Integer
  167.  
  168. Dim ArConEXE As ArCon.ArCon
  169.  
  170. Private Sub AddPropToTree(ByVal s As String, ByVal Parent As Integer)
  171.    TreeView.Nodes.Add "S" & CStr(Parent), tvwChild, , s
  172. End Sub
  173.  
  174. Private Sub AddChildToTree(ByVal s As String, ByVal Parent As Integer, ByVal Child As Integer)
  175.    TreeView.Nodes.Add "S" & CStr(Parent), tvwChild, "S" & CStr(Child), s
  176.    AktIndex = AktIndex + 1
  177. End Sub
  178.  
  179. Private Sub OnePersonToTree(s As String, pers As ArCon.Person, ParentIndex As Integer)
  180.   Dim theindex As Integer
  181.   If RekLevel > MaxRekLevel Then Exit Sub
  182.   RekLevel = RekLevel + 1
  183.   If Not pers Is Nothing Then
  184.     theindex = AktIndex
  185.     AddChildToTree s, ParentIndex, AktIndex
  186.  
  187.     AddPropToTree "Name = " & pers.Name, theindex
  188.     AddPropToTree "Titel = " & pers.Title, theindex
  189.     AddPropToTree "Adresse 1 = " & pers.Address1, theindex
  190.     AddPropToTree "Adresse 2 = " & pers.Address2, theindex
  191.     AddPropToTree "Adresse 3 = " & pers.Address3, theindex
  192.     AddPropToTree "Zusatz 1 = " & pers.Info1, theindex
  193.     AddPropToTree "Zusatz 2 = " & pers.Info2, theindex
  194.     AddPropToTree "Zusatz 3 = " & pers.Info3, theindex
  195.     AddPropToTree "Bemerkung = " & pers.Remark, theindex
  196.   End If
  197.   RekLevel = RekLevel - 1
  198. End Sub
  199.  
  200. Private Sub OnePolWithHolesToTree(s As String, contur As ArCon.Poly2DWithHoles, ParentIndex As Integer)
  201.   Dim theindex As Integer
  202.   If RekLevel > MaxRekLevel Then Exit Sub
  203.   RekLevel = RekLevel + 1
  204.   If Not contur Is Nothing Then
  205.     theindex = AktIndex
  206.     AddChildToTree s, ParentIndex, AktIndex
  207.     Dim i As Integer
  208.     i = 1
  209.     AllPointsToTree "Aussenkontur", contur.contur, theindex, True
  210.     Dim pol As ArCon.Point2DCollection
  211.     For Each pol In contur
  212.         AllPointsToTree "Loch " & i, pol, theindex, True
  213.         i = i + 1
  214.     Next
  215.   End If
  216.   RekLevel = RekLevel - 1
  217. End Sub
  218.  
  219. Private Sub OneShapeToTree(s As String, shape As ArCon.Poly2DWithHolesCollection, ParentIndex As Integer)
  220.   Dim theindex As Integer
  221.   If RekLevel > MaxRekLevel Then Exit Sub
  222.   RekLevel = RekLevel + 1
  223.   If Not shape Is Nothing Then
  224.     theindex = AktIndex
  225.     AddChildToTree s, ParentIndex, AktIndex
  226.     Dim i As Integer
  227.     i = 1
  228.     Dim pol As ArCon.Poly2DWithHoles
  229.     For Each pol In shape
  230.         OnePolWithHolesToTree "Kontur " & i, pol, theindex
  231.         i = i + 1
  232.     Next
  233.   End If
  234.   RekLevel = RekLevel - 1
  235. End Sub
  236.  
  237. Private Sub OnePlatformToTree(s As String, pfm As ArCon.Platform, ParentIndex As Integer)
  238.   Dim theindex As Integer
  239.   If RekLevel > MaxRekLevel Then Exit Sub
  240.   RekLevel = RekLevel + 1
  241.   If Not pfm Is Nothing Then
  242.     theindex = AktIndex
  243.     AddChildToTree s, ParentIndex, AktIndex
  244.  
  245.     AddPropToTree "Randfarbe = " & pfm.BorderColor, theindex
  246.     AddPropToTree "Art der 2D Randdarstellung = " & pfm.BorderStyle, theindex
  247.     AddPropToTree "Winkel der SeitenschrΣgen = " & pfm.FaceAngle, theindex
  248.     AddPropToTree "Musterfarbe in 2D = " & pfm.FillColor, theindex
  249.     AddPropToTree "Schraffur = " & pfm.FillStyle, theindex
  250.     AddPropToTree "H÷he = " & pfm.Height, theindex
  251.     AddPropToTree "H÷he ⁿber dem Fu▀boden = " & pfm.HeightAboveGround, theindex
  252.     AddPropToTree "Art der RandschrΣge = " & pfm.Inclination, theindex
  253.     AddPropToTree "Auch L÷cher schrΣge = " & pfm.InclineHoles, theindex
  254.     AddPropToTree "Faktor fⁿr die WandschrΣge = " & pfm.ScaleFactor, theindex
  255.     
  256.     Dim minX As Single, minY As Single, maxX As Single, maxY As Single
  257.     pfm.GetBoundingBox minX, minY, maxX, maxY
  258.     AddPropToTree "Bounding-Box = (" & minX & "/" & minY & ") - (" & maxX & "/" & maxY & ")", theindex
  259.     
  260.     OneShapeToTree "Polygon(e) des Podestes", pfm.GetShape(0.1, 0.2), theindex
  261.     
  262.     OneStoryToTree "Stockwerk, in dem das Podest steht", pfm.story, theindex, False
  263.     OneTextureToTree "Bodentextur", pfm.texture(AC_SHAPETEX_BOTTOM), theindex, True
  264.     OneTextureToTree "Textur des inneren Randes", pfm.texture(AC_SHAPETEX_INNER_FACE), theindex, True
  265.     OneTextureToTree "Textur des Σu▀eren Randes", pfm.texture(AC_SHAPETEX_OUTER_FACE), theindex, True
  266.     OneTextureToTree "Deckeltextur", pfm.texture(AC_SHAPETEX_TOP), theindex, True
  267.   End If
  268.   RekLevel = RekLevel - 1
  269. End Sub
  270.  
  271. Private Sub TheProjectToTree(s As String, project As Object, ParentIndex As Integer, recurse As Boolean)
  272.   Dim theindex As Integer
  273.   If RekLevel > MaxRekLevel Then Exit Sub
  274.   RekLevel = RekLevel + 1
  275.   If Not project Is Nothing Then
  276.     theindex = AktIndex
  277.     AddChildToTree s, ParentIndex, AktIndex
  278.  
  279.     AddPropToTree "Hintergrundfarbe bei Nachtsicht = " & project.BackColorNight, theindex
  280.     AddPropToTree "Hintergrundfarbe bei Tag/zeitabhΣngiger Sicht = " & project.BackColorDay, theindex
  281.     AddPropToTree "Ma▀einheit (m, cm, yard...) = " & project.Unit, theindex
  282.     AddPropToTree "Ma▀stab = " & project.Scale, theindex
  283.     AddPropToTree "ausgewΣhlte Papiergr÷▀e = " & project.PaperSize, theindex
  284.     AddPropToTree "Welche Druckerpapiergr÷▀e, wenn ausgewΣhle Papiergr÷▀e 'vom Drucker vorgegeben' = " & project.PaperSizePrinter, theindex
  285.     AddPropToTree "Name des Papierformats = " & project.PaperSizeName, theindex
  286.     AddPropToTree "Papierbreite = " & project.PaperWidth, theindex
  287.     AddPropToTree "Papierh÷he = " & project.PaperHeight, theindex
  288.     AddPropToTree "Name des Projektes inkl. Pfad = " & project.Name, theindex
  289.     AddPropToTree "Dateiname ohne Endung und Pfad bzw 'Neues Projekt' = " & project.ShortName, theindex
  290.     AddPropToTree "Ursprung des Koordinatensystems (x/y/z) = (" & project.OriginX & "/" & project.OriginY & "/" & project.OriginZ & ")", theindex
  291.     AddPropToTree "Drehung des Koordinatensystems = " & project.WorldRotation * 180 / 3.1415926 & " Grad", theindex
  292.     
  293.     OnePersonToTree "Projektadresse", ArConEXE.GetPerson(AC_PERSON_PROJEKT, False), theindex
  294.     OnePersonToTree "Bauher/in", ArConEXE.GetPerson(AC_PERSON_BAUFRAU, False), theindex
  295.     OnePersonToTree "Architek/in", ArConEXE.GetPerson(AC_PERSON_ARCHITEKTIN, False), theindex
  296.  
  297.   Else
  298.     AddPropToTree s & " ist NOTHING !!!", ParentIndex
  299.   End If
  300.   RekLevel = RekLevel - 1
  301. End Sub
  302.  
  303. Private Sub OneBuildingToTree(s As String, building As Object, ParentIndex As Integer, recurse As Boolean)
  304.   Dim theindex As Integer
  305.   If RekLevel > MaxRekLevel Then Exit Sub
  306.   RekLevel = RekLevel + 1
  307.   If Not building Is Nothing Then
  308.     theindex = AktIndex
  309.     AddChildToTree s, ParentIndex, AktIndex
  310.  
  311.     AllStoriesToTree "Liste der Geschosse des GebΣudes", building, theindex, recurse
  312.     AllDwellingsToTree "Liste der Wohnungen", building.Dwellings, theindex, recurse
  313.  
  314.     AddPropToTree "Brutto-Rauminhalt = " & building.Volume, theindex
  315.     AddPropToTree "FlΣcheninhalt = " & building.area, theindex
  316.     AddPropToTree "Name = " & building.Name, theindex
  317.     AddPropToTree "Bemerkung = " & building.Remark, theindex
  318.     AddPropToTree "Rotation des GebΣudes = " & building.Rotation, theindex
  319.  
  320.   Else
  321.     AddPropToTree s & " ist NOTHING !!!", ParentIndex
  322.   End If
  323.   RekLevel = RekLevel - 1
  324. End Sub
  325.  
  326. Private Sub OneFontToTree(s As String, font As Object, ParentIndex As Integer, recurse As Boolean)
  327.   If RekLevel > MaxRekLevel Then Exit Sub
  328.   RekLevel = RekLevel + 1
  329.   If Not font Is Nothing Then
  330.     Dim theindex As Integer
  331.     theindex = AktIndex
  332.     AddChildToTree s, ParentIndex, AktIndex
  333.     AddPropToTree "Name = " & font.Name, theindex
  334.     AddPropToTree "Gr÷▀e = " & font.Size, theindex
  335.     AddPropToTree "Fett = " & font.Bold, theindex
  336.     AddPropToTree "Kursiv = " & font.Italic, theindex
  337.   Else
  338.     AddPropToTree s & " ist NOTHING !!!", ParentIndex
  339.   End If
  340.   RekLevel = RekLevel - 1
  341. End Sub
  342.  
  343. Private Sub OnePolygonToTree(s As String, polygon As Object, ParentIndex As Integer, recurse As Boolean)
  344.   If RekLevel > MaxRekLevel Then Exit Sub
  345.   RekLevel = RekLevel + 1
  346.   If Not polygon Is Nothing Then
  347.     Dim theindex As Integer
  348.     theindex = AktIndex
  349.     AddChildToTree s, ParentIndex, AktIndex
  350.     AllPointsToTree "Liste mit Punkten", polygon.Points, theindex, recurse
  351.     AddPropToTree "Darstellungsart der Linie = " & polygon.BorderStyle, theindex
  352.     AddPropToTree "Farbe der Linie = " & polygon.BorderColor, theindex
  353.     AddPropToTree "Ist das Polygon selektierbar = " & polygon.Selectable, theindex
  354.     AddPropToTree "Ist das Polygon selektiert = " & polygon.Selected, theindex
  355.     AddPropToTree "Ist das Polygon sichtbar = " & polygon.Visible, theindex
  356.  
  357. 'methods
  358. '  "Zeichne das Polygon neu")] void Refresh();
  359. '  "Positioniere das Polygon neu in Z-Richtung")] void ZOrder(short pos)
  360.   Else
  361.     AddPropToTree s & " ist NOTHING !!!", ParentIndex
  362.   End If
  363.   RekLevel = RekLevel - 1
  364. End Sub
  365.  
  366. Private Sub OneHoleToTree(s As String, hole As ArCon.hole, ParentIndex As Integer, recurse As Boolean)
  367.   If RekLevel > MaxRekLevel Then Exit Sub
  368.   RekLevel = RekLevel + 1
  369.   If Not hole Is Nothing Then
  370.     Dim theindex As Integer
  371.     theindex = AktIndex
  372.     AddChildToTree s, ParentIndex, AktIndex
  373.     OnePolygonToTree "Das Polygon des Wandloches (nicht fⁿr handverlegte L÷cher!) ", hole.polygon, theindex, False
  374.     OneTextureToTree "Textur des Wandloches = ", hole.texture, theindex, False
  375.     AddPropToTree "Linke Seite bis zur Decke = " & hole.LeftToTop, theindex
  376.     AddPropToTree "Rechte Seite bis zur Decke = " & hole.RightToTop, theindex
  377.     AddPropToTree "Breite des Wandlochs = " & hole.Width, theindex
  378.     AddPropToTree "Der Wert 'lu' im Dialog = " & hole.LeftBase, theindex
  379.     AddPropToTree "Der Wert 'lh' im Dialog = " & hole.LeftHeight, theindex
  380.     AddPropToTree "Der Wert 'ru' im Dialog = " & hole.RightBase, theindex
  381.     AddPropToTree "Der Wert 'rh' im Dialog = " & hole.RightHeight, theindex
  382.     AddPropToTree "Gehrung der linke Seite in Radiant (Pi/2 = keine Gehrung) = " & hole.LeftAngle, theindex
  383.     AddPropToTree "Gehrung der rechten Seite in Radiant (Pi/2 = keine Gehrung) = " & hole.RightAngle, theindex
  384.     
  385.     Dim pol1 As ArCon.Point2DCollection, pol2 As ArCon.Point2DCollection
  386.     Dim Depth1 As Single, Depth2 As Single
  387.     Dim Points As String, p As ArCon.Point2D
  388.     Dim x As Single, y As Single
  389.     hole.GetPos x, y
  390.     AddPropToTree "Position des Wandlochs: x = " & x & ", y = " & y, theindex
  391.     
  392.     If hole.GetPolygons(pol1, pol2, Depth1, Depth2) Then
  393.         AddPropToTree "Tiefe des Lochs auf der 1. Seite = " & Depth1, theindex
  394.         AddPropToTree "Tiefe des Lochs auf der 2. Seite = " & Depth2, theindex
  395.         Points = ""
  396.         For Each p In pol1
  397.             If Points <> "" Then Points = Points + ", "
  398.             Points = Points + "(" & p.x & "/" & p.y & ")"
  399.         Next
  400.         AddPropToTree "Polygon des Lochs auf der 1. Seite = " & Points, theindex
  401.         Points = ""
  402.         For Each p In pol2
  403.             If Points <> "" Then Points = Points + ", "
  404.             Points = Points + "(" & p.x & "/" & p.y & ")"
  405.         Next
  406.         AddPropToTree "Polygon des Lochs auf der 2. Seite = " & Points, theindex
  407.     End If
  408.  
  409.   Else
  410.     AddPropToTree s & " ist NOTHING !!!", ParentIndex
  411.   End If
  412.   RekLevel = RekLevel - 1
  413. End Sub
  414.  
  415. Private Sub AllVirtualWallsToTree(s As String, Container As Object, ParentIndex As Integer, recurse As Boolean)
  416.   Dim theindex As Integer
  417.   If RekLevel > MaxRekLevel Then Exit Sub
  418.   RekLevel = RekLevel + 1
  419.   If recurse Then
  420.     theindex = AktIndex
  421.     AddChildToTree s & " (Anzahl: " & Container.VirtualWalls.Count & ")", ParentIndex, AktIndex
  422.     Dim v As ArCon.VirtualWall
  423.     Dim i As Integer
  424.     i = 1
  425.     For Each v In Container.VirtualWalls
  426.       OneVirtualWallToTree "Virtuelle Wand Nummer " & i, v, theindex, True
  427.       i = i + 1
  428.     Next
  429.   Else
  430.     AddPropToTree s & " enthΣlt " & Container.VirtualWalls.Count & " Elemente.", ParentIndex
  431.   End If
  432.   RekLevel = RekLevel - 1
  433. End Sub
  434.  
  435. Private Sub AllPlatformsToTree(s As String, Container As Object, ParentIndex As Integer, recurse As Boolean)
  436.   Dim theindex As Integer
  437.   If RekLevel > MaxRekLevel Then Exit Sub
  438.   RekLevel = RekLevel + 1
  439.   If recurse Then
  440.     theindex = AktIndex
  441.     AddChildToTree s & " (Anzahl: " & Container.Platforms.Count & ")", ParentIndex, AktIndex
  442.     Dim p As ArCon.Platform
  443.     Dim i As Integer
  444.     i = 1
  445.     For Each p In Container.Platforms
  446.       OnePlatformToTree "Podest Nummer " & i, p, theindex
  447.       i = i + 1
  448.     Next
  449.   Else
  450.     AddPropToTree s & " enthΣlt " & Container.Platforms.Count & " Elemente.", ParentIndex
  451.   End If
  452.   RekLevel = RekLevel - 1
  453. End Sub
  454.  
  455. Private Sub AllGaubenToTree(s As String, Container As Object, ParentIndex As Integer, recurse As Boolean)
  456.   Dim theindex As Integer
  457.   If RekLevel > MaxRekLevel Then Exit Sub
  458.   RekLevel = RekLevel + 1
  459.   If recurse Then
  460.     theindex = AktIndex
  461.     AddChildToTree s & " (Anzahl: " & Container.Gauben.Count & ")", ParentIndex, AktIndex
  462.     Dim g As ArCon.Gaube
  463.     Dim i As Integer
  464.     i = 1
  465.     For Each g In Container.Gauben
  466.       OneGaubeToTree "Gaube Nummer " & i, g, theindex, True
  467.       i = i + 1
  468.     Next
  469.   Else
  470.     AddPropToTree s & " enthΣlt " & Container.Gauben.Count & " Elemente.", ParentIndex
  471.   End If
  472.   RekLevel = RekLevel - 1
  473. End Sub
  474.  
  475. Private Sub OneVirtualWallToTree(s As String, v As ArCon.VirtualWall, ParentIndex As Integer, recurse As Boolean)
  476.   If RekLevel > MaxRekLevel Then Exit Sub
  477.   RekLevel = RekLevel + 1
  478.   If Not v Is Nothing Then
  479.     Dim theindex As Integer
  480.     theindex = AktIndex
  481.     AddChildToTree s, ParentIndex, AktIndex
  482.     AddPropToTree "Farbe der 2D Darstellung = " & v.Color, theindex
  483.     AddPropToTree "Zeichenstil = " & v.Style, theindex
  484.     AddPropToTree "Dicke der Wand (nur fⁿr L÷cher) = " & v.Thickness, theindex
  485.     AddPropToTree "Kann L÷cher haben = " & v.WithHoles, theindex
  486.     OneStoryToTree "Stockwerk, zu dem die virtuelle Wand geh÷rt", v.story, theindex, False
  487.     OneWallToTree "Echte Wand, die die virtuelle Wand implementiert", v.wall, theindex, False
  488.     
  489.     Dim x1 As Single, y1 As Single, x2 As Single, y2 As Single
  490.     v.GetPos x1, y1, x2, y2
  491.     AddPropToTree "Position = (" & x1 & "/" & y1 & ") - (" & x2 & "/" & y2 & ")", theindex
  492.   Else
  493.     AddPropToTree s & " ist NOTHING !!!", ParentIndex
  494.   End If
  495.   RekLevel = RekLevel - 1
  496. End Sub
  497.  
  498. Private Sub OneGaubeToTree(s As String, g As ArCon.Gaube, ParentIndex As Integer, recurse As Boolean)
  499.   If RekLevel > MaxRekLevel Then Exit Sub
  500.   RekLevel = RekLevel + 1
  501.   If Not g Is Nothing Then
  502.     Dim theindex As Integer
  503.     theindex = AktIndex
  504.     AddChildToTree s, ParentIndex, AktIndex
  505.     AddPropToTree "Typ = " & g.Type, theindex
  506.     On Error Resume Next
  507.     AddPropToTree "Textur der Dacheindeckung = " & g.GetTexture(ACGTI_Eindeckung), theindex
  508.     AddPropToTree "Textur der Gaubenblende = " & g.GetTexture(ACGTI_Blende), theindex
  509.     On Error GoTo 0
  510.     
  511.     Dim pol As ArCon.Point2DCollection
  512.     Dim Points As String, p As ArCon.Point2D
  513.  
  514.     Points = ""
  515.     For Each p In g.Vertices
  516.         If Points <> "" Then Points = Points + ", "
  517.         Points = Points + "(" & p.x & "/" & p.y & ")"
  518.     Next
  519.     AddPropToTree "Eckpunkte = " & Points, theindex
  520.     
  521.     ' ZusΣtzliche Gauben-Details
  522.     AddPropToTree "Ist die Gaube aufgesetzt = " & g.GetAufgesetzt, theindex
  523.     AddPropToTree "Hat die Gaube aufgesetzte Flⁿgel = " & g.GetAufgesetzteFluegel, theindex
  524.     AddPropToTree "Gaubenbreite = " & g.GetBreite, theindex
  525.     AddPropToTree "Breite am Dachbruch = " & g.GetBreiteOben, theindex
  526.     AddPropToTree "Abstand vom Cursor = " & g.GetCursorAbstand, theindex
  527.     AddPropToTree "Details ⁿbernehmen = " & g.GetDetailsUebernehmen, theindex
  528.     AddPropToTree "Flⁿgelbreite = " & g.GetFluegelBreite, theindex
  529.     AddPropToTree "Mit Blende = " & g.GetMitBlende, theindex
  530.     AddPropToTree "Dachneigung links = " & g.GetNeigungLinks, theindex
  531.     AddPropToTree "Dachneigung rechts = " & g.GetNeigungRechts, theindex
  532.     AddPropToTree "╓ffnung bis zur Decke = " & g.GetOeffnungBisDecke, theindex
  533.     AddPropToTree "H÷he im Schnitt = " & g.GetSchnittHoehe, theindex
  534.     AddPropToTree "Dachneigung im Schnitt = " & g.GetSchnittNeigung, theindex
  535.     AddPropToTree "Traufh÷he im Schnitt = " & g.GetSchnittTraufHoehe, theindex
  536.     AddPropToTree "Dachⁿberstand im Schnitt = " & g.GetSchnittUeberstand, theindex
  537.     AddPropToTree "Stich (bei Rundgauben) = " & g.GetStich, theindex
  538.     AddPropToTree "Traufh÷he = " & g.GetTraufHoehe, theindex
  539.     AddPropToTree "Dachⁿberstand links = " & g.GetUeberstandLinks, theindex
  540.     AddPropToTree "Dachⁿberstand rechts = " & g.GetUeberstandRechts, theindex
  541.     AddPropToTree "Dicke der Frontwand = " & g.GetWandDicke, theindex
  542.  
  543.     OneWallToTree "Stirnseite", g.FrontWall, theindex, False
  544.     OneWallToTree "Linke Seite", g.LeftWall, theindex, False
  545.     OneWallToTree "Rechte Seite", g.RightWall, theindex, False
  546.     OneStoryToTree "Stockwerk", g.story, theindex, False
  547.     OneRoofToTree "Dach", g.Roof, theindex, False
  548.   Else
  549.     AddPropToTree s & " ist NOTHING !!!", ParentIndex
  550.   End If
  551.   RekLevel = RekLevel - 1
  552. End Sub
  553.  
  554. Private Sub AllHolesToTree(s As String, Container As Object, ParentIndex As Integer, recurse As Boolean)
  555.   Dim theindex As Integer
  556.   If RekLevel > MaxRekLevel Then Exit Sub
  557.   RekLevel = RekLevel + 1
  558.   If recurse Then
  559.     theindex = AktIndex
  560.     AddChildToTree s & " (Anzahl: " & Container.Holes.Count & ")", ParentIndex, AktIndex
  561.     Dim o As Object
  562.     Dim i As Integer
  563.     i = 1
  564.     For Each o In Container.Holes
  565.       OneHoleToTree "Loch Nummer " & i, o, theindex, True
  566.       i = i + 1
  567.     Next
  568.   Else
  569.     AddPropToTree s & " enthΣlt " & Container.Holes.Count & " Elemente.", ParentIndex
  570.   End If
  571.   RekLevel = RekLevel - 1
  572. End Sub
  573.  
  574. Private Sub OnePointToTree(s As String, point As Object, ParentIndex As Integer, recurse As Boolean)
  575.   If RekLevel > MaxRekLevel Then Exit Sub
  576.   RekLevel = RekLevel + 1
  577.   If Not point Is Nothing Then
  578.     Dim theindex As Integer
  579.     theindex = AktIndex
  580.     AddChildToTree s, ParentIndex, AktIndex
  581.     AddPropToTree "X-Koordinate = " & point.x, theindex
  582.     AddPropToTree "Y-Koordinate = " & point.y, theindex
  583.   Else
  584.     AddPropToTree s & " ist NOTHING !!!", ParentIndex
  585.   End If
  586.   RekLevel = RekLevel - 1
  587. End Sub
  588.  
  589. Private Sub OneLambdaHToTree(s As String, point As Object, ParentIndex As Integer, recurse As Boolean)
  590.   If RekLevel > MaxRekLevel Then Exit Sub
  591.   RekLevel = RekLevel + 1
  592.   If Not point Is Nothing Then
  593.     Dim theindex As Integer
  594.     theindex = AktIndex
  595.     AddChildToTree s, ParentIndex, AktIndex
  596.     AddPropToTree "Lambda = " & point.Lambda, theindex
  597.     AddPropToTree "H÷he = " & point.Height, theindex
  598.   Else
  599.     AddPropToTree s & " ist NOTHING !!!", ParentIndex
  600.   End If
  601.   RekLevel = RekLevel - 1
  602. End Sub
  603.  
  604. Private Sub AllLambdaHsToTree(s As String, Container As Object, ParentIndex As Integer, recurse As Boolean)
  605.   Dim theindex As Integer, lhs As ArCon.LambdaHCollection
  606.   If RekLevel > MaxRekLevel Then Exit Sub
  607.   RekLevel = RekLevel + 1
  608.   
  609.   Set lhs = Container.LambdaHs
  610.   If lhs Is Nothing Then
  611.     AddPropToTree s & " enhΣlt keine Elemente", ParentIndex
  612.   ElseIf recurse Then
  613.     theindex = AktIndex
  614.     AddChildToTree s & " (Anzahl: " & lhs.Count & ")", ParentIndex, AktIndex
  615.     Dim o As Object
  616.     Dim i As Integer
  617.     i = 1
  618.     For Each o In lhs
  619.       OneLambdaHToTree "H÷henpunkt Nummer " & i, o, theindex, True
  620.       i = i + 1
  621.     Next
  622.   Else
  623.     AddPropToTree s & " enthΣlt " & lhs.Count & " Elemente.", ParentIndex
  624.   End If
  625.   RekLevel = RekLevel - 1
  626. End Sub
  627.  
  628. Private Sub AllPointsToTree(s As String, Points As ArCon.Point2DCollection, ParentIndex As Integer, recurse As Boolean)
  629.   Dim theindex As Integer
  630.   If RekLevel > MaxRekLevel Then Exit Sub
  631.   RekLevel = RekLevel + 1
  632.   If Not Points Is Nothing Then
  633.     If recurse Then
  634.       theindex = AktIndex
  635.       AddChildToTree s & " (Anzahl: " & Points.Count & ")", ParentIndex, AktIndex
  636.       Dim o As Object
  637.       Dim i As Integer
  638.       i = 1
  639.       For Each o In Points
  640.         OnePointToTree "Punkt Nummer " & i, o, theindex, True
  641.         i = i + 1
  642.       Next
  643.     Else
  644.       AddPropToTree s & " enthΣlt " & Points.Count & " Elemente.", ParentIndex
  645.     End If
  646.   Else
  647.     AddPropToTree s & " ist NOTHING !!!", ParentIndex
  648.   End If
  649.   RekLevel = RekLevel - 1
  650. End Sub
  651.  
  652. Private Sub AllPoints3DToTree(s As String, Points, ParentIndex As Integer, recurse As Boolean)
  653.   Dim theindex As Integer
  654.   If RekLevel > MaxRekLevel Then Exit Sub
  655.   RekLevel = RekLevel + 1
  656.   Dim cnt As Long
  657.   cnt = UBound(Points, 2) - LBound(Points, 2) + 1
  658.   If cnt > 0 Then
  659.     If recurse Then
  660.       theindex = AktIndex
  661.       
  662.       AddChildToTree s & " (Anzahl: " & cnt & ")", ParentIndex, AktIndex
  663.       Dim i As Long
  664.       
  665.       For i = LBound(Points, 2) To UBound(Points, 2)
  666.         AddPropToTree "Punkt Nummer " & i & ": x=" & Points(0, i) & ", y=" & Points(1, i) & ", z=" & Points(2, i), theindex
  667.       Next
  668.     Else
  669.       AddPropToTree s & " enthΣlt " & cnt & " Elemente.", ParentIndex
  670.     End If
  671.   End If
  672.   RekLevel = RekLevel - 1
  673. End Sub
  674.  
  675. Private Sub OneConturToTree(s As String, contur As Object, ParentIndex As Integer, recurse As Boolean)
  676.   If RekLevel > MaxRekLevel Then Exit Sub
  677.   RekLevel = RekLevel + 1
  678.   If Not contur Is Nothing Then
  679.     Dim theindex As Integer
  680.     theindex = AktIndex
  681.     AddChildToTree s, ParentIndex, AktIndex
  682.     OneRoomToTree "Der Raum, zu dem die Kontur geh÷rt", contur.room, theindex, False
  683.     AllWallSegmentsToTree "Liste der Wandseiten dieser Kontur", contur, theindex, recurse
  684.     AddPropToTree "Kontur eines 'Raums im Raum' = " & contur.Inner, theindex
  685.   Else
  686.     AddPropToTree s & " ist NOTHING !!!", ParentIndex
  687.   End If
  688.   RekLevel = RekLevel - 1
  689. End Sub
  690.  
  691. Private Sub OneRoofAreaToTree(s As String, area As ArCon.RoofArea, ParentIndex As Integer, recurse As Boolean)
  692.   If RekLevel > MaxRekLevel Then Exit Sub
  693.   RekLevel = RekLevel + 1
  694.   If Not area Is Nothing Then
  695.     Dim theindex As Integer
  696.     theindex = AktIndex
  697.     AddChildToTree s, ParentIndex, AktIndex
  698.     OneRoomToTree "Der Raum, zu dem die DachflΣche geh÷rt", area.room, theindex, False
  699.     OneRoofToTree "Das Dach, zu dem die DachflΣche geh÷rt", area.Roof, theindex, False
  700.     OneTextureToTree "Die Textur der DachflΣche", area.texture, theindex, False
  701.     AddPropToTree "Die DeckenflΣche ist aussen = " & area.Outside, theindex
  702.     AddPropToTree "FlΣcheninhalt = " & area.area, theindex
  703.     AddPropToTree "Formel der FlΣche = " & area.AreaFormula, theindex
  704.   Else
  705.     AddPropToTree s & " ist NOTHING !!!", ParentIndex
  706.   End If
  707.   RekLevel = RekLevel - 1
  708. End Sub
  709.  
  710. Private Sub AllRoofAreasToTree(s As String, Container As Object, ParentIndex As Integer, recurse As Boolean)
  711.   Dim theindex As Integer
  712.   If RekLevel > MaxRekLevel Then Exit Sub
  713.   RekLevel = RekLevel + 1
  714.   If recurse Then
  715.     theindex = AktIndex
  716.     AddChildToTree s & " (Anzahl: " & Container.RoofAreas.Count & ")", ParentIndex, AktIndex
  717.     Dim o As Object
  718.     Dim i As Integer
  719.     i = 1
  720.     For Each o In Container.RoofAreas
  721.       OneRoofAreaToTree "DachflΣche Nummer " & i, o, theindex, True
  722.       i = i + 1
  723.     Next
  724.   Else
  725.     AddPropToTree s & " enthΣlt " & Container.RoofAreas.Count & " Elemente.", ParentIndex
  726.   End If
  727.   RekLevel = RekLevel - 1
  728. End Sub
  729.  
  730. Private Sub AllContursToTree(s As String, Container As Object, ParentIndex As Integer, recurse As Boolean)
  731.   Dim theindex As Integer
  732.   If RekLevel > MaxRekLevel Then Exit Sub
  733.   RekLevel = RekLevel + 1
  734.   If recurse Then
  735.     theindex = AktIndex
  736.     AddChildToTree s & " (Anzahl: " & Container.Conturs.Count & ")", ParentIndex, AktIndex
  737.     Dim o As Object
  738.     Dim i As Integer
  739.     i = 1
  740.     For Each o In Container.Conturs
  741.       OneConturToTree "Kontur Nummer " & i, o, theindex, True
  742.       i = i + 1
  743.     Next
  744.   Else
  745.     AddPropToTree s & " enthΣlt " & Container.Conturs.Count & " Elemente.", ParentIndex
  746.   End If
  747.   RekLevel = RekLevel - 1
  748. End Sub
  749.  
  750. Private Sub OneRoofToTree(s As String, Roof As ArCon.Roof, ParentIndex As Integer, recurse As Boolean)
  751.   If RekLevel > MaxRekLevel Then Exit Sub
  752.   RekLevel = RekLevel + 1
  753.   If Not Roof Is Nothing Then
  754.     Dim theindex As Integer
  755.     theindex = AktIndex
  756.     AddChildToTree s, ParentIndex, AktIndex
  757.     OneStoryToTree "Stockwerk, in dem das Dach liegt", Roof.story, theindex, False
  758.     AllWindowsToTree "Liste der Dachfenster", Roof, theindex, recurse
  759.     AllGaubenToTree "Liste der Gauben", Roof, theindex, recurse
  760.     AllRoofAreasToTree "Liste der DachflΣchen", Roof, theindex, recurse
  761.     
  762.     OnePolygonToTree "Form des Daches", Roof.polygon, theindex, False
  763.         
  764.     On Error Resume Next
  765.     AddPropToTree "Textur der Dacheindeckung = " & Roof.GetTexture(ACRTI_Eindeckung), theindex
  766.     AddPropToTree "Textur des Unterbaus = " & Roof.GetTexture(ACRTI_Unterbau), theindex
  767.     AddPropToTree "Textur der Schalung = " & Roof.GetTexture(ACRTI_Schalung), theindex
  768.     AddPropToTree "Textur der Holzkonstruktion = " & Roof.GetTexture(ACRTI_Holz), theindex
  769.     On Error GoTo 0
  770.     AddPropToTree "GesamtflΣche der Rohkonstruktion (qm) = " & Roof.FlaecheDerEindeckungUebermessen, theindex
  771.     AddPropToTree "LΣnge aller Firste (ohne Gauben) = " & Roof.DachSummeFirstlaenge, theindex
  772.     AddPropToTree "FlΣche des Daches (ohne Gauben) = " & Roof.DachSummeFlaeche, theindex
  773.     AddPropToTree "LΣnge aller Grate (ohne Gauben) = " & Roof.DachSummeGratlaenge, theindex
  774.     AddPropToTree "LΣnge aller Kehlen (ohne Gauben) = " & Roof.DachSummeKehlenlaenge, theindex
  775.     AddPropToTree "LΣnge aller OrtgΣnge (ohne Gauben) = " & Roof.DachSummeOrtganglaenge, theindex
  776.     AddPropToTree "LΣnge aller Pultdachfirste (ohne Gauben) = " & Roof.DachSummePultdachFirstlaenge, theindex
  777.     AddPropToTree "LΣnge aller Traufen (ohne Gauben) = " & Roof.DachSummeTrauflaenge, theindex
  778.     AddPropToTree "LΣnge aller Firste (nur Gauben) = " & Roof.GaubenSummeFirstlaenge, theindex
  779.     AddPropToTree "FlΣche des Daches (nur Gauben) = " & Roof.GaubenSummeFlaeche, theindex
  780.     AddPropToTree "LΣnge aller Grate (nur Gauben) = " & Roof.GaubenSummeGratlaenge, theindex
  781.     AddPropToTree "LΣnge aller Kehlen (nur Gauben) = " & Roof.GaubenSummeKehlenlaenge, theindex
  782.     AddPropToTree "LΣnge aller OrtgΣnge (nur Gauben) = " & Roof.GaubenSummeOrtganglaenge, theindex
  783.     AddPropToTree "LΣnge aller Pultdachfirste (nur Gauben) = " & Roof.GaubenSummePultdachFirstlaenge, theindex
  784.     AddPropToTree "LΣnge aller Traufen (nur Gauben) = " & Roof.GaubenSummeTrauflaenge, theindex
  785.     AddPropToTree "LΣnge aller Firste = " & Roof.TotalSummeFirstlaenge, theindex
  786.     AddPropToTree "FlΣche des Daches = " & Roof.TotalSummeFlaeche, theindex
  787.     AddPropToTree "LΣnge aller Grate = " & Roof.TotalSummeGratlaenge, theindex
  788.     AddPropToTree "LΣnge aller Kehlen = " & Roof.TotalSummeKehlenlaenge, theindex
  789.     AddPropToTree "LΣnge aller OrtgΣnge = " & Roof.TotalSummeOrtganglaenge, theindex
  790.     AddPropToTree "LΣnge aller Pultdachfirste = " & Roof.TotalSummePultdachFirstlaenge, theindex
  791.     AddPropToTree "LΣnge aller Traufen = " & Roof.TotalSummeTrauflaenge, theindex
  792.     
  793.     Dim det As RoofConstruction, i As Long, num As Long
  794.     Set det = Roof.Construction
  795.     AddPropToTree "Abstand der Ortgangsparren = " & det.AbstandOrtgangSparren, theindex
  796.     AddPropToTree "Wird das Dach horizontal begrenzt = " & det.DachHorizontalBegrenzen, theindex
  797.     AddPropToTree "Durchmesser der Dachrinnen = " & det.DachrinnenDurchmesser, theindex
  798.     AddPropToTree "Dicke der Eindeckung = " & det.DickeEindeckung, theindex
  799.     AddPropToTree "Dicke der Konstruktion = " & det.DickeKonstruktion, theindex
  800.     AddPropToTree "Ist die Eindeckung transparent = " & det.EindeckungTransparent, theindex
  801.     AddPropToTree "Breite der Firstpfetten = " & det.FirstpfettenBreite, theindex
  802.     AddPropToTree "Dicke der Firstpfetten = " & det.FirstpfettenDicke, theindex
  803.     AddPropToTree "Breite der Fusspfetten = " & det.FusspfettenBreite, theindex
  804.     AddPropToTree "Dicke der Fuspfetten = " & det.FusspfettenDicke, theindex
  805.     AddPropToTree "Gesimsh÷he an der Stirnseite = " & det.GesimsHoeheStirn, theindex
  806.     AddPropToTree "Gesimsneigung an der Stirnseite = " & det.GesimsNeigungStirn, theindex
  807.     AddPropToTree "Breite der Gratsparren = " & det.GratsparrenBreite, theindex
  808.     AddPropToTree "Dicke der Gratsparren = " & det.GratsparrenDicke, theindex
  809.     AddPropToTree "H÷he der Kehlbalken = " & det.HoeheUKKehlbalken, theindex
  810.     AddPropToTree "H÷he der Mittelpfetten unterm Kehlgang = " & det.HoeheUKMittelpfetten, theindex
  811.     AddPropToTree "Breite der Kehlbalken = " & det.KehlbalkenBreite, theindex
  812.     AddPropToTree "Dicke der Kehlbalken = " & det.KehlbalkenDicke, theindex
  813.     AddPropToTree "Breite der Kehlbohlen = " & det.KehlbohlenBreite, theindex
  814.     AddPropToTree "Dicke der Kehlbohlen = " & det.KehlbohlenDicke, theindex
  815.     AddPropToTree "Maximaler Abstand der Sparren = " & det.MaxSparrenAbstand, theindex
  816.     AddPropToTree "Maximaler ▄berstand der Eindeckung = " & det.MaxUeberstandEindeckung, theindex
  817.     AddPropToTree "Mit Dachrinne = " & det.MitDachrinne, theindex
  818.     AddPropToTree "Mit Firstpfetten = " & det.MitFirstpfetten, theindex
  819.     AddPropToTree "Mit Firststeinen = " & det.MitFirstSteinen, theindex
  820.     AddPropToTree "Mit Fusspfetten = " & det.MitFusspfetten, theindex
  821.     AddPropToTree "Mit Gratsparren = " & det.MitGratsparren, theindex
  822.     AddPropToTree "Mit Kehlbalken = " & det.MitKehlbalken, theindex
  823.     AddPropToTree "Mit Mittelpfetten = " & det.MitMittelpfetten, theindex
  824.     AddPropToTree "Mit Sparren = " & det.MitSparren, theindex
  825.     AddPropToTree "Breite der Mittelpfetten = " & det.MittelpfettenBreite, theindex
  826.     AddPropToTree "Dicke der Mittelpfetten = " & det.MittelpfettenDicke, theindex
  827.     AddPropToTree "Mit Traufdetails = " & det.MitTraufDetails, theindex
  828.     AddPropToTree "Sind die Pfettenk÷pfe sichtbar = " & det.PfettenKoepfeSichtbar, theindex
  829.     AddPropToTree "Schnitth÷he = " & det.SchnittHoehe, theindex
  830.     AddPropToTree "Breite der Sparren = " & det.SparrenBreite, theindex
  831.     AddPropToTree "Dicke der Sparren = " & det.SparrenDicke, theindex
  832.     AddPropToTree "LΣnge der Sparrenk÷pfe = " & det.SparrenKopfLaenge, theindex
  833.     AddPropToTree "Tiefe der Sparrenk÷pfe = " & det.SparrenKopfTiefe, theindex
  834.     AddPropToTree "Art der Traufdetails = " & det.TraufDetailTyp, theindex
  835.     
  836.     Dim woodList As ArCon.RoofWoodCollection, balken As ArCon.RoofWood
  837.     Set woodList = Roof.GetWoodConstruction(True, 0.05)
  838.     WoodlistToTree "Liste der Balken", woodList, theindex
  839.     
  840.   Else
  841.     AddPropToTree s & " ist NOTHING !!!", ParentIndex
  842.   End If
  843.   RekLevel = RekLevel - 1
  844. End Sub
  845.  
  846. Private Sub OneRoofWoodToTree(s As String, w As ArCon.RoofWood, ParentIndex As Integer)
  847.   Dim theindex As Integer
  848.   If RekLevel > MaxRekLevel Then Exit Sub
  849.   RekLevel = RekLevel + 1
  850.   If Not w Is Nothing Then
  851.     theindex = AktIndex
  852.     AddChildToTree s, ParentIndex, AktIndex
  853.     AddPropToTree "Typ = " & w.Type, theindex
  854.     AddPropToTree "Typname = " & w.TypeName, theindex
  855.     AddPropToTree "Anzahl gleichartiger Balken = " & w.Number, theindex
  856.     AddPropToTree "LΣnge = " & w.Length, theindex
  857.     AddPropToTree "Breite = " & w.Width, theindex
  858.     AddPropToTree "H÷he = " & w.Height, theindex
  859.   End If
  860.   RekLevel = RekLevel - 1
  861. End Sub
  862.  
  863. Private Sub WoodlistToTree(s As String, l As ArCon.RoofWoodCollection, ParentIndex As Integer)
  864.     Dim theindex As Integer
  865.     If RekLevel > MaxRekLevel Then Exit Sub
  866.     RekLevel = RekLevel + 1
  867.     theindex = AktIndex
  868.     AddChildToTree s & " (Anzahl: " & l.Count & ")", ParentIndex, AktIndex
  869.     Dim o As ArCon.RoofWood
  870.     Dim i As Integer
  871.     i = 1
  872.     For Each o In l
  873.       OneRoofWoodToTree "Balken Nummer " & i, o, theindex
  874.       i = i + 1
  875.     Next
  876.     RekLevel = RekLevel - 1
  877. End Sub
  878.  
  879. Private Sub AllRoofsToTree(s As String, Container As Object, ParentIndex As Integer, recurse As Boolean)
  880.   Dim theindex As Integer
  881.   If RekLevel > MaxRekLevel Then Exit Sub
  882.   RekLevel = RekLevel + 1
  883.   If recurse Then
  884.     theindex = AktIndex
  885.     AddChildToTree s & " (Anzahl: " & Container.Roofs.Count & ")", ParentIndex, AktIndex
  886.     Dim o As Object
  887.     Dim i As Integer
  888.     i = 1
  889.     For Each o In Container.Roofs
  890.       OneRoofToTree "Dach Nummer " & i, o, theindex, True
  891.       i = i + 1
  892.     Next
  893.   Else
  894.     AddPropToTree s & " enthΣlt " & Container.Roofs.Count & " Elemente.", ParentIndex
  895.   End If
  896.   RekLevel = RekLevel - 1
  897. End Sub
  898.  
  899. Private Sub AllBuildingsToTree(s As String, Container As Object, ParentIndex As Integer, recurse As Boolean)
  900.   Dim theindex As Integer
  901.   If RekLevel > MaxRekLevel Then Exit Sub
  902.   RekLevel = RekLevel + 1
  903.   If recurse Then
  904.     theindex = AktIndex
  905.     AddChildToTree s & " (Anzahl: " & Container.Buildings.Count & ")", ParentIndex, AktIndex
  906.     Dim o As Object
  907.     Dim i As Integer
  908.     i = 1
  909.     For Each o In Container.Buildings
  910.       OneBuildingToTree "GebΣude Nummer " & i, o, theindex, True
  911.       i = i + 1
  912.     Next
  913.   Else
  914.     AddPropToTree s & " enthΣlt " & Container.Buildings.Count & " Elemente.", ParentIndex
  915.   End If
  916.   RekLevel = RekLevel - 1
  917. End Sub
  918.  
  919. Private Sub OneStoryToTree(s As String, story As Object, ParentIndex As Integer, recurse As Boolean)
  920.   Dim theindex As Integer
  921.   If RekLevel > MaxRekLevel Then Exit Sub
  922.   RekLevel = RekLevel + 1
  923.   If Not story Is Nothing Then
  924.     theindex = AktIndex
  925.     AddChildToTree s, ParentIndex, AktIndex
  926.  
  927.     OneBuildingToTree "GebΣude, zu dem das Gescho▀ geh÷rt", story.building, theindex, False
  928.  
  929.     AllDwellingsToTree "Liste der Wohnungen", story.Dwellings, theindex, recurse
  930.     AllRoomsToTree "Liste der RΣume des Geschosses", story, theindex, recurse
  931.     AllWallsToTree "Liste der WΣnde des Geschosses:", story, theindex, recurse
  932.     AllUnterUeberzuegeToTree "Lister der Unter-/▄berzⁿge des Geschosses:", story, theindex, recurse
  933.     AllRoofsToTree "Liste der DΣcher des Geschosses", story, theindex, recurse
  934.     AllStaircasesToTree "Liste der Treppen des Geschosses", story, theindex, recurse
  935.     AllContursToTree "Liste der Wandseiten des Geschosses", story, theindex, recurse
  936.     AllSupportsToTree "Liste der Stⁿtzen des Geschosses", story, theindex, recurse
  937.     AllChimneiesToTree "Liste der Schornsteine des Geschosses", story, theindex, recurse
  938.     AllCeilingsToTree "Liste der Deckenplatten des Geschosses", story, theindex, recurse
  939.     AllCeilingOpeningsToTree "Liste der Deckenaussparungen des Geschosses", story, theindex, recurse
  940.     AllVirtualWallsToTree "Liste der virtuellen WΣnde des Geschosses", story, theindex, recurse
  941.     AllPlatformsToTree "Liste der Podeste", story, theindex, recurse
  942.  
  943.     AddPropToTree "Brutto-Gescho▀flΣche = " & story.BruttoGeschossflaeche, theindex
  944.     AddPropToTree "Formel fⁿr Brutto-Gescho▀flΣche = " & story.BruttoGeschossflaechenFormel, theindex
  945.     AddPropToTree "Brutto-Rauminhalt = " & story.BruttoRauminhalt, theindex
  946.     AddPropToTree "Formel fⁿr Brutto-Rauminhalt = " & story.BruttoRauminhaltsFormel, theindex
  947.     AddPropToTree "Basish÷he (Oberkante Fertigfu▀boden) = " & story.BaseHeight, theindex
  948.     AddPropToTree "Dicke des unteren Fu▀bodens = " & story.DistanceStoryBelow, theindex
  949.     AddPropToTree "lichte H÷he = " & story.LichteHoehe, theindex
  950.     AddPropToTree "Dicke des Deckenunterbaus = " & story.Unterbau, theindex
  951.     AddPropToTree "Dicke der Rohdecke = " & story.Rohdecke, theindex
  952.     AddPropToTree "Dicke des Fu▀bodens oberhalb = " & story.Fussboden, theindex
  953.     AddPropToTree "Au▀enputzstΣrke = " & story.PlasterThickness, theindex
  954.     AddPropToTree "Au▀enputzbezeichnung = " & story.PlasterName, theindex
  955.     AddPropToTree "Name = " & story.Name, theindex
  956.     AddPropToTree "Bemerkung = " & story.Remark, theindex
  957.     
  958.     AllGaubenToTree "Liste der Gauben", story, theindex, recurse
  959.  
  960.   Else
  961.     AddPropToTree s & " ist NOTHING !!!", ParentIndex
  962.   End If
  963.   RekLevel = RekLevel - 1
  964. End Sub
  965.  
  966. Private Sub AllStoriesToTree(s As String, Container As Object, ParentIndex As Integer, recurse As Boolean)
  967.   Dim theindex As Integer
  968.   If RekLevel > MaxRekLevel Then Exit Sub
  969.   RekLevel = RekLevel + 1
  970.   If recurse Then
  971.     theindex = AktIndex
  972.     AddChildToTree s & " (Anzahl: " & Container.Stories.Count & ")", ParentIndex, AktIndex
  973.     Dim o As Object
  974.     Dim i As Integer
  975.     i = 1
  976.     For Each o In Container.Stories
  977.       OneStoryToTree "Geschoss Nummer " & i, o, theindex, True
  978.       i = i + 1
  979.     Next
  980.   Else
  981.     AddPropToTree s & " enthΣlt " & Container.Stories.Count & " Elemente.", ParentIndex
  982.   End If
  983.   RekLevel = RekLevel - 1
  984. End Sub
  985.  
  986. Private Sub OneRoomToTree(s As String, room As ArCon.room, ParentIndex As Integer, recurse As Boolean)
  987.   Dim theindex As Integer
  988.   If RekLevel > MaxRekLevel Then Exit Sub
  989.   RekLevel = RekLevel + 1
  990.   If Not room Is Nothing Then
  991.     theindex = AktIndex
  992.     AddChildToTree s, ParentIndex, AktIndex
  993.  
  994.     OneStoryToTree "Gescho▀, in dem sich der Raum befindet", room.story, theindex, False
  995.     OneFontToTree "Schriftart der Raumbeschriftung", room.font, theindex, False
  996.     OneDwellingToTree "Wohnung, zu der der Raum geh÷rt", room.GetDwelling, theindex, False
  997.  
  998.     AllContursToTree "Liste der Konturen, die den Raum umschlie▀en", room, theindex, recurse
  999.     AllSupportsToTree "Liste der Stⁿtzen des Raumes", room, theindex, recurse
  1000.     AllChimneiesToTree "Liste der Kamine des Raumes", room, theindex, recurse
  1001.     AllRoofAreasToTree "Liste der DachflΣchen", room, theindex, recurse
  1002.     AddPropToTree "Raumbezeichnung = " & room.Name, theindex
  1003.     AddPropToTree "Raumbemerkung = " & room.Remark, theindex
  1004.     AddPropToTree "Selektiert etc. = " & room.Flags, theindex
  1005.     AddPropToTree "Drehwinkel der Raumbeschriftung = " & room.Angle, theindex
  1006.     AddPropToTree "Netto-GrundflΣche = " & room.NettoGrundflaeche, theindex
  1007.     AddPropToTree "Formel fⁿr Netto-GrundflΣche = " & room.NettoGrundflaechenFormel, theindex
  1008.     AddPropToTree "Netto-DeckenflΣche = " & room.NettoDeckenflaeche, theindex
  1009.     AddPropToTree "Formel fⁿr Netto-DeckenflΣche = " & room.NettoDeckenflaechenFormel, theindex
  1010.     AddPropToTree "Rauminhalt = " & room.Volumen, theindex
  1011.     AddPropToTree "Formel fⁿr Rauminhalt = " & room.VolumenFormel, theindex
  1012.     AddPropToTree "BodenflΣche = " & room.Bodenflaeche, theindex
  1013.     AddPropToTree "Formel fⁿr BodenflΣche = " & room.BodenflaechenFormel, theindex
  1014.     AddPropToTree "DeckenflΣche = " & room.Deckenflaeche, theindex
  1015.     AddPropToTree "Formel fⁿr DeckenflΣche = " & room.DeckenflaechenFormel, theindex
  1016.     AddPropToTree "Ordnungszahl nach DIN277 = " & room.Ordnungszahl, theindex
  1017.     AddPropToTree "NutzflΣchenart nach DIN277 = " & room.Nutzflaechenart, theindex
  1018.     AddPropToTree "Umschlie▀ungsart nach DIN277 = " & room.Umschliessungsart, theindex
  1019.     AddPropToTree "PutzstΣrke = " & room.PlasterThickness, theindex
  1020.     AddPropToTree "Putzbezeichnung = " & room.PlasterName, theindex
  1021.     OneTextureToTree "Deckentextur", room.CeilingTexture, theindex, False
  1022.     OneTextureToTree "Bodentextur", room.FloorTexture, theindex, False
  1023.  
  1024.   Else
  1025.     AddPropToTree s & " ist NOTHING !!!", ParentIndex
  1026.   End If
  1027.   RekLevel = RekLevel - 1
  1028. End Sub
  1029.  
  1030. Private Sub AllRoomsToTree(s As String, Container As Object, ParentIndex As Integer, recurse As Boolean)
  1031.   Dim theindex As Integer
  1032.   If RekLevel > MaxRekLevel Then Exit Sub
  1033.   RekLevel = RekLevel + 1
  1034.   If recurse Then
  1035.     theindex = AktIndex
  1036.     AddChildToTree s & " (Anzahl: " & Container.Rooms.Count & ")", ParentIndex, AktIndex
  1037.     Dim o As Object
  1038.     Dim i As Integer
  1039.     i = 1
  1040.     For Each o In Container.Rooms
  1041.       OneRoomToTree "Raum Nummer " & i, o, theindex, True
  1042.       i = i + 1
  1043.     Next
  1044.   Else
  1045.     AddPropToTree s & " enthΣlt " & Container.Rooms.Count & " Elemente.", ParentIndex
  1046.   End If
  1047.   RekLevel = RekLevel - 1
  1048. End Sub
  1049.  
  1050. Private Sub AddIDToTree(obj As Object, ByVal index As Long)
  1051.     AddPropToTree "ID = " & obj.id, index
  1052.     Dim hist As ArCon.IDHistory
  1053.     Set hist = obj.History
  1054.     If Not hist Is Nothing Then
  1055.         AddPropToTree "Ehemalige ID = " & hist.PreviousID & " in Projekt " & hist.PreviousProjectName, index
  1056.     End If
  1057. End Sub
  1058.  
  1059. Private Sub OneWallToTree(s As String, wall As Object, ParentIndex As Integer, recurse As Boolean)
  1060.   Dim theindex As Integer
  1061.   If RekLevel > MaxRekLevel Then Exit Sub
  1062.   RekLevel = RekLevel + 1
  1063.   If Not wall Is Nothing Then
  1064.     theindex = AktIndex
  1065.     AddChildToTree s, ParentIndex, AktIndex
  1066.  
  1067.     OneTextureToTree "ursprⁿngliche Textur der Wand", wall.texture, theindex, False
  1068.     OneStoryToTree "Gescho▀, in dem die Wand liegt", wall.story, theindex, False
  1069.  
  1070.     AllWindowsToTree "Liste der Fenster", wall, theindex, recurse
  1071.     AllDoorsToTree "Liste der Tⁿren", wall, theindex, recurse
  1072.     AllWallSegmentsToTree "Liste der Wandseiten", wall, theindex, recurse
  1073.     AllHolesToTree "Liste der Aussparungen", wall, theindex, recurse
  1074.  
  1075.     AddIDToTree wall, theindex
  1076.     AddPropToTree "Wandtyp (Variante des Multifunktionsschalters) = " & wall.Type, theindex
  1077.     AddPropToTree "Wanddicke = " & wall.Thickness, theindex
  1078.     AddPropToTree "AchsenlΣnge = " & wall.AverageLength, theindex
  1079.     AddPropToTree "Mittlere FlΣche = " & wall.AverageArea, theindex
  1080.     AddPropToTree "Formel fⁿr die mittlere FlΣche = " & wall.AverageAreaFormula, theindex
  1081.     OneVirtualWallToTree "Virtuelle Wand, die durch diese Wand dargestellt wird", wall.VirtualWall, theindex, False
  1082.     
  1083.     Dim x1 As Single, y1 As Single, x2 As Single, y2 As Single
  1084.     wall.GetPos x1, y1, x2, y2
  1085.     AddPropToTree "Position der Wand lesen: x1=" & x1 & ", y1=" & y1 & ", x2=" & x2 & ", y2=" & y2, theindex
  1086.  
  1087.   Else
  1088.     AddPropToTree s & " ist NOTHING !!!", ParentIndex
  1089.   End If
  1090.   RekLevel = RekLevel - 1
  1091. End Sub
  1092.  
  1093. Private Sub OneUnterUeberzugToTree(s As String, z As UnterUeberzug, ParentIndex As Integer, recurse As Boolean)
  1094.   Dim theindex As Integer, segIndex As Integer
  1095.   If RekLevel > MaxRekLevel Then Exit Sub
  1096.   RekLevel = RekLevel + 1
  1097.   If Not z Is Nothing Then
  1098.     theindex = AktIndex
  1099.     AddChildToTree s, ParentIndex, AktIndex
  1100.  
  1101.     OneStoryToTree "Gescho▀, in dem der Unter-/▄berzug liegt", z.story, theindex, False
  1102.     OneTextureToTree "Textur des Unter-/▄berzuges", z.DeckelTextur, theindex, False
  1103.     
  1104.     segIndex = AktIndex
  1105.     AddChildToTree "1. Seite", theindex, AktIndex
  1106.     AddPropToTree "Linienfarbe = " & z.Seg1LinienFarbe, segIndex
  1107.     AddPropToTree "Linienstil = " & z.Seg1LinienTyp, segIndex
  1108.     OneTextureToTree "Textur", z.Seg1Textur, segIndex, False
  1109.     segIndex = AktIndex
  1110.     AddChildToTree "2. Seite", theindex, AktIndex
  1111.     AddPropToTree "Linienfarbe = " & z.Seg2LinienFarbe, segIndex
  1112.     AddPropToTree "Linienstil = " & z.Seg2LinienTyp, segIndex
  1113.     OneTextureToTree "Textur", z.Seg2Textur, segIndex, False
  1114.     segIndex = AktIndex
  1115.     AddChildToTree "3. Seite", theindex, AktIndex
  1116.     AddPropToTree "Linienfarbe = " & z.Seg3LinienFarbe, segIndex
  1117.     AddPropToTree "Linienstil = " & z.Seg3LinienTyp, segIndex
  1118.     OneTextureToTree "Textur", z.Seg3Textur, segIndex, False
  1119.     segIndex = AktIndex
  1120.     AddChildToTree "4. Seite", theindex, AktIndex
  1121.     AddPropToTree "Linienfarbe = " & z.Seg4LinienFarbe, segIndex
  1122.     AddPropToTree "Linienstil = " & z.Seg4LinienTyp, segIndex
  1123.     OneTextureToTree "Textur", z.Seg4Textur, segIndex, False
  1124.  
  1125.     AddPropToTree "Ist ein ▄berzug = " & z.Ueberzug, theindex
  1126.     AddPropToTree "Dicke = " & z.Thickness, theindex
  1127.     AddPropToTree "LΣnge = " & z.Length, theindex
  1128.     AddPropToTree "H÷he = " & z.Height, theindex
  1129.     AddPropToTree "Schraffurfarbe = " & z.SchraffurFarbe, theindex
  1130.     AddPropToTree "Schraffurmuster = " & z.Schraffur, theindex
  1131.   Else
  1132.     AddPropToTree s & " ist NOTHING !!!", ParentIndex
  1133.   End If
  1134.   RekLevel = RekLevel - 1
  1135. End Sub
  1136.  
  1137. Private Sub AllUnterUeberzuegeToTree(s As String, Container As Object, ParentIndex As Integer, recurse As Boolean)
  1138.   Dim theindex As Integer
  1139.   If RekLevel > MaxRekLevel Then Exit Sub
  1140.   RekLevel = RekLevel + 1
  1141.   If recurse Then
  1142.     theindex = AktIndex
  1143.     AddChildToTree s & " (Anzahl: " & Container.UnterUeberzuege.Count & ")", ParentIndex, AktIndex
  1144.     Dim o As ArCon.UnterUeberzug
  1145.     Dim i As Integer
  1146.     i = 1
  1147.     For Each o In Container.UnterUeberzuege
  1148.       OneUnterUeberzugToTree "Unter/▄berzug Nummer " & i, o, theindex, True
  1149.       i = i + 1
  1150.     Next
  1151.   Else
  1152.     AddPropToTree s & " enthΣlt " & Container.UnterUeberzuege.Count & " Elemente.", ParentIndex
  1153.   End If
  1154.   RekLevel = RekLevel - 1
  1155. End Sub
  1156.  
  1157. Private Sub AllWallsToTree(s As String, Container As Object, ParentIndex As Integer, recurse As Boolean)
  1158.   Dim theindex As Integer
  1159.   If RekLevel > MaxRekLevel Then Exit Sub
  1160.   RekLevel = RekLevel + 1
  1161.   If recurse Then
  1162.     theindex = AktIndex
  1163.     AddChildToTree s & " (Anzahl: " & Container.Walls.Count & ")", ParentIndex, AktIndex
  1164.     Dim o As Object
  1165.     Dim i As Integer
  1166.     i = 1
  1167.     For Each o In Container.Walls
  1168.       OneWallToTree "Wand Nummer " & i, o, theindex, True
  1169.       i = i + 1
  1170.     Next
  1171.   Else
  1172.     AddPropToTree s & " enthΣlt " & Container.Walls.Count & " Elemente.", ParentIndex
  1173.   End If
  1174.   RekLevel = RekLevel - 1
  1175. End Sub
  1176.  
  1177.  
  1178. Private Sub OneWallSegmentToTree(s As String, wallsegment As Object, ParentIndex As Integer, recurse As Boolean)
  1179.   Dim theindex As Integer
  1180.   If RekLevel > MaxRekLevel Then Exit Sub
  1181.   RekLevel = RekLevel + 1
  1182.   If Not wallsegment Is Nothing Then
  1183.     theindex = AktIndex
  1184.     AddChildToTree s, ParentIndex, AktIndex
  1185.  
  1186.     OneRoomToTree "Raum, zu dem diese Wandseite geh÷rt", wallsegment.room, theindex, False
  1187.     OneWallToTree "Wand, zu der diese Wandseite geh÷rt", wallsegment.wall, theindex, False
  1188.     OneConturToTree "Kontur, zu der diese Wandseite geh÷rt", wallsegment.contur, theindex, False
  1189.     OneTextureToTree "verwendete Textur", wallsegment.texture, theindex, False
  1190.  
  1191.     AllLambdaHsToTree "H÷henpunkte des Segments", wallsegment, theindex, recurse
  1192.     AllWindowsToTree "Fenster, die in dieser Wandseite 'sitzen'", wallsegment, theindex, recurse
  1193.     AllDoorsToTree "Tⁿren, die in dieser Wandseite 'sitzen'", wallsegment, theindex, recurse
  1194.     AllHolesToTree "Aussparungen", wallsegment, theindex, recurse
  1195.  
  1196.     AddPropToTree "erste, zweite, dritte oder vierte Seite der Wand? = " & wallsegment.WallSide, theindex
  1197.     AddPropToTree "H÷he der Wandseitenoberkante = " & wallsegment.zTop, theindex
  1198.     AddPropToTree "H÷he der Wandseitenunterkante = " & wallsegment.zBottom, theindex
  1199.     AddPropToTree "Sichtbar, unsichtbar, da von Dach abgeschnitten... = " & wallsegment.VisMode, theindex
  1200.     AddPropToTree "FlΣche der Wandseite = " & wallsegment.area, theindex
  1201.     AddPropToTree "Formel fⁿr FlΣche der Wandseite = " & wallsegment.AreaFormula, theindex
  1202.     AddPropToTree "in 3D-Darstellung sichtbar? = " & wallsegment.Visible, theindex
  1203.     AddPropToTree "fⁿr Au▀enwΣnde: Material von darunterliegender Wandseite ⁿbernehmen? = " & wallsegment.MaterialFromBelow, theindex
  1204.  
  1205. ' methods:
  1206. ' "Position der Wandseite lesen")] boolean GetPos(double* X1, double* Y1, double* X2, double* Y2);
  1207.  
  1208.   Else
  1209.     AddPropToTree s & " ist NOTHING !!!", ParentIndex
  1210.   End If
  1211.   RekLevel = RekLevel - 1
  1212. End Sub
  1213.  
  1214.  
  1215. Private Sub AllWallSegmentsToTree(s As String, Container As Object, ParentIndex As Integer, recurse As Boolean)
  1216.   Dim theindex As Integer
  1217.   If RekLevel > MaxRekLevel Then Exit Sub
  1218.   RekLevel = RekLevel + 1
  1219.   If recurse Then
  1220.     theindex = AktIndex
  1221.     AddChildToTree s & " (Anzahl: " & Container.WallSegments.Count & ")", ParentIndex, AktIndex
  1222.     Dim o As Object
  1223.     Dim i As Integer
  1224.     i = 1
  1225.     For Each o In Container.WallSegments
  1226.       OneWallSegmentToTree "Wandsegement Nummer " & i, o, theindex, True
  1227.       i = i + 1
  1228.     Next
  1229.   Else
  1230.     AddPropToTree s & " enthΣlt " & Container.WallSegments.Count & " Elemente.", ParentIndex
  1231.   End If
  1232.   RekLevel = RekLevel - 1
  1233. End Sub
  1234.  
  1235. Private Sub OneTerrainToTree(s As String, terrain As Object, ParentIndex As Integer, recurse As Boolean)
  1236.   Dim theindex As Integer
  1237.   If RekLevel > MaxRekLevel Then Exit Sub
  1238.   RekLevel = RekLevel + 1
  1239.   If Not terrain Is Nothing Then
  1240.     theindex = AktIndex
  1241.     AddChildToTree s, ParentIndex, AktIndex
  1242.  
  1243.     OneTextureToTree "verwendete Textur", terrain.texture, theindex, False
  1244.     OneHedgeToTree "Liste der Umrandungen", terrain.hedge, theindex, False ' !!! Ist das nicht nur eins? Kommentar falsch
  1245.     OneTerrainToTree "ⁿbergeordnetes GelΣnde", terrain.Owner, theindex, False
  1246.  
  1247.     AllBuildingsToTree "Liste der GebΣude auf dem GelΣnde", terrain, theindex, False
  1248.     AllTerrainsToTree "Liste der UntergelΣnde", terrain, theindex, recurse
  1249.  
  1250.     AddPropToTree "LΣnge einer Facette = " & terrain.FacetteLength, theindex
  1251.     AddPropToTree "Default-H÷he beim Erzeugen = " & terrain.Height, theindex
  1252.     AddPropToTree "DiffuseColor = " & terrain.DiffuseColor, theindex
  1253.     AddPropToTree "SpecularColor = " & terrain.SpecularColor, theindex
  1254.     AddPropToTree "Transparent = " & terrain.Transparent, theindex
  1255.     AddPropToTree "Flags = " & terrain.Flags, theindex
  1256.     AddPropToTree "Transparency = " & terrain.Transparency, theindex
  1257.     AddPropToTree "HighlightExponent = " & terrain.HighlightExponent, theindex
  1258.     AddPropToTree "AmbientCoefficient = " & terrain.AmbientCoefficient, theindex
  1259.     AddPropToTree "DiffuseCoefficient = " & terrain.DiffuseCoefficient, theindex
  1260.     AddPropToTree "SpecularCoefficient = " & terrain.SpecularCoefficient, theindex
  1261.     AddPropToTree "GelΣndetyp (Grundstⁿck, GelΣndebereich) = " & terrain.Type, theindex
  1262.     AddPropToTree "Name = " & terrain.Name, theindex
  1263.     AddPropToTree "Bemerkung = " & terrain.Remark, theindex
  1264.     AddPropToTree "Umfang des GelΣndes = " & terrain.Umfang, theindex
  1265.     AddPropToTree "Formel fⁿr Umfang = " & terrain.UmfangsFormel, theindex
  1266.     AddPropToTree "Gr÷▀e des GelΣndes = " & terrain.area, theindex
  1267.     AddPropToTree "Formel fⁿr GelΣndegr÷▀e = " & terrain.AreaFormula, theindex
  1268.  
  1269. 'methods:
  1270. '"Transformation fⁿr Texturkoordinaten lesen")] void GetTransformation(float* x1, float* y1, float* z1, float* x2, float* y2, float* z2, float* x3, float* y3, float* z3);
  1271.  
  1272.   Else
  1273.     AddPropToTree s & " ist NOTHING !!!", ParentIndex
  1274.   End If
  1275.   RekLevel = RekLevel - 1
  1276. End Sub
  1277.  
  1278. Private Sub AllTerrainsToTree(s As String, Container As Object, ParentIndex As Integer, recurse As Boolean)
  1279.   Dim theindex As Integer
  1280.   If RekLevel > MaxRekLevel Then Exit Sub
  1281.   RekLevel = RekLevel + 1
  1282.   If recurse Then
  1283.     theindex = AktIndex
  1284.     AddChildToTree s & " (Anzahl: " & Container.Terrains.Count & ")", ParentIndex, AktIndex
  1285.     Dim o As Object
  1286.     Dim i As Integer
  1287.     i = 1
  1288.     For Each o In Container.Terrains
  1289.       OneTerrainToTree "Terrain Nummer " & i, o, theindex, True
  1290.       i = i + 1
  1291.     Next
  1292.   Else
  1293.     AddPropToTree s & " enthΣlt " & Container.Terrains.Count & " Elemente.", ParentIndex
  1294.   End If
  1295.   RekLevel = RekLevel - 1
  1296. End Sub
  1297.  
  1298.  
  1299. Private Sub OneWindowToTree(s As String, window As Object, ParentIndex As Integer, recurse As Boolean)
  1300.   Dim theindex As Integer
  1301.   If RekLevel > MaxRekLevel Then Exit Sub
  1302.   RekLevel = RekLevel + 1
  1303.   If Not window Is Nothing Then
  1304.     theindex = AktIndex
  1305.     AddChildToTree s, ParentIndex, AktIndex
  1306.  
  1307.     OneWallToTree "Wandobjekt, in dem das Fenster 'sitzt'", window.wall, theindex, False
  1308.     OneWallSegmentToTree "Innenwandseite, in der das Fenster 'sitzt'", window.LeftSegment, theindex, False
  1309.     OneWallSegmentToTree "Au▀enwandseite, in der das Fenster 'sitzt'", window.RightSegment, theindex, False
  1310.  
  1311.     AddPropToTree "Fensterart (Variante des Multifunktionsschalters) = " & window.Type, theindex
  1312.     AddPropToTree "Fensterbreite = " & window.Width, theindex
  1313.     AddPropToTree "Fensterh÷he = " & window.Height, theindex
  1314.     AddPropToTree "Brⁿstungsh÷he = " & window.ParapetHeight, theindex
  1315.     AddPropToTree "zur gegenⁿberliegenden Seite ÷ffnen? = " & window.OpensInwards, theindex
  1316.     AddPropToTree "links angeschlagen? = " & window.LeftHung, theindex
  1317.     AddPropToTree "Name des Fenstertyps = " & ArConEXE.GetWindowName(window.Type), theindex
  1318.     AddPropToTree "Bemerkung = " & window.Remark, theindex
  1319.     AddPropToTree "FensterflΣche = " & window.area, theindex
  1320.     AddPropToTree "Formel fⁿr FensterflΣche = " & window.AreaFormula, theindex
  1321.     On Error Resume Next
  1322.     AddPropToTree "Name der Rahmentextur = " & window.GetTexture(ACWTI_Rahmen), theindex
  1323.     AddPropToTree "Name der inneren Fensterbanktextur = " & window.GetTexture(ACWTI_BankInnen), theindex
  1324.     AddPropToTree "Name der Σu▀eren Fensterbanktextur = " & window.GetTexture(ACWTI_BankAussen), theindex
  1325.     AddPropToTree "Name der Textur der inneren Fⁿllung = " & window.GetTexture(ACWTI_FuellungInnen), theindex
  1326.     AddPropToTree "Name der Textur der Σu▀eren Fⁿllung = " & window.GetTexture(ACWTI_FuellungAussen), theindex
  1327.     On Error GoTo 0
  1328.     
  1329.     Dim pol1 As ArCon.Point2DCollection, pol2 As ArCon.Point2DCollection
  1330.     Dim Depth1 As Single, Depth2 As Single
  1331.     Dim Points As String, p As ArCon.Point2D
  1332.     
  1333.     OneWindowConstructionToTree "Details", window.Construction, theindex
  1334.  
  1335.     If window.GetPolygons(pol1, pol2, Depth1, Depth2) Then
  1336.         AddPropToTree "Tiefe des Lochs auf der 1. Seite = " & Depth1, theindex
  1337.         AddPropToTree "Tiefe des Lochs auf der 2. Seite = " & Depth2, theindex
  1338.         Points = ""
  1339.         For Each p In pol1
  1340.             If Points <> "" Then Points = Points + ", "
  1341.             Points = Points + "(" & p.x & "/" & p.y & ")"
  1342.         Next
  1343.         AddPropToTree "Polygon des Lochs auf der 1. Seite = " & Points, theindex
  1344.         Points = ""
  1345.         For Each p In pol2
  1346.             If Points <> "" Then Points = Points + ", "
  1347.             Points = Points + "(" & p.x & "/" & p.y & ")"
  1348.         Next
  1349.         AddPropToTree "Polygon des Lochs auf der 2. Seite = " & Points, theindex
  1350.     End If
  1351.   End If
  1352. End Sub
  1353.  
  1354. Private Sub OneWindowConstructionToTree(s As String, wc As ArCon.WindowConstruction, ParentIndex As Integer)
  1355.   Dim theindex As Integer
  1356.   If RekLevel > MaxRekLevel Then Exit Sub
  1357.   RekLevel = RekLevel + 1
  1358.   If Not wc Is Nothing Then
  1359.     theindex = AktIndex
  1360.     AddChildToTree s, ParentIndex, AktIndex
  1361.  
  1362.     AddPropToTree "Anschlag links = " & wc.AnschlagLinks, theindex
  1363.     AddPropToTree "Anschlag oben = " & wc.AnschlagOben, theindex
  1364.     AddPropToTree "Anschlag rechts = " & wc.AnschlagRechts, theindex
  1365.     AddPropToTree "Anschlag Tiefe = " & wc.AnschlagTiefe, theindex
  1366.     AddPropToTree "Anschlag Typ = " & wc.AnschlagTyp, theindex
  1367.     AddPropToTree "Anschlag unten = " & wc.AnschlagUnten, theindex
  1368.     AddPropToTree "Anzahl Pfosten = " & wc.AnzahlPfosten, theindex
  1369.     AddPropToTree "Anzahl Riegel = " & wc.AnzahlRiegel, theindex
  1370.     AddPropToTree "Basis: Anzahl der horizontalen Sprossen = " & wc.AnzahlSprossenHorizontalBasis, theindex
  1371.     AddPropToTree "Brⁿstungselement: Anzahl der horizontalen Sprossen  = " & wc.AnzahlSprossenHorizontalBruestungselement, theindex
  1372.     AddPropToTree "Oberlicht: Anzahl der horizontalen Sprossen   = " & wc.AnzahlSprossenHorizontalOberlicht, theindex
  1373.     AddPropToTree "Basis: Anzahl der vertikalen Sprossen = " & wc.AnzahlSprossenVertikalBasis, theindex
  1374.     AddPropToTree "Brⁿstungselement: Anzahl der vertikalen Sprossen  = " & wc.AnzahlSprossenVertikalBruestungselement, theindex
  1375.     AddPropToTree "Oberlicht: Anzahl der vertikalen Sprossen  = " & wc.AnzahlSprossenVertikalOberlicht, theindex
  1376.     AddPropToTree "Basis: Breite der Sprossen  = " & wc.BasisSprossenBreite, theindex
  1377.     AddPropToTree "Basis: Dicke der Sprossen = " & wc.BasisSprossenDicke, theindex
  1378.     AddPropToTree "Breite = " & wc.Breite, theindex
  1379.     AddPropToTree "Brⁿstungselement ausgefⁿllt = " & wc.BruestungselementAusgefuellt, theindex
  1380.     AddPropToTree "Brⁿstungselement: Breite der Sprossen = " & wc.BruestungselementSprossenBreite, theindex
  1381.     AddPropToTree "Brⁿstungselement: Dicke der Sprossen = " & wc.BruestungselementSprossenDicke, theindex
  1382.     AddPropToTree "Brⁿstungsh÷he = " & wc.BruestungsHoehe, theindex
  1383.     AddPropToTree "H÷he = " & wc.Hoehe, theindex
  1384.     AddPropToTree "H÷he des Brⁿstungselementes = " & wc.HoeheBruestungsElement, theindex
  1385.     AddPropToTree "H÷he links = " & wc.HoeheLinks, theindex
  1386.     AddPropToTree "H÷he des Oberlichtes = " & wc.HoeheOberlicht, theindex
  1387.     AddPropToTree "H÷he rechts = " & wc.HoeheRechts, theindex
  1388.     AddPropToTree "Links angeschlagen = " & wc.LinksAngeschlagen, theindex
  1389.     AddPropToTree "Mit Brⁿstungselement = " & wc.MitBruestungselement, theindex
  1390.     AddPropToTree "Mit Fensterbank = " & wc.MitFensterbank, theindex
  1391.     AddPropToTree "Mit Gehrung links = " & wc.MitGehrungLinks, theindex
  1392.     AddPropToTree "Mit Gehrung rechts = " & wc.MitGehrungRechts, theindex
  1393.     AddPropToTree "Mit Oberlicht = " & wc.MitOberlicht, theindex
  1394.     AddPropToTree "Nach innen ÷ffnend = " & wc.NachInnenOeffnend, theindex
  1395.     AddPropToTree "Nur ╓ffnung erzeugen = " & wc.NurOeffnungErzeugen, theindex
  1396.     AddPropToTree "Oberlicht: Breite der Sprossen = " & wc.OberlichtSprossenBreite, theindex
  1397.     AddPropToTree "Oberlicht: Dicke der Sprossen = " & wc.OberlichtSprossenDicke, theindex
  1398.     AddPropToTree "Art des Oberlichtes = " & wc.OberlichtTyp, theindex
  1399.     AddPropToTree "Abstand der Pfosten = " & wc.PfostenAbstand, theindex
  1400.     AddPropToTree "Breite der Pfosten = " & wc.PfostenBreite, theindex
  1401.     AddPropToTree "Abstand des ersten Pfostens = " & wc.PfostenErsterAbstand, theindex
  1402.     AddPropToTree "Symetrische Pfostenanordnung = " & wc.PfostenSymmetrisch, theindex
  1403.     AddPropToTree "Breite des Rahmens = " & wc.RahmenBreite, theindex
  1404.     AddPropToTree "Dicke des Rahmens = " & wc.RahmenDicke, theindex
  1405.     AddPropToTree "Abstand der Riegel = " & wc.RiegelAbstand, theindex
  1406.     AddPropToTree "Breite der Riegel = " & wc.RiegelBreite, theindex
  1407.     AddPropToTree "Riegelbreite unten = " & wc.RiegelBreiteUnten, theindex
  1408.     AddPropToTree "Abstand des ersten Riegels = " & wc.RiegelErsterAbstand, theindex
  1409.     AddPropToTree "Symetrische Riegelanordnung = " & wc.RiegelSymmetrisch, theindex
  1410.     AddPropToTree "Stich oben = " & wc.StichOben, theindex
  1411.     AddPropToTree "Stich unten = " & wc.StichUnten, theindex
  1412.   End If
  1413. End Sub
  1414.  
  1415. Private Sub OneRoofWindowToTree(s As String, window As ArCon.RoofWindow, ParentIndex As Integer, recurse As Boolean)
  1416.   Dim theindex As Integer
  1417.   If RekLevel > MaxRekLevel Then Exit Sub
  1418.   RekLevel = RekLevel + 1
  1419.   If Not window Is Nothing Then
  1420.     theindex = AktIndex
  1421.     AddChildToTree s, ParentIndex, AktIndex
  1422.  
  1423.     OneRoofToTree "Dach, in dem das Fenster 'sitzt'", window.Roof, theindex, False
  1424.  
  1425.     AddPropToTree "Fensterart (Variante des Multifunktionsschalters) = " & window.Type, theindex
  1426.     AddPropToTree "Fensterbreite = " & window.Width, theindex
  1427.     AddPropToTree "Fensterh÷he = " & window.Height, theindex
  1428.     AddPropToTree "zur gegenⁿberliegenden Seite ÷ffnen? = " & window.OpensInwards, theindex
  1429.     AddPropToTree "Name des Fenstertyps = " & ArConEXE.GetRoofWindowName(window.Type), theindex
  1430.     AddPropToTree "Bemerkung = " & window.Remark, theindex
  1431.     AddPropToTree "FensterflΣche = " & window.area, theindex
  1432.     AddPropToTree "Formel fⁿr FensterflΣche = " & window.AreaFormula, theindex
  1433.     
  1434.     OneWindowConstructionToTree "Konstruktionsdaten", window.Construction, theindex
  1435.     
  1436.   Else
  1437.     AddPropToTree s & " ist NOTHING !!!", ParentIndex
  1438.   End If
  1439.   RekLevel = RekLevel - 1
  1440. End Sub
  1441.  
  1442. Private Sub AllWindowsToTree(s As String, Container As Object, ParentIndex As Integer, recurse As Boolean)
  1443.   Dim theindex As Integer
  1444.   If RekLevel > MaxRekLevel Then Exit Sub
  1445.   RekLevel = RekLevel + 1
  1446.   If recurse Then
  1447.     theindex = AktIndex
  1448.     AddChildToTree s & " (Anzahl: " & Container.Windows.Count & ")", ParentIndex, AktIndex
  1449.     Dim o As Object
  1450.     Dim i As Integer
  1451.     i = 1
  1452.     For Each o In Container.Windows
  1453.       If TypeOf o Is RoofWindow Then
  1454.         OneRoofWindowToTree "Fenster Nummer " & i, o, theindex, True
  1455.       Else
  1456.         OneWindowToTree "Fenster Nummer " & i, o, theindex, True
  1457.       End If
  1458.       i = i + 1
  1459.     Next
  1460.   Else
  1461.     AddPropToTree s & " enthΣlt " & Container.Windows.Count & " Elemente.", ParentIndex
  1462.   End If
  1463.   RekLevel = RekLevel - 1
  1464. End Sub
  1465.  
  1466. Private Sub OneDoorToTree(s As String, door As Object, ParentIndex As Integer, recurse As Boolean)
  1467.   Dim theindex As Integer
  1468.   If RekLevel > MaxRekLevel Then Exit Sub
  1469.   RekLevel = RekLevel + 1
  1470.   If Not door Is Nothing Then
  1471.     theindex = AktIndex
  1472.     AddChildToTree s, ParentIndex, AktIndex
  1473.  
  1474.     OneTextureToTree "Textur der Zarge", door.FrameTexture, theindex, False
  1475.     OneTextureToTree "Textur des linken /einzigen Tⁿrflⁿgels", door.LeftWingTexture, theindex, False
  1476.     OneTextureToTree "Textur des rechten Tⁿrflⁿgels bei zweiflⁿgeligen Tⁿren", door.RightWingTexture, theindex, False
  1477.     OneWallToTree "Wandobjekt, in dem die Tⁿr 'sitzt'", door.wall, theindex, False
  1478.     OneWallSegmentToTree "erstes Wandseitenobjekt, in dem die Tⁿr 'sitzt'", door.LeftSegment, theindex, False
  1479.     OneWallSegmentToTree "zweites Wandseitenobjekt, in dem die Tⁿr 'sitzt'", door.RightSegment, theindex, False
  1480.  
  1481.     AddPropToTree "Tⁿrtyp (Variante des Multifunktionsschalters) = " & door.Type, theindex
  1482.     AddPropToTree "Art des linken Flⁿgels = " & door.LeftWingType, theindex
  1483.     AddPropToTree "Art des rechten Flⁿgels = " & door.RightWingType, theindex
  1484.     AddPropToTree "╓ffnungswinkel des linken Flⁿgels = " & door.LeftWingAngle, theindex
  1485.     AddPropToTree "╓ffnungswinkel des rechten Flⁿgels = " & door.RightWingAngle, theindex
  1486.     AddPropToTree "Breite der Tⁿr = " & door.Width, theindex
  1487.     AddPropToTree "H÷he der Tⁿr = " & door.Height, theindex
  1488.     AddPropToTree "zur gegenⁿberliegenden Seite ÷ffnend? = " & door.OpensInwards, theindex
  1489.     AddPropToTree "links angeschlagen? = " & door.HungLeft, theindex
  1490.     AddPropToTree "Name des Tⁿrtyps = " & ArConEXE.GetDoorName(door.Type), theindex
  1491.     AddPropToTree "Bemerkung = " & door.Remark, theindex
  1492.     AddPropToTree "TⁿrflΣche = " & door.area, theindex
  1493.     AddPropToTree "Formel fⁿr TⁿrflΣche = " & door.AreaFormula, theindex
  1494.     
  1495.     Dim pol1 As ArCon.Point2DCollection, pol2 As ArCon.Point2DCollection
  1496.     Dim Depth1 As Single, Depth2 As Single
  1497.     Dim Points As String, p As ArCon.Point2D
  1498.  
  1499. #If ArConVersion >= 400 Then
  1500.     If door.GetPolygons(pol1, pol2, Depth1, Depth2) Then
  1501.         AddPropToTree "Tiefe des Lochs auf der 1. Seite = " & Depth1, theindex
  1502.         AddPropToTree "Tiefe des Lochs auf der 2. Seite = " & Depth2, theindex
  1503.         Points = ""
  1504.         For Each p In pol1
  1505.             If Points <> "" Then Points = Points + ", "
  1506.             Points = Points + "(" & p.x & "/" & p.y & ")"
  1507.         Next
  1508.         AddPropToTree "Polygon des Lochs auf der 1. Seite = " & Points, theindex
  1509.         Points = ""
  1510.         For Each p In pol2
  1511.             If Points <> "" Then Points = Points + ", "
  1512.             Points = Points + "(" & p.x & "/" & p.y & ")"
  1513.         Next
  1514.         AddPropToTree "Polygon des Lochs auf der 2. Seite = " & Points, theindex
  1515.     End If
  1516. #End If
  1517.  
  1518. 'methods:
  1519. '"Position der Tⁿr lesen (Was ist mit schreiben???)")] boolean GetPos(double* X, double* Y);
  1520.  
  1521.   Else
  1522.     AddPropToTree s & " ist NOTHING !!!", ParentIndex
  1523.   End If
  1524.   RekLevel = RekLevel - 1
  1525. End Sub
  1526.  
  1527.  
  1528. Private Sub AllDoorsToTree(s As String, Container As Object, ParentIndex As Integer, recurse As Boolean)
  1529.   Dim theindex As Integer
  1530.   If RekLevel > MaxRekLevel Then Exit Sub
  1531.   RekLevel = RekLevel + 1
  1532.   If recurse Then
  1533.     theindex = AktIndex
  1534.     AddChildToTree s & " (Anzahl: " & Container.Doors.Count & ")", ParentIndex, AktIndex
  1535.     Dim o As Object
  1536.     Dim i As Integer
  1537.     i = 1
  1538.     For Each o In Container.Doors
  1539.       OneDoorToTree "Tⁿr Nummer " & i, o, theindex, True
  1540.       i = i + 1
  1541.     Next
  1542.   Else
  1543.     AddPropToTree s & " enthΣlt " & Container.Doors.Count & " Elemente.", ParentIndex
  1544.   End If
  1545.   RekLevel = RekLevel - 1
  1546. End Sub
  1547.  
  1548.  
  1549. Private Sub OneTextureToTree(s As String, texture As ArCon.texture, ParentIndex As Integer, recurse As Boolean)
  1550.   Dim theindex As Integer
  1551.   If RekLevel > MaxRekLevel Then Exit Sub
  1552.   RekLevel = RekLevel + 1
  1553.   If Not texture Is Nothing Then
  1554.     theindex = AktIndex
  1555.     AddChildToTree s, ParentIndex, AktIndex
  1556.  
  1557.     AddPropToTree "soll die Textur verwendet werden? = " & texture.UseTexture, theindex
  1558.     AddPropToTree "konstante Farbe und Texturfarbe mischen? = " & texture.MixColorAndTexture, theindex
  1559.     AddPropToTree "konstante Farbe = " & texture.Color, theindex
  1560.     AddPropToTree "Gr÷▀e der Textur in x-Richtung = " & texture.xRaport, theindex
  1561.     AddPropToTree "Gr÷▀e der Textur in y-Richtung = " & texture.yRaport, theindex
  1562.     AddPropToTree "Drehwinkel fⁿr Textur = " & texture.Angle, theindex
  1563.     AddPropToTree "Breite, wenn nicht die der Bitmap-Datei = " & texture.Width, theindex
  1564.     AddPropToTree "H÷he, wenn nicht die der Bitmap-Datei = " & texture.Height, theindex
  1565.     AddPropToTree "in Bitmap-Datei gespeicherte Gr÷▀e verwenden? = " & texture.UseOriginalSize, theindex
  1566.     AddPropToTree "Dateiname der Textur (inkl. Pfad, ggfs. mit '>') = " & texture.Name, theindex
  1567.  
  1568.   Else
  1569.     AddPropToTree s & " ist NOTHING !!!", ParentIndex
  1570.   End If
  1571.   RekLevel = RekLevel - 1
  1572. End Sub
  1573.  
  1574. Private Sub AllTexturesToTree(s As String, Container As Object, ParentIndex As Integer, recurse As Boolean)
  1575.   Dim theindex As Integer
  1576.   If RekLevel > MaxRekLevel Then Exit Sub
  1577.   RekLevel = RekLevel + 1
  1578.   If recurse Then
  1579.     theindex = AktIndex
  1580.     AddChildToTree s & " (Anzahl: " & Container.Textures.Count & ")", ParentIndex, AktIndex
  1581.     Dim o As Object
  1582.     Dim i As Integer
  1583.     i = 1
  1584.     For Each o In Container.Textures
  1585.       OneTextureToTree "Textur Nummer " & i, o, theindex, True
  1586.       i = i + 1
  1587.     Next
  1588.   Else
  1589.     AddPropToTree s & " enthΣlt " & Container.Textures.Count & " Elemente.", ParentIndex
  1590.   End If
  1591.   RekLevel = RekLevel - 1
  1592. End Sub
  1593.  
  1594. Private Sub OneChimneyToTree(s As String, chimney As Object, ParentIndex As Integer, recurse As Boolean)
  1595.   Dim theindex As Integer
  1596.   If RekLevel > MaxRekLevel Then Exit Sub
  1597.   RekLevel = RekLevel + 1
  1598.   If Not chimney Is Nothing Then
  1599.     theindex = AktIndex
  1600.     AddChildToTree s, ParentIndex, AktIndex
  1601.  
  1602.     OneStoryToTree "Gescho▀, in dem der Schornstein liegt", chimney.story, theindex, False
  1603.     OneTextureToTree "verwendete Textur", chimney.texture, theindex, False
  1604.  
  1605.     AddPropToTree "Art des Schornsteins (Variante des Multifunktionsschalters) = " & chimney.Type, theindex
  1606.     AddPropToTree "Tiefe = " & chimney.Thickness, theindex
  1607.     AddPropToTree "Breite = " & chimney.Width, theindex
  1608.     AddPropToTree "H÷he, wenn nicht bis zur Decke = " & chimney.Height, theindex
  1609.     AddPropToTree "Drehwinkel = " & chimney.Angle, theindex
  1610.     AddPropToTree "Schornstein bis zur Decke? = " & chimney.ToCeiling, theindex
  1611.     AddPropToTree "Name des Schornsteintyps = " & ArConEXE.GetChimneyName(chimney.Type), theindex
  1612.     AddPropToTree "Bemerkung = " & chimney.Remark, theindex
  1613. ' methods:
  1614. '  "Position des Schornsteines lesen")] boolean GetPos(double* X, double* Y);
  1615.  
  1616.   Else
  1617.     AddPropToTree s & " ist NOTHING !!!", ParentIndex
  1618.   End If
  1619.   RekLevel = RekLevel - 1
  1620. End Sub
  1621.  
  1622. Private Sub AllChimneiesToTree(s As String, Container As Object, ParentIndex As Integer, recurse As Boolean)
  1623.   Dim theindex As Integer
  1624.   If RekLevel > MaxRekLevel Then Exit Sub
  1625.   RekLevel = RekLevel + 1
  1626.   If recurse Then
  1627.     theindex = AktIndex
  1628.     AddChildToTree s & " (Anzahl: " & Container.Chimneys.Count & ")", ParentIndex, AktIndex
  1629.     Dim o As Object
  1630.     Dim i As Integer
  1631.     i = 1
  1632.     For Each o In Container.Chimneys
  1633.       OneChimneyToTree "Schornstein Nummer " & i, o, theindex, True
  1634.       i = i + 1
  1635.     Next
  1636.   Else
  1637.     AddPropToTree s & " enthΣlt " & Container.Chimneys.Count & " Elemente.", ParentIndex
  1638.   End If
  1639.   RekLevel = RekLevel - 1
  1640. End Sub
  1641.  
  1642. Private Sub OneSupportToTree(s As String, support As ArCon.support, ParentIndex As Integer, recurse As Boolean)
  1643.   Dim theindex As Integer
  1644.   If RekLevel > MaxRekLevel Then Exit Sub
  1645.   RekLevel = RekLevel + 1
  1646.   If Not support Is Nothing Then
  1647.     theindex = AktIndex
  1648.     AddChildToTree s, ParentIndex, AktIndex
  1649.  
  1650.     OneStoryToTree "Gescho▀, in dem die Stⁿtze liegt", support.story, theindex, False
  1651.     OneTextureToTree "verwendete Textur", support.texture, theindex, False
  1652.  
  1653.     AddPropToTree "Art der Stⁿtze (Variante des Multifunktionsschalters) = " & support.Type, theindex
  1654.     AddPropToTree "Tiefe = " & support.Thickness, theindex
  1655.     AddPropToTree "Breite = " & support.Width, theindex
  1656.     AddPropToTree "H÷he, wenn nicht bis zur Decke = " & support.Height, theindex
  1657.     AddPropToTree "Drehwinkel = " & support.Angle, theindex
  1658.     AddPropToTree "Stⁿtze bis zur Decke? = " & support.ToCeiling, theindex
  1659.     AddPropToTree "Name des Stⁿtzentyps = " & ArConEXE.GetSupportName(support.Type), theindex
  1660.     AddPropToTree "Bemerkung = " & support.Remark, theindex
  1661.     
  1662.     Dim x As Single, y As Single
  1663.     support.GetPos x, y
  1664.     AddPropToTree "Position: x = " & x & ", y = " & y, theindex
  1665.  
  1666.   Else
  1667.     AddPropToTree s & " ist NOTHING !!!", ParentIndex
  1668.   End If
  1669.   RekLevel = RekLevel - 1
  1670. End Sub
  1671.  
  1672. Private Sub AllSupportsToTree(s As String, Container As Object, ParentIndex As Integer, recurse As Boolean)
  1673.   Dim theindex As Integer
  1674.   If RekLevel > MaxRekLevel Then Exit Sub
  1675.   RekLevel = RekLevel + 1
  1676.   If recurse Then
  1677.     theindex = AktIndex
  1678.     AddChildToTree s & " (Anzahl: " & Container.Supports.Count & ")", ParentIndex, AktIndex
  1679.     Dim o As Object
  1680.     Dim i As Integer
  1681.     i = 1
  1682.     For Each o In Container.Supports
  1683.       OneSupportToTree "Stⁿtze Nummer " & i, o, theindex, True
  1684.       i = i + 1
  1685.     Next
  1686.   Else
  1687.     AddPropToTree s & " enthΣlt " & Container.Supports.Count & " Elemente.", ParentIndex
  1688.   End If
  1689.   RekLevel = RekLevel - 1
  1690. End Sub
  1691.  
  1692. Private Sub OneCeilingToTree(s As String, ceiling As Object, ParentIndex As Integer, recurse As Boolean)
  1693.   Dim theindex As Integer
  1694.   If RekLevel > MaxRekLevel Then Exit Sub
  1695.   RekLevel = RekLevel + 1
  1696.   If Not ceiling Is Nothing Then
  1697.     theindex = AktIndex
  1698.     AddChildToTree s, ParentIndex, AktIndex
  1699.  
  1700.     OneTextureToTree "Textur der Unterseite", ceiling.LowerSurfaceTexture, theindex, False
  1701.     OneTextureToTree "Textur der Oberseite", ceiling.UpperSurfaceTexture, theindex, False
  1702.     OneTextureToTree "Textur der SeitenflΣchen", ceiling.EdgeTexture, theindex, False
  1703.     OnePolygonToTree "Umrandung der Deckenplatte", ceiling.polygon, theindex, False
  1704.  
  1705.   Else
  1706.     AddPropToTree s & " ist NOTHING !!!", ParentIndex
  1707.   End If
  1708.   RekLevel = RekLevel - 1
  1709. End Sub
  1710.  
  1711. Private Sub AllCeilingsToTree(s As String, Container As Object, ParentIndex As Integer, recurse As Boolean)
  1712.   Dim theindex As Integer
  1713.   If RekLevel > MaxRekLevel Then Exit Sub
  1714.   RekLevel = RekLevel + 1
  1715.   If recurse Then
  1716.     theindex = AktIndex
  1717.     AddChildToTree s & " (Anzahl: " & Container.Ceilings.Count & ")", ParentIndex, AktIndex
  1718.     Dim o As Object
  1719.     Dim i As Integer
  1720.     i = 1
  1721.     For Each o In Container.Ceilings
  1722.       OneCeilingToTree "Deckenplatte Nummer " & i, o, theindex, True
  1723.       i = i + 1
  1724.     Next
  1725.   Else
  1726.     AddPropToTree s & " enthΣlt " & Container.Ceilings.Count & " Elemente.", ParentIndex
  1727.   End If
  1728.   RekLevel = RekLevel - 1
  1729. End Sub
  1730.  
  1731. Private Sub OneDimensionToTree(s As String, dimension As Object, ParentIndex As Integer, recurse As Boolean)
  1732.   Dim theindex As Integer
  1733.   If RekLevel > MaxRekLevel Then Exit Sub
  1734.   RekLevel = RekLevel + 1
  1735.   If Not dimension Is Nothing Then
  1736.     theindex = AktIndex
  1737.     AddChildToTree s, ParentIndex, AktIndex
  1738.  
  1739.     AddPropToTree "Art der Beschriftung (Variante des Multifunktionsknopfes) = " & dimension.Type, theindex
  1740.     AddPropToTree "Anzahl Nachkommastellen bei Ausgabe = " & dimension.Decimals, theindex
  1741.     AddPropToTree "Abstand der Referenzpunkte von der Ma▀linie = " & dimension.Distance, theindex
  1742.     AddPropToTree "Architektengerecht?  = " & dimension.Architektengerecht, theindex
  1743.  
  1744. ' methods:
  1745. ' "Die beiden Ma▀-Punkte")] boolean GetPos(double* X1, double* Y1, double* X2, double* Y2);
  1746.  
  1747.   Else
  1748.     AddPropToTree s & " ist NOTHING !!!", ParentIndex
  1749.   End If
  1750.   RekLevel = RekLevel - 1
  1751. End Sub
  1752.  
  1753. Private Sub AllDimensionsToTree(s As String, Container As Object, ParentIndex As Integer, recurse As Boolean)
  1754.   Dim theindex As Integer
  1755.   If RekLevel > MaxRekLevel Then Exit Sub
  1756.   RekLevel = RekLevel + 1
  1757.   If recurse Then
  1758.     theindex = AktIndex
  1759.     AddChildToTree s & " (Anzahl: " & Container.Dimensions.Count & ")", ParentIndex, AktIndex
  1760.     Dim o As Object
  1761.     Dim i As Integer
  1762.     i = 1
  1763.     For Each o In Container.Dimensions
  1764.       OneDimensionToTree "Verma▀un Nummer " & i, o, theindex, True
  1765.       i = i + 1
  1766.     Next
  1767.   Else
  1768.     AddPropToTree s & " enthΣlt " & Container.Dimensions.Count & " Elemente.", ParentIndex
  1769.   End If
  1770.   RekLevel = RekLevel - 1
  1771. End Sub
  1772.  
  1773. Private Sub OneGuideToTree(s As String, guide As Object, ParentIndex As Integer, recurse As Boolean)
  1774.   Dim theindex As Integer
  1775.   If RekLevel > MaxRekLevel Then Exit Sub
  1776.   RekLevel = RekLevel + 1
  1777.   If Not guide Is Nothing Then
  1778.     theindex = AktIndex
  1779.     AddChildToTree s, ParentIndex, AktIndex
  1780.  
  1781.     OneStoryToTree "Geschosse, in dem die Hilfslinie 'sitzt'", guide.story, theindex, recurse
  1782.  
  1783.  
  1784.     AddPropToTree "Farbe der Hilfslinien = " & guide.Color, theindex
  1785.     AddPropToTree "Linienart = " & guide.DrawStyle, theindex
  1786.     AddPropToTree "Hilfsgerade oder -Strecke? = " & guide.Endless, theindex
  1787. 'methods:
  1788. ' "Position der Hilfslinie lesen = "  boolean GetPos(double* X1, double* Y1, double* X2, double* Y2)
  1789.  
  1790.   Else
  1791.     AddPropToTree s & " ist NOTHING !!!", ParentIndex
  1792.   End If
  1793.   RekLevel = RekLevel - 1
  1794. End Sub
  1795.  
  1796. Private Sub AllGuidesToTree(s As String, Container As Object, ParentIndex As Integer, recurse As Boolean)
  1797.   Dim theindex As Integer
  1798.   If RekLevel > MaxRekLevel Then Exit Sub
  1799.   RekLevel = RekLevel + 1
  1800.   If recurse Then
  1801.     theindex = AktIndex
  1802.     AddChildToTree s & " (Anzahl: " & Container.Guides.Count & ")", ParentIndex, AktIndex
  1803.     Dim o As Object
  1804.     Dim i As Integer
  1805.     i = 1
  1806.     For Each o In Container.Guides
  1807.         OneGuideToTree "Hilfslinie Nummer " & i, o, theindex, True
  1808.         i = i + 1
  1809.     Next
  1810.   Else
  1811.     AddPropToTree s & " enthΣlt " & Container.Guides.Count & " Elemente.", ParentIndex
  1812.   End If
  1813.   RekLevel = RekLevel - 1
  1814. End Sub
  1815.  
  1816. Private Sub OneViewToTree(s As String, v As ArCon.View, ParentIndex As Integer, recurse As Boolean)
  1817.   Dim theindex As Integer
  1818.   If RekLevel > MaxRekLevel Then Exit Sub
  1819.   RekLevel = RekLevel + 1
  1820.   If Not v Is Nothing Then
  1821.     theindex = AktIndex
  1822.     AddChildToTree s, ParentIndex, AktIndex
  1823.     AddPropToTree "Titel = " & v.Caption, theindex
  1824.     AddPropToTree "Ist aktiv = " & v.Active, theindex
  1825.     OneCutToTree "Schnitt dieser Ansicht", v.Cut, theindex, True
  1826.     AddPropToTree "H÷he = " & v.Height, theindex
  1827.     AddPropToTree "Breite = " & v.Width, theindex
  1828.     AddPropToTree "Obere Seite = " & v.Top, theindex
  1829.     AddPropToTree "Linke Seite = " & v.Left, theindex
  1830.     AddPropToTree "Ist im Durchwander-Modus = " & v.Walking, theindex
  1831.     AddPropToTree "ViewerID = " & v.Viewer, theindex
  1832.     AddPropToTree "Zeit/Beleuchtungsmodus = " & v.TimeOfDay, theindex
  1833.   Else
  1834.     AddPropToTree s & " ist NOTHING !!!", ParentIndex
  1835.   End If
  1836.   RekLevel = RekLevel - 1
  1837. End Sub
  1838.  
  1839. Private Sub OneCutToTree(s As String, c As ArCon.Cut, ParentIndex As Integer, recurse As Boolean)
  1840.   Dim theindex As Integer
  1841.   If RekLevel > MaxRekLevel Then Exit Sub
  1842.   RekLevel = RekLevel + 1
  1843.   If Not c Is Nothing Then
  1844.     theindex = AktIndex
  1845.     AddChildToTree s, ParentIndex, AktIndex
  1846.     OneStoryToTree "Gescho▀, in dem der Schnitt 'sitzt'", c.story, theindex, recurse
  1847.     Dim x1 As Single, y1 As Single, x2 As Single, y2 As Single
  1848.     c.GetReferenceLine x1, y1, x2, y2
  1849.     AddPropToTree "Referenzlinie = (" & x1 & "/" & y1 & ") - (" & x2 & "/" & y2 & ")", theindex
  1850.   Else
  1851.     AddPropToTree s & " ist NOTHING !!!", ParentIndex
  1852.   End If
  1853.   RekLevel = RekLevel - 1
  1854. End Sub
  1855.  
  1856. Private Sub OneLabelingToTree(s As String, labeling As Object, ParentIndex As Integer, recurse As Boolean)
  1857.   Dim theindex As Integer
  1858.   If RekLevel > MaxRekLevel Then Exit Sub
  1859.   RekLevel = RekLevel + 1
  1860.   If Not labeling Is Nothing Then
  1861.     theindex = AktIndex
  1862.     AddChildToTree s, ParentIndex, AktIndex
  1863.  
  1864.     OneStoryToTree "Gescho▀, in dem die Beschriftung 'sitzt'", labeling.story, theindex, recurse
  1865.  
  1866.  
  1867.     OneFontToTree "Schriftart der Beschriftung", labeling.font, theindex, False
  1868.     AddPropToTree "Beschriftungstext = " & labeling.Text, theindex
  1869.     AddPropToTree "Textfarbe = " & labeling.Color, theindex
  1870.     AddPropToTree "Drehwinkel = " & labeling.Angle, theindex
  1871.  
  1872. ' methods:
  1873. ' "Linke obere Ecke der Beschriftung")] boolean GetPos(double* X1, double* Y1);
  1874.  
  1875.  
  1876.   Else
  1877.     AddPropToTree s & " ist NOTHING !!!", ParentIndex
  1878.   End If
  1879.   RekLevel = RekLevel - 1
  1880. End Sub
  1881.  
  1882. Private Sub AllViewsToTree(s As String, liste As ViewCollection, ParentIndex As Integer, recurse As Boolean)
  1883.   Dim theindex As Integer
  1884.   If RekLevel > MaxRekLevel Then Exit Sub
  1885.   RekLevel = RekLevel + 1
  1886.   If recurse Then
  1887.     theindex = AktIndex
  1888.     AddChildToTree s & " (Anzahl: " & liste.Count & ")", ParentIndex, AktIndex
  1889.     Dim v As ArCon.View
  1890.     Dim i As Integer
  1891.     i = 1
  1892.     For Each v In liste
  1893.       OneViewToTree "Ansicht Nummer " & i, v, theindex, True
  1894.       i = i + 1
  1895.     Next
  1896.   Else
  1897.     AddPropToTree s & " enthΣlt " & liste.Count & " Elemente.", ParentIndex
  1898.   End If
  1899.   RekLevel = RekLevel - 1
  1900. End Sub
  1901.  
  1902. Private Sub AllCutsToTree(s As String, Container As Object, ParentIndex As Integer, recurse As Boolean)
  1903.   Dim theindex As Integer
  1904.   If RekLevel > MaxRekLevel Then Exit Sub
  1905.   RekLevel = RekLevel + 1
  1906.   Dim schnitte As ArCon.CutCollection
  1907.   Set schnitte = Container.Cuts
  1908.   If recurse Then
  1909.     theindex = AktIndex
  1910.     AddChildToTree s & " (Anzahl: " & schnitte.Count & ")", ParentIndex, AktIndex
  1911.     Dim c As ArCon.Cut
  1912.     Dim i As Integer
  1913.     i = 1
  1914.     For Each c In schnitte
  1915.       OneCutToTree "Schnitt Nummer " & i, c, theindex, True
  1916.       i = i + 1
  1917.     Next
  1918.   Else
  1919.     AddPropToTree s & " enthΣlt " & schnitte.Count & " Elemente.", ParentIndex
  1920.   End If
  1921.   RekLevel = RekLevel - 1
  1922. End Sub
  1923.  
  1924. Private Sub AllLabelingsToTree(s As String, Container As Object, ParentIndex As Integer, recurse As Boolean)
  1925.   Dim theindex As Integer
  1926.   If RekLevel > MaxRekLevel Then Exit Sub
  1927.   RekLevel = RekLevel + 1
  1928.   If recurse Then
  1929.     theindex = AktIndex
  1930.     AddChildToTree s & " (Anzahl: " & Container.Labelings.Count & ")", ParentIndex, AktIndex
  1931.     Dim o As Object
  1932.     Dim i As Integer
  1933.     i = 1
  1934.     For Each o In Container.Labelings
  1935.       OneLabelingToTree "Beschrifung Nummer " & i, o, theindex, True
  1936.       i = i + 1
  1937.     Next
  1938.   Else
  1939.     AddPropToTree s & " enthΣlt " & Container.Labelings.Count & " Elemente.", ParentIndex
  1940.   End If
  1941.   RekLevel = RekLevel - 1
  1942. End Sub
  1943.  
  1944. Private Sub OneHedgeToTree(s As String, hedge As Object, ParentIndex As Integer, recurse As Boolean)
  1945.   Dim theindex As Integer
  1946.   If RekLevel > MaxRekLevel Then Exit Sub
  1947.   RekLevel = RekLevel + 1
  1948.   If Not hedge Is Nothing Then
  1949.     theindex = AktIndex
  1950.     AddChildToTree s, ParentIndex, AktIndex
  1951.  
  1952.     AddPropToTree "Dateiname der Umrandungsobjekte = " & hedge.FileName, theindex
  1953.     AddPropToTree "Umrandungsobjekte aneinandergereiht? = " & hedge.Continuous, theindex
  1954.     AddPropToTree "Abstand zwischen zwei Umrandungsobjekten = " & hedge.Distance, theindex
  1955.     AddPropToTree "Gr÷▀e so anpassen, da▀ LΣnge mit Grundstⁿckskante ⁿbereinstimmt? = " & hedge.ScaleToFit, theindex
  1956.  
  1957.   Else
  1958.     AddPropToTree s & " ist NOTHING !!!", ParentIndex
  1959.   End If
  1960.   RekLevel = RekLevel - 1
  1961. End Sub
  1962.  
  1963. Private Sub AllHedgesToTree(s As String, Container As Object, ParentIndex As Integer, recurse As Boolean)
  1964.   Dim theindex As Integer
  1965.   If RekLevel > MaxRekLevel Then Exit Sub
  1966.   RekLevel = RekLevel + 1
  1967.   If recurse Then
  1968.     theindex = AktIndex
  1969.     AddChildToTree s & " (Anzahl: " & Container.Hedges.Count & ")", ParentIndex, AktIndex
  1970.     Dim o As Object
  1971.     Dim i As Integer
  1972.     i = 1
  1973.     For Each o In Container.Hedges
  1974.       OneHedgeToTree "Umrandung Nummer " & i, o, theindex, True
  1975.       i = i + 1
  1976.     Next
  1977.   Else
  1978.     AddPropToTree s & " enthΣlt " & Container.Hedges.Count & " Elemente.", ParentIndex
  1979.   End If
  1980.   RekLevel = RekLevel - 1
  1981. End Sub
  1982.  
  1983. Private Sub OneCeilingOpeningToTree(s As String, ceilingopening As Object, ParentIndex As Integer, recurse As Boolean)
  1984.   Dim theindex As Integer
  1985.   If RekLevel > MaxRekLevel Then Exit Sub
  1986.   RekLevel = RekLevel + 1
  1987.   If Not ceilingopening Is Nothing Then
  1988.     theindex = AktIndex
  1989.     AddChildToTree s, ParentIndex, AktIndex
  1990.     
  1991.     OnePolygonToTree "Kontur der Deckenaussparung", ceilingopening.polygon, theindex, False
  1992.  
  1993.   Else
  1994.     AddPropToTree s & " ist NOTHING !!!", ParentIndex
  1995.   End If
  1996.   RekLevel = RekLevel - 1
  1997. End Sub
  1998.  
  1999. Private Sub AllCeilingOpeningsToTree(s As String, Container As Object, ParentIndex As Integer, recurse As Boolean)
  2000.   Dim theindex As Integer
  2001.   If RekLevel > MaxRekLevel Then Exit Sub
  2002.   RekLevel = RekLevel + 1
  2003.   If recurse Then
  2004.     theindex = AktIndex
  2005.     AddChildToTree s & " (Anzahl: " & Container.CeilingOpenings.Count & ")", ParentIndex, AktIndex
  2006.     Dim o As Object
  2007.     Dim i As Integer
  2008.     i = 1
  2009.     For Each o In Container.CeilingOpenings
  2010.       OneCeilingOpeningToTree "Deckenaussparung Nummer " & i, o, theindex, True
  2011.       i = i + 1
  2012.     Next
  2013.   Else
  2014.     AddPropToTree s & " enthΣlt " & Container.CeilingOpenings.Count & " Elemente.", ParentIndex
  2015.   End If
  2016.   RekLevel = RekLevel - 1
  2017. End Sub
  2018.  
  2019. Private Sub OneStairCaseToTree(s As String, staircase As ArCon.staircase, ParentIndex As Integer, recurse As Boolean)
  2020.   Dim theindex As Integer
  2021.   If RekLevel > MaxRekLevel Then Exit Sub
  2022.   RekLevel = RekLevel + 1
  2023.   If Not staircase Is Nothing Then
  2024.     theindex = AktIndex
  2025.     AddChildToTree s, ParentIndex, AktIndex
  2026.  
  2027.     OneStoryToTree "Gescho▀, in dem die Treppe definiert ist", staircase.story, theindex, False
  2028.  
  2029.     AddPropToTree "fⁿr Dreipunkteingabe: x-Koordinate Punkt 1 = " & staircase.x1, theindex
  2030.     AddPropToTree "fⁿr Dreipunkteingabe: y-Koordinate Punkt 1 = " & staircase.y1, theindex
  2031.     AddPropToTree "fⁿr Dreipunkteingabe: x-Koordinate Punkt 2 = " & staircase.x2, theindex
  2032.     AddPropToTree "fⁿr Dreipunkteingabe: y-Koordinate Punkt 2 = " & staircase.y2, theindex
  2033.     AddPropToTree "fⁿr Dreipunkteingabe: x-Koordinate Punkt 3 = " & staircase.X3, theindex
  2034.     AddPropToTree "fⁿr Dreipunkteingabe: y-Koordinate Punkt 3 = " & staircase.Y3, theindex
  2035.     AddPropToTree "Typ der Treppe (Variante des Multifunktionsschalters) = " & staircase.Type, theindex
  2036.     AddPropToTree "Auftrittsbreite = " & staircase.AuftrittsBreite, theindex
  2037.     AddPropToTree "Gelaenderh÷he links = " & staircase.GelaenderHoeheLinks, theindex
  2038.     AddPropToTree "GelΣnderh÷he rechts = " & staircase.GelaenderHoeheRechts, theindex
  2039.     AddPropToTree "GelΣnderlΣnge links = " & staircase.GelaenderLaengeLinks, theindex
  2040.     AddPropToTree "GelΣnderlΣnge rechts = " & staircase.GelaenderLaengeRechts, theindex
  2041.     AddPropToTree "Laufbreite au▀en = " & staircase.LaufBreiteAussen, theindex
  2042.     AddPropToTree "LauflΣnge = " & staircase.LaufLaenge, theindex
  2043.     AddPropToTree "Laufplattendicke = " & staircase.LaufPlattenDicke, theindex
  2044.     AddPropToTree "Steigung = " & staircase.Steigung, theindex
  2045.     
  2046.     ' 2. BV
  2047.     AddPropToTree "FlΣche unter der Treppe = " & staircase.FloorArea(True, 0.5, True, 1.5), theindex
  2048.     AllPointsToTree "Polygon unter der Treppe", staircase.FloorPolygon(True, 0.5, True, 1.5), theindex, True
  2049.     AllPoints3DToTree "3D Polygon unter der Treppe", staircase.FloorPolygon3D, theindex, True
  2050.     
  2051.     ' Texturindizes variieren je nach Treppentyp - fehlende ⁿberspringen
  2052.     On Error Resume Next
  2053.     AddPropToTree "Name der Handlauftextur = " & staircase.GetTexture(ACSTI_Handlauf), theindex
  2054.     AddPropToTree "Name der Stufentextur = " & staircase.GetTexture(ACSTI_Stufen), theindex
  2055.     AddPropToTree "Name der Sprossentextur = " & staircase.GetTexture(ACSTI_Sprossen), theindex
  2056.     AddPropToTree "Name der Belagtextur = " & staircase.GetTexture(ACSTI_Belag), theindex
  2057.     On Error GoTo 0
  2058.     
  2059.     ' Fⁿr polygonale Wendeltreppen k÷nnen wir noch mehr Details ermitteln
  2060.     Dim polyConstr As ArCon.PolygonWendelConstruction
  2061.     Set polyConstr = staircase.GetPolygonWendelConstruction
  2062.     If Not polyConstr Is Nothing Then
  2063.         OnePolyStairToTree "Details fⁿr polygonale Wendeltreppen", polyConstr, theindex, False
  2064.     End If
  2065.  
  2066.   Else
  2067.     AddPropToTree s & " ist NOTHING !!!", ParentIndex
  2068.   End If
  2069.   RekLevel = RekLevel - 1
  2070. End Sub
  2071.  
  2072. Private Sub OnePolyStairToTree(s As String, props As ArCon.PolygonWendelConstruction, ParentIndex As Integer, recurse As Boolean)
  2073.   Dim theindex As Integer
  2074.   If RekLevel > MaxRekLevel Then Exit Sub
  2075.   RekLevel = RekLevel + 1
  2076.   If Not props Is Nothing Then
  2077.     theindex = AktIndex
  2078.     AddChildToTree s, ParentIndex, AktIndex
  2079.     
  2080.     AddPropToTree "Achslage = " & props.Achslage, theindex
  2081.     AddPropToTree "Anzahl Steigungen = " & props.AnzahlSteigungen, theindex
  2082.     AddPropToTree "Auftrittsbreite = " & props.AuftrittsBreite, theindex
  2083.     AddPropToTree "Bauart = " & props.Bauart, theindex
  2084.     AddPropToTree "Fu▀laufBreite = " & props.FusslaufBreite, theindex
  2085.     AddPropToTree "Fu▀laufDicke = " & props.FusslaufDicke, theindex
  2086.     AddPropToTree "GelΣnderbauart = " & props.GelaenderBauart, theindex
  2087.     AddPropToTree "Breite des Handlaufs = " & props.HandlaufBreite, theindex
  2088.     AddPropToTree "Dicke des Handlaufs = " & props.HandlaufDicke, theindex
  2089.     AddPropToTree "Durchmesser des Handlaufs = " & props.HandlaufDurchmesser, theindex
  2090.     AddPropToTree "H÷he des Handlaufs = " & props.HandlaufHoehe, theindex
  2091.     AddPropToTree "Handlauf mit Knicken = " & props.HandlaufMitKnicken, theindex
  2092.     AddPropToTree "Querschnitt des Handlaufs = " & props.HandlaufQuerschnitt, theindex
  2093.     AddPropToTree "H÷he der Treppe = " & props.Hoehe, theindex
  2094.     AddPropToTree "Laufbreite au▀en = " & props.LaufBreiteAussen, theindex
  2095.     AddPropToTree "LauflΣnge = " & props.LaufLaenge, theindex
  2096.     AddPropToTree "Maximale Auslenkung links = " & props.MaximaleAuslenkungLinks, theindex
  2097.     AddPropToTree "Maximale Auslenkung rechts = " & props.MaximaleAuslenkungRechts, theindex
  2098.     AddPropToTree "Mit GelΣnder links = " & props.MitGelaenderLinks, theindex
  2099.     AddPropToTree "MitGelΣnder rechts = " & props.MitGelaenderRechts, theindex
  2100.     AddPropToTree "Mit Setzstufen = " & props.MitSetzStufen, theindex
  2101.     AddPropToTree "Mittlerer Fu▀laufabstand = " & props.MittlererFusslaufAbstand, theindex
  2102.     AddPropToTree "Niveau am Antritt = " & props.NiveauAmAntritt, theindex
  2103.     AddPropToTree "Breite der Pfosten = " & props.PfostenBreite, theindex
  2104.     AddPropToTree "Dicke der Pfosten = " & props.PfostenDicke, theindex
  2105.     AddPropToTree "Durchmesser der Pfosten = " & props.PfostenDurchmesser, theindex
  2106.     AddPropToTree "LΣnge der Pfosten = " & props.PfostenLaenge, theindex
  2107.     AddPropToTree "Name der Pfostenobjekte = " & props.PfostenObjektName, theindex
  2108.     AddPropToTree "Pfostenquerschnitt = " & props.PfostenQuerschnitt, theindex
  2109.     AddPropToTree "Schrittmass optimieren = " & props.SchrittMassOptimieren, theindex
  2110.     AddPropToTree "Breite der StΣbe = " & props.StabBreite, theindex
  2111.     AddPropToTree "Dicke der StΣbe = " & props.StabDicke, theindex
  2112.     AddPropToTree "Durchmesser der StΣbe= " & props.StabDurchmesser, theindex
  2113.     AddPropToTree "Maximaler Stababstand = " & props.StabMaximalerAbstand, theindex
  2114.     AddPropToTree "Stabquerschnitt = " & props.StabQuerschnitt, theindex
  2115.     AddPropToTree "Winkel am Antritt = " & props.WinkelAmAntritt, theindex
  2116.     AddPropToTree "Winkel am Austritt = " & props.WinkelAmAustritt, theindex
  2117.     
  2118.     AllPointsToTree "Liste der Polygonpunkte", props.GetPolygon, theindex, True
  2119.   End If
  2120. End Sub
  2121.  
  2122. Private Sub AllStaircasesToTree(s As String, Container As Object, ParentIndex As Integer, recurse As Boolean)
  2123.   Dim theindex As Integer
  2124.   If RekLevel > MaxRekLevel Then Exit Sub
  2125.   RekLevel = RekLevel + 1
  2126.   If recurse Then
  2127.     theindex = AktIndex
  2128.     AddChildToTree s & " (Anzahl: " & Container.Stairs.Count & ")", ParentIndex, AktIndex
  2129.     Dim o As Object
  2130.     Dim i As Integer
  2131.     i = 1
  2132.     For Each o In Container.Stairs
  2133.       OneStairCaseToTree "Treppe Nummer " & i, o, theindex, True
  2134.       i = i + 1
  2135.     Next
  2136.   Else
  2137.     AddPropToTree s & " enthΣlt " & Container.Stairs.Count & " Elemente.", ParentIndex
  2138.   End If
  2139.   RekLevel = RekLevel - 1
  2140. End Sub
  2141.  
  2142. Private Sub OneDwellingToTree(s As String, dwell As ArCon.Dwelling, ParentIndex As Integer, recurse As Boolean)
  2143.   Dim theindex As Integer
  2144.   If RekLevel > MaxRekLevel Then Exit Sub
  2145.   RekLevel = RekLevel + 1
  2146.   If Not dwell Is Nothing Then
  2147.     theindex = AktIndex
  2148.     AddChildToTree s, ParentIndex, AktIndex
  2149.     
  2150.     AddPropToTree "Name = " & dwell.Name, theindex
  2151.     AddPropToTree "Bemerkung = " & dwell.Remark, theindex
  2152.     AddPropToTree "Nicht zugeordnet = " & dwell.NotAssigned, theindex
  2153.     
  2154.     AllBuildingsToTree "Liste der GebΣude", dwell, theindex, False
  2155.     AllStoriesToTree "Liste der Stockwerke", dwell, theindex, False
  2156.     AllRoomsToTree "Liste der RΣume", dwell, theindex, False
  2157.   End If
  2158.   RekLevel = RekLevel - 1
  2159. End Sub
  2160.  
  2161. Private Sub OneIIBvSettingsToTree(s As String, stg As ArCon.IIBvSettings, ParentIndex As Integer, recurse As Boolean)
  2162.   Dim theindex As Integer
  2163.   If RekLevel > MaxRekLevel Then Exit Sub
  2164.   RekLevel = RekLevel + 1
  2165.   If Not stg Is Nothing Then
  2166.     theindex = AktIndex
  2167.     AddChildToTree s, ParentIndex, AktIndex
  2168.     
  2169.     AddPropToTree "Fenster addieren = " & stg.AddWindows, theindex
  2170.     AddPropToTree "Maximale ErkerflΣche = " & stg.MaxBayArea, theindex
  2171.     AddPropToTree "Maximale Treppenh÷he = " & stg.MaxStaircaseHeight, theindex
  2172.     AddPropToTree "Minimale StⁿtzenflΣche = " & stg.MinSupportArea, theindex
  2173.     AddPropToTree "Minimale Fenstertiefe = " & stg.MinWindowDepth, theindex
  2174.     AddPropToTree "H÷he der 1. H÷henlinie = " & stg.Niveau1, theindex
  2175.     AddPropToTree "H÷he der 2. H÷henlinie = " & stg.Niveau2, theindex
  2176.     Dim txt As String
  2177.     If stg.Staircases = AC_IIBV_STAIRCASE_IGNORE Then
  2178.         txt = "ignorieren"
  2179.     ElseIf stg.Staircases = AC_IIBV_STAIRCASE_LIKE_ROOFS Then
  2180.         txt = "wie DachflΣchen"
  2181.     ElseIf stg.Staircases = AC_IIBV_STAIRCASE_SUB_LOWER_THAN Then
  2182.         txt = "abziehen, wenn H÷he < minimale Treppenh÷he"
  2183.     Else
  2184.         txt = "unbekannter Code: " & stg.Staircases
  2185.     End If
  2186.     AddPropToTree "Art der Treppenberechnung = " & txt, theindex
  2187.     AddPropToTree "Erker abziehen = " & stg.SubBays, theindex
  2188.     AddPropToTree "Stⁿtzen abziehen = " & stg.SubSupports, theindex
  2189.     AddPropToTree "Rohbauma▀e verwenden = " & stg.UseCarcassMeasures, theindex
  2190.     AddPropToTree "1. H÷henlinie wird verwendet = " & stg.Used1, theindex
  2191.     AddPropToTree "2. H÷henlinie wird verwendet = " & stg.Used2, theindex
  2192.     AddPropToTree "1. H÷henlinie ist sichtbar = " & stg.Visible1, theindex
  2193.     AddPropToTree "2. H÷henlinie ist sichtbar = " & stg.Visible2, theindex
  2194.     AddPropToTree "Gewichtung unter der 1. H÷henlinie = " & stg.Weight1, theindex
  2195.     AddPropToTree "Gewichtung unter der 2. H÷henlinie = " & stg.Weight2, theindex
  2196.     AddPropToTree "Gewichtung ⁿber der 2. H÷henlinie = " & stg.WeightAbove, theindex
  2197.   End If
  2198.   RekLevel = RekLevel - 1
  2199. End Sub
  2200.  
  2201. Private Sub AllDwellingsToTree(s As String, dwells As DwellingCollection, ParentIndex As Integer, recurse As Boolean)
  2202.   Dim theindex As Integer
  2203.   If RekLevel > MaxRekLevel Then Exit Sub
  2204.   If dwells Is Nothing Then
  2205.     AddPropToTree s & " ist Nothing!!!", ParentIndex
  2206.     Exit Sub
  2207.   End If
  2208.   RekLevel = RekLevel + 1
  2209.   If recurse Then
  2210.     theindex = AktIndex
  2211.     AddChildToTree s & " (Anzahl: " & dwells.Count & ")", ParentIndex, AktIndex
  2212.     Dim dw As ArCon.Dwelling
  2213.     Dim i As Integer
  2214.     i = 1
  2215.     For Each dw In dwells
  2216.       OneDwellingToTree "Wohnung Nummer " & i, dw, theindex, True
  2217.       i = i + 1
  2218.     Next
  2219.   Else
  2220.     AddPropToTree s & " enthΣlt " & dwells.Count & " Elemente.", ParentIndex
  2221.   End If
  2222.   RekLevel = RekLevel - 1
  2223. End Sub
  2224.  
  2225. Private Sub ArConToTree()
  2226.   Dim PropIndex As Integer
  2227.   Dim StdIndex As Integer
  2228.   Dim ListIndex As Integer
  2229.   Dim ObjIndex As Integer
  2230.   Dim i As Integer
  2231.   
  2232.   ListIndex = 0
  2233.   PropIndex = 1
  2234.   StdIndex = 2
  2235.   ObjIndex = 3
  2236.   AktIndex = 4
  2237.   
  2238.   
  2239.   If UseLists.Value Then
  2240.     TreeView.Nodes.Add , tvwChild, "S" & CStr(ListIndex), "Auflistungen"
  2241.     AllBuildingsToTree "Liste aller GebΣude", ArConEXE, ListIndex, True
  2242.     AllTerrainsToTree "Liste aller Grundstⁿcke", ArConEXE, ListIndex, True
  2243.     AllGuidesToTree "Liste aller Hilfslinien", ArConEXE, ListIndex, True
  2244.     AllDimensionsToTree "Liste aller Bema▀ungen", ArConEXE, ListIndex, True
  2245.     AllLabelingsToTree "Liste aller Beschriftungen", ArConEXE, ListIndex, True
  2246.     AllCutsToTree "Liste aller Schnitte", ArConEXE, ListIndex, True
  2247.     AllViewsToTree "Liste der Ansichten", ArConEXE.Views, ListIndex, True
  2248.     AllDwellingsToTree "Liste der Wohnungen", ArConEXE.Dwellings, ListIndex, True
  2249.   End If
  2250.   
  2251.   If UseDefaults.Value Then
  2252.     TreeView.Nodes.Add , tvwChild, "S" & CStr(StdIndex), "Standardeinstellungen"
  2253.     For i = 0 To AC_MaxWallType
  2254.       OneWallToTree "Die Standardeinstellungen fⁿr Wandtyp " & Str(i), ArConEXE.GetDefaultWall(i), StdIndex, False
  2255.     Next
  2256.     For i = 0 To ArConEXE.AvailableDoors - 1
  2257.       OneDoorToTree "Die Standardeinstellungen fⁿr Tⁿrtyp " & Str(i), ArConEXE.GetDefaultDoor(i), StdIndex, False
  2258.     Next
  2259.     For i = 0 To AC_MaxTerrainType
  2260.       OneTerrainToTree "Die Standardeinstellungen fⁿr GelΣndetype " & Str(i), ArConEXE.GetDefaultTerrain(i), StdIndex, False
  2261.     Next
  2262.     OneLabelingToTree "Die Standardeinstellungen fⁿr Beschriftungen", ArConEXE.GetDefaultLabeling, StdIndex, False
  2263.     OneDimensionToTree "Die Standardeinstellungen fⁿr Bema▀ungen", ArConEXE.GetDefaultDimension, StdIndex, False
  2264.     OneGuideToTree "Die Standardeinstellungen fⁿr Hilfslinien", ArConEXE.GetDefaultGuide, StdIndex, False
  2265.     OneHoleToTree "Die Standardeinstellungen fⁿr Wandl÷cher", ArConEXE.GetDefaultHole, StdIndex, False
  2266.     
  2267.     OneIIBvSettingsToTree "Die Einstellungen fⁿr die 2. BV", ArConEXE.IIBvSettings(True), StdIndex, False
  2268.  
  2269.     For i = 0 To AC_MaxChimneyType
  2270.       OneChimneyToTree "Die Standardeinstellungen fⁿr Schornsteintyp " & Str(i), ArConEXE.GetDefaultChimney(i), StdIndex, False
  2271.     Next
  2272.     For i = 0 To AC_MaxSupportType
  2273.       OneSupportToTree "Die Standardeinstellungen fⁿr Stⁿtzentype " & Str(i), ArConEXE.GetDefaultSupport(i), StdIndex, False
  2274.     Next
  2275.     OneCeilingToTree "Die Standardeinstellungen fⁿr Deckenplatten", ArConEXE.GetDefaultCeiling, StdIndex, False
  2276.   End If
  2277.   
  2278.   If UseProps.Value Then
  2279.     TreeView.Nodes.Add , tvwChild, "S" & CStr(PropIndex), "Eigenschaften"
  2280.     OneBuildingToTree "Das aktuelle GebΣude", ArConEXE.CurrentBuilding, PropIndex, False
  2281.     OneStoryToTree "Das aktuelle Stockwerk", ArConEXE.CurrentStory, PropIndex, False
  2282.     OneTerrainToTree "UmgebungsgelΣnde", ArConEXE.GlobalTerrain, PropIndex, False
  2283.     TheProjectToTree "Aktuelles Projekt", ArConEXE.CurrentProject, PropIndex, False
  2284.     OneIIBvSettingsToTree "Einstellunge fⁿr 2. BV", ArConEXE.IIBvSettings(False), PropIndex, False
  2285.     AddPropToTree "ArCon Installationsverzeichnis " & ArConEXE.ArConDirectory, PropIndex
  2286.     AddPropToTree "Anzahl der verfⁿgbaren Fenstertypen " & ArConEXE.AvailableWindows, PropIndex
  2287.     AddPropToTree "Welche Hilfsmittel sind aktiviert? " & ArConEXE.state, PropIndex
  2288.     AddPropToTree "Aktueller Bearbeitungsmodus " & ArConEXE.Mode, PropIndex
  2289.     AddPropToTree "Anzahl der konstruierten Fenstertypen " & ArConEXE.ConstructedWindows, PropIndex
  2290.     AddPropToTree "ArCon.EXE lΣuft?" & ArConEXE.Running, PropIndex
  2291.     AddPropToTree "Interner Modus (undokumentiert) " & ArConEXE.InternalMode, PropIndex
  2292.     AddPropToTree "Menⁿ-ID des Eintrages, ⁿber den dieses Makro gestartet wurde " & ArConEXE.StartupMenuID, PropIndex
  2293.     AddPropToTree "Anzahl der verfⁿgbaren Tⁿrtypen " & ArConEXE.AvailableDoors, PropIndex
  2294.     AddPropToTree "Anzahl der verfⁿgbaren Treppentypen " & ArConEXE.AvailableStairCases, PropIndex
  2295.     AddPropToTree "Anzahl der verfⁿgbaren Treppenpfosten-Objekte " & ArConEXE.AvailablePfostenObjects, PropIndex
  2296.     For i = 0 To ArConEXE.AvailableWindows - 1
  2297.       If i < ArConEXE.ConstructedWindows Then
  2298.         AddPropToTree "Fensters Nr. " & Str(i) & " ist frei konstruierbar", PropIndex
  2299.       Else
  2300.         AddPropToTree "Name des Fensters Nr. " & Str(i) & ": " & ArConEXE.WindowName(i), PropIndex
  2301.       End If
  2302.     Next
  2303.     For i = 0 To ArConEXE.AvailableDoors - 1
  2304.       AddPropToTree "Name der Tⁿr Nr. " & Str(i) & ": " & ArConEXE.DoorName(i), PropIndex
  2305.     Next
  2306.     For i = 0 To ArConEXE.AvailableStairCases - 1
  2307.       AddPropToTree "Name des Treppentypes Nr. " & Str(i) & ": " & ArConEXE.GetStairCaseName(i), PropIndex
  2308.     Next
  2309.     For i = 0 To ArConEXE.AvailablePfostenObjects - 1
  2310.         AddPropToTree "Beschreibung des Pfostentyps Nr. " & Str(i) & ": " & ArConEXE.GetPfostenBeschreibung(i), PropIndex
  2311.         AddPropToTree "Name des Pfostenobjektes Nr. " & Str(i) & ": " & ArConEXE.GetPfostenObject(i), PropIndex
  2312.     Next
  2313.   End If
  2314.   
  2315.   If UseObjects.Value Then
  2316.     TreeView.Nodes.Add , tvwChild, "S" & CStr(ObjIndex), "Objekte"
  2317.     AllConstructorsToTree "Liste aller geladenen Objektklassen", ArConEXE.DesignObjectConstructors, ObjIndex, True
  2318.     AllObjectsToTree "Liste aller Objektinstanzen", ArConEXE.DesignObjects, ObjIndex, True
  2319.   End If
  2320. End Sub
  2321.  
  2322. Private Sub OneConstructorToTree(s As String, constr As ArCon.ObjectConstructor, ParentIndex As Integer, recurse As Boolean)
  2323.   If RekLevel > MaxRekLevel Then Exit Sub
  2324.   RekLevel = RekLevel + 1
  2325.   If Not constr Is Nothing Then
  2326.     Dim theindex As Integer, props As Long, pStr As String
  2327.     theindex = AktIndex
  2328.     AddChildToTree s, ParentIndex, AktIndex
  2329.     AddIDToTree constr, theindex
  2330.     AddPropToTree "Dateiname = " & constr.RelativeFileName, theindex
  2331.     AddPropToTree "Download-URL des Objektes = " & constr.GetURL("XX", AcObjUrlNo_Object), theindex
  2332.     AddPropToTree "Beschreibungs-URL des Objektes = " & constr.GetURL("XX", AcObjUrlNo_Description), theindex
  2333.     props = constr.Properties
  2334.     pStr = "Eigenschaften des Objektes ="
  2335.     If props And ACDOP_HAS_LAMPS Then
  2336.         pStr = pStr & " [hat Lampen]"
  2337.     End If
  2338.     If props And ACDOP_LAMPS_DEFAULT_ON Then
  2339.         pStr = pStr & " [Lampen voreingestellt an]"
  2340.     End If
  2341.     If props And ACDOP_HAS_GRAVITY Then
  2342.         pStr = pStr & " [fΣllt]"
  2343.     End If
  2344.     If props And ACDOP_GRAVITY_DEFAULT_ON Then
  2345.         pStr = pStr & " [fallen voreingestellt an]"
  2346.     End If
  2347.     If props And ACDOP_GRAVITY_UP Then
  2348.         pStr = pStr & " [fΣllt nach oben]"
  2349.     End If
  2350.     If props And ACDOP_HAS_TEXS Then
  2351.         pStr = pStr & " [hat Texturen]"
  2352.     End If
  2353.     If props And ACDOP_HAS_TRANSP Then
  2354.         pStr = pStr & " [hat transparente FlΣchen]"
  2355.     End If
  2356.     AddPropToTree pStr, theindex
  2357.     AllTextureNamesToTree "Liste der Texturnamen", constr.GetTextureCollection, theindex, recurse
  2358.     AllObjectsToTree "Liste der Instanzen", constr.Objects, theindex, recurse
  2359.   Else
  2360.     AddPropToTree s & " ist NOTHING !!!", ParentIndex
  2361.   End If
  2362.   RekLevel = RekLevel - 1
  2363. End Sub
  2364.  
  2365. Private Sub OneBoxToTree(s As String, b As ArCon.Box, ParentIndex As Integer)
  2366.   If RekLevel > MaxRekLevel Then Exit Sub
  2367.   RekLevel = RekLevel + 1
  2368.   If Not b Is Nothing Then
  2369.     Dim theindex As Integer
  2370.     theindex = AktIndex
  2371.     AddChildToTree s, ParentIndex, AktIndex
  2372.     
  2373.     AddPropToTree "Bodendicke = " & b.BottomThickness, theindex
  2374.     AddPropToTree "Art der Kiste = " & b.BoxType, theindex
  2375.     AddPropToTree "Seitenwinkel = " & b.FaceAngle, theindex
  2376.     AddPropToTree "FΣllt nach unten = " & b.HasGravity, theindex
  2377.     AddPropToTree "H÷he = " & b.Height, theindex
  2378.     AddPropToTree "H÷he ⁿber dem Fu▀boden = " & b.HeightAboveGround, theindex
  2379.     AddPropToTree "Verjⁿngung = " & b.Inclination, theindex
  2380.     AddPropToTree "L÷cher auch verjⁿngen = " & b.InclineHoles, theindex
  2381.     AddPropToTree "Verzerrt skalieren = " & b.ScaleDistorted, theindex
  2382.     AddPropToTree "Verjⁿngungsfaktor = " & b.ScaleFactor, theindex
  2383.     AddPropToTree "Vertikal = " & b.Vertical, theindex
  2384.     AddPropToTree "Wanddicke = " & b.WallThickness, theindex
  2385.     
  2386.     Dim minX As Single, minY As Single, maxX As Single, maxY As Single
  2387.     b.GetBoundingBox minX, minY, maxX, maxY
  2388.     AddPropToTree "Bounding-Box = (" & minX & "/" & minY & ") - (" & maxX & "/" & maxY & ")", theindex
  2389.     
  2390.     OneShapeToTree "Polygon(e) der Kiste", b.GetShape(0.1, 0.2), theindex
  2391.     
  2392.     OneTextureToTree "Bodentextur", b.texture(AC_SHAPETEX_BOTTOM), theindex, True
  2393.     OneTextureToTree "Textur des inneren Randes", b.texture(AC_SHAPETEX_INNER_FACE), theindex, True
  2394.     OneTextureToTree "Textur des Σu▀eren Randes", b.texture(AC_SHAPETEX_OUTER_FACE), theindex, True
  2395.     OneTextureToTree "Deckeltextur", b.texture(AC_SHAPETEX_TOP), theindex, True
  2396.     OneTextureToTree "Innenbodentextur", b.texture(AC_SHAPETEX_BOTTOM_INSIDE), theindex, True
  2397.   End If
  2398.   RekLevel = RekLevel - 1
  2399. End Sub
  2400.  
  2401. Private Sub OneObjectToTree(s As String, obj As ArCon.Object3D, ParentIndex As Integer, recurse As Boolean)
  2402.   If RekLevel > MaxRekLevel Then Exit Sub
  2403.   RekLevel = RekLevel + 1
  2404.   If Not obj Is Nothing Then
  2405.     Dim theindex As Integer
  2406.     Dim minX As Single, minY As Single, minZ As Single
  2407.     Dim maxX As Single, maxY As Single, maxZ As Single
  2408.     
  2409.     theindex = AktIndex
  2410.     AddChildToTree s, ParentIndex, AktIndex
  2411.     AddIDToTree obj, theindex
  2412.     AddPropToTree "Name = " & obj.Name, theindex
  2413.     AddPropToTree "Ist eine Gruppe = " & obj.Group, theindex
  2414.     AddPropToTree "Darf verzerren = " & obj.DarfVerzerren, theindex
  2415.     obj.GetBoundingBox minX, minY, minZ, maxX, maxY, maxZ
  2416.     AddPropToTree "Bounding-Box = (" & minX & ", " & minY & ", " & minZ & "), (" & maxX & ", " & maxY & ", " & maxZ & ")", theindex
  2417.     obj.GetExtend False, minX, minY, minZ
  2418.     AddPropToTree "Originalgr÷▀e = (" & minX & ", " & minY & ", " & minZ & ")", theindex
  2419.     obj.GetExtend True, minX, minY, minZ
  2420.     AddPropToTree "Aktuelle Gr÷▀e = (" & minX & ", " & minY & ", " & minZ & ")", theindex
  2421.     AddPropToTree "Wirft keine Schatten = " & obj.KeineSchatten, theindex
  2422.     AddPropToTree "Lampen sind bei Nacht eingeschaltet = " & obj.LampenBeiNachtAn, theindex
  2423.     AddPropToTree "Lampen sind eingeschaltet = " & obj.LampenSindAn, theindex
  2424.     AddPropToTree "Einfluss des eigenen Lichtes = " & obj.LichtEinfluss, theindex
  2425.     AddPropToTree "Farbe des eigenen Lichtes = " & obj.LichtFarbe, theindex
  2426.     AddPropToTree "IntensitΣt des eigenen Lichtes = " & obj.LichtIntensitaet, theindex
  2427.     AddPropToTree "Das eigene Licht erzeugt Schatten = " & obj.LichtMachtSchatten, theindex
  2428.     AddPropToTree "Lokal an das GelΣnde anpassen = " & obj.LokalAnTerrainAnpassen, theindex
  2429.     AddPropToTree "Ist ein Teil des Raumes = " & obj.RoomObject, theindex
  2430.     AddPropToTree "Soll fallen = " & obj.SollFallen, theindex
  2431.     
  2432.     OneBoxToTree "Kisten-Eigenschaften", obj.Box, theindex
  2433.     
  2434.     Dim mat
  2435.     obj.GetModelToWorldTransformation mat
  2436.     AddPropToTree "Modell -> Welt (0, 0) = " & mat(0, 0), theindex
  2437.     AddPropToTree "Modell -> Welt (0, 1) = " & mat(0, 1), theindex
  2438.     AddPropToTree "Modell -> Welt (0, 2) = " & mat(0, 2), theindex
  2439.     AddPropToTree "Modell -> Welt (0, 3) = " & mat(0, 3), theindex
  2440.     
  2441.     AddPropToTree "Modell -> Welt (1, 0) = " & mat(1, 0), theindex
  2442.     AddPropToTree "Modell -> Welt (1, 1) = " & mat(1, 1), theindex
  2443.     AddPropToTree "Modell -> Welt (1, 2) = " & mat(1, 2), theindex
  2444.     AddPropToTree "Modell -> Welt (1, 3) = " & mat(1, 3), theindex
  2445.  
  2446.     AddPropToTree "Modell -> Welt (2, 0) = " & mat(2, 0), theindex
  2447.     AddPropToTree "Modell -> Welt (2, 1) = " & mat(2, 1), theindex
  2448.     AddPropToTree "Modell -> Welt (2, 2) = " & mat(2, 2), theindex
  2449.     AddPropToTree "Modell -> Welt (2, 3) = " & mat(2, 3), theindex
  2450.     
  2451.     AddPropToTree "Modell -> Welt (3, 0) = " & mat(3, 0), theindex
  2452.     AddPropToTree "Modell -> Welt (3, 1) = " & mat(3, 1), theindex
  2453.     AddPropToTree "Modell -> Welt (3, 2) = " & mat(3, 2), theindex
  2454.     AddPropToTree "Modell -> Welt (3, 3) = " & mat(3, 3), theindex
  2455.     
  2456.     On Error GoTo noDB
  2457.     Dim dbID As Long, objID As Long
  2458.     If obj.DatabaseInfo(dbID, objID) Then
  2459.         AddPropToTree "Objekt stammt aus Datenbank #" & dbID & " und hat die ID #" & objID, theindex
  2460.         AddPropToTree "GUID des Objektes = " & obj.GetGUID, theindex
  2461.     Else
  2462.         AddPropToTree "Objekt stammt nicht aus einer Datenbank", theindex
  2463.     End If
  2464.     On Error GoTo 0
  2465.  
  2466. noDB:
  2467.     OneConstructorToTree "Klasse des Objektes", obj.ObjectConstructor, theindex, False
  2468.     AllTextureNamesToTree "Liste der Texturnamen", obj.GetTextureCollection, theindex, recurse
  2469.     If obj.ParentObject Is Nothing Then
  2470.         AddPropToTree "Objekt ist nicht Teil einer Gruppe", theindex
  2471.     Else
  2472.         OneObjectToTree "Gruppe, zu der das Objekt geh÷rt", obj.ParentObject, theindex, False
  2473.     End If
  2474.     AllObjectsToTree "Liste der Sub-Objekte", obj.SubObjects, theindex, recurse
  2475.   Else
  2476.     AddPropToTree s & " ist NOTHING !!!", ParentIndex
  2477.   End If
  2478.   RekLevel = RekLevel - 1
  2479. End Sub
  2480.  
  2481. Private Sub AllTextureNamesToTree(s As String, list As ArCon.TextureCollection, ParentIndex As Integer, recurse As Boolean)
  2482.   If RekLevel > MaxRekLevel Then Exit Sub
  2483.   RekLevel = RekLevel + 1
  2484.   If Not list Is Nothing Then
  2485.     Dim l As ArCon.TextureName
  2486.     Dim theindex As Integer, i As Integer
  2487.     theindex = AktIndex
  2488.     AddChildToTree s & " (Anzahl: " & list.Count & ")", ParentIndex, AktIndex
  2489.     i = 1
  2490.     For Each l In list
  2491.         AddPropToTree i & ". Textur = " & l.Name, theindex
  2492.         i = i + 1
  2493.     Next
  2494.   Else
  2495.     AddPropToTree s & " ist NOTHING !!!", ParentIndex
  2496.   End If
  2497.   RekLevel = RekLevel - 1
  2498. End Sub
  2499.  
  2500. Private Sub AllConstructorsToTree(s As String, Container As ArCon.ObjectConstructorCollection, ParentIndex As Integer, recurse As Boolean)
  2501.   Dim theindex As Integer
  2502.   If RekLevel > MaxRekLevel Then Exit Sub
  2503.   If Container Is Nothing Then
  2504.     AddChildToTree s & " ist Nothing!", ParentIndex, AktIndex
  2505.     Exit Sub
  2506.   End If
  2507.   RekLevel = RekLevel + 1
  2508.   If recurse Then
  2509.     theindex = AktIndex
  2510.     AddChildToTree s & " (Anzahl: " & Container.Count & ")", ParentIndex, AktIndex
  2511.     Dim o As ArCon.ObjectConstructor
  2512.     Dim i As Integer
  2513.     i = 1
  2514.     For Each o In Container
  2515.       OneConstructorToTree "Objekte-Klasse Nummer " & i, o, theindex, True
  2516.       i = i + 1
  2517.     Next
  2518.   Else
  2519.     AddPropToTree s & " enthΣlt " & Container.Count & " Elemente.", ParentIndex
  2520.   End If
  2521.   RekLevel = RekLevel - 1
  2522. End Sub
  2523.  
  2524. Private Sub AllObjectsToTree(s As String, Container As ArCon.Object3DCollection, ParentIndex As Integer, recurse As Boolean)
  2525.   Dim theindex As Integer
  2526.   If RekLevel > MaxRekLevel Then Exit Sub
  2527.   If Container Is Nothing Then
  2528.     AddChildToTree s & " ist Nothing!", ParentIndex, AktIndex
  2529.     Exit Sub
  2530.   End If
  2531.   RekLevel = RekLevel + 1
  2532.   If recurse Then
  2533.     theindex = AktIndex
  2534.     AddChildToTree s & " (Anzahl: " & Container.Count & ")", ParentIndex, AktIndex
  2535.     Dim o As ArCon.Object3D
  2536.     Dim i As Integer
  2537.     i = 1
  2538.     For Each o In Container
  2539.       OneObjectToTree "Objekt Nummer " & i, o, theindex, True
  2540.       i = i + 1
  2541.     Next
  2542.   Else
  2543.     AddPropToTree s & " enthΣlt " & Container.Count & " Elemente.", ParentIndex
  2544.   End If
  2545.   RekLevel = RekLevel - 1
  2546. End Sub
  2547.  
  2548. Private Sub GetTheTree()
  2549.   MousePointer = vbHourglass
  2550.   TreeView.Visible = False
  2551.   Label1.Visible = True
  2552.   Aktualisieren.Enabled = False
  2553.   Beenden.Enabled = False
  2554.   Iteratoren.Refresh
  2555.   TreeView.LineStyle = tvwRootLines  ' Linestyle 1
  2556.   TreeView.Nodes.Clear
  2557.   ArConToTree
  2558.   TreeView.Visible = True
  2559.   Label1.Visible = False
  2560.   Aktualisieren.Enabled = True
  2561.   Beenden.Enabled = True
  2562.   MousePointer = vbDefault
  2563.   Iteratoren.Refresh
  2564. End Sub
  2565.  
  2566.  
  2567. Private Sub Aktualisieren_Click()
  2568.   GetTheTree
  2569. End Sub
  2570.  
  2571. Private Sub Beenden_Click()
  2572.   On Error Resume Next
  2573.   ArConEXE.EndMe
  2574.   Unload Me
  2575. End Sub
  2576.  
  2577. Private Sub Form_Load()
  2578.   Iteratoren.Show
  2579.   OptionLow.Value = True
  2580.   UseLists.Value = 1
  2581.   UseDefaults.Value = 0
  2582.   UseProps.Value = 0
  2583.   
  2584.   Set ArConEXE = New ArCon.ArCon ' CreateObject("ArCon.OttoPlanungsatelier.1")
  2585.   If ArConEXE.StartMe(hWnd, "") Then
  2586.     GetTheTree
  2587.   Else
  2588.     MsgBox ("Es konnte keine Verbindung zu ArCon hergestellt werden!")
  2589.     Unload Me
  2590.   End If
  2591. End Sub
  2592.  
  2593. Private Sub SetLevel()
  2594.   If OptionLow.Value Then
  2595.     MaxRekLevel = 3
  2596.   ElseIf OptionMedium.Value Then
  2597.     MaxRekLevel = 5
  2598.   ElseIf OptionHeigh.Value Then
  2599.     MaxRekLevel = 7
  2600.   ElseIf OptionMax.Value Then
  2601.     MaxRekLevel = 1000
  2602.   End If
  2603. End Sub
  2604.  
  2605. Private Sub OptionLow_Click()
  2606.   SetLevel
  2607. End Sub
  2608. Private Sub OptionMedium_Click()
  2609.   SetLevel
  2610. End Sub
  2611. Private Sub OptionHeigh_Click()
  2612.   SetLevel
  2613. End Sub
  2614. Private Sub OptionMax_Click()
  2615.   SetLevel
  2616. End Sub
  2617.  
  2618.