Drawing3d documented Class Library

Solid Class

Die Klasse Solid im SolidSurface-Modell realisiert einen massiven 3D-Körper und nicht nur ein Oberflächenmodell.

Folgende Listen sind habe zentrale Bedeutung:

1. Die Punkteliste (VertexList)

2. Die Kantenliste (EdgeList)

3. Die Oberflächenliste (FaceList)

4. Die 3D-Kurvenliste (EdgeCurveList)


Durch diese Listen sind die Geometrie und die Topologie des Körpers vollständig definiert.

Die Punkteliste

Sie enthält alle Eckpunkte eines Körpers. Die Koordinaten zweier verschiedener Punkte sind im Allgemeinen gleich, aber es kann durchaus vorkommen, dass sie übereinstimmen.
Die Punkte sind Klassen vom Typ Vertex3d.

Die Kantenliste:
Die Kanten sind vom Typ Edge.
Eigenschaften von Edge:
- EdgeStart und EdgeEnd: Zu jedem Paar von von Punkten A, B des Solid gibt es ein Paar(!) von "Softwarekanten" Edge. Die eine Kante hat A als Anfgangspunkt EdgeStart und B als Endpunkt EdgeEnd, die andere Kante hat A als Endpunkt und B als Anfangspunkt. Die beiden Kanten nennen wir zu einander duale Kanten. Es ist oft wichtig, zu einer Kante ihre duale Kante zu bestimmen.
Ein Quader besitzt somit 24 Edge.
Zu jeder Edge ist eindeutig ein Face zugeordnet. Rechterhand derKante liegt die Oberfläche von Face. Alle Kanten, die zu einem Face gehören, umschließen eine Fläche. die im Uhrzeigersinn umlaufen wird.
- ParamCurve: Eine zweidimensionale Kurve, die sich auf den Parameterraum von Face bezieht. Sie stellt die Grenzen der Oberfläche dar, deren Geometrie durch Face bestimmt wird. .
Ist z.B. das Face der Mantel eines Zylinders ( Cone) und ParamCurve eine Gerade von (0,0) nach (PI,0), so ergibt dies einen Halbkreis in R³.

- EdgeCurve: Eine dreidimensionale Kurve, die identisch ist mit der durch ParamCurve und definierten Kurve. Eine Kante und ihre duale Kante besitzen nur eine gemeinsame EdgeCurve. Z.B.: besitzt ein Quader 12 EdgeCurves. Siehe EdgeCurveList.
Eine 3D-Curve besitzt die Eigenschaft Neighbors, ein array bestehend aus den zwei benachbarten Faces. Diese Eigenschaft ist wichtig, um von einem Face via Edge zum Nachbarface zu gelangen.
-SameSense: Durch die ParamCurve und ddie zugehörige Geometrie wird eine 3D-Curve definiert. Ist SameSense = true, so ist diese Kurve identisch mit EdgeCurve andernfalls ist diese Kurve invertiert.

Die Oberflächenliste:
Sie besteht aus Oberflächen, die das Solid begrenzen: Faces.
Eigenschaften von Face:
- Surface: Enthält die Geometrie der Obfläche. Von ParamCurves wird sie verwendet, um 3D- Kurven zu evaluieren.
-ParamCurves: Sie bestimmen die Berandung der Oberflächen. Tatsächlich werden sie immer wieder neu berechnet, wenn sich ein Änderung der Topologie oder der Geometrie des Solids ereignet hat. Sie werden lediglich zu raschen Renderung des Solids benötigt. Neu berechnet können sie werden aus den Inhalten von Bounds mit der Methode RefreshParamCurves.
-Bounds:
Sie bestehen aus Listen von EdgeList. Die 0-te EdgeList gibt die äußere Kontur des Face an und sollten die Overfläche im Uhrzeigersinn um laufen. Liegt eine Edgelist geometrisch innerhalb einer anderen, so muss deren Umlaufssinn umgekehrt sein.
Besitzt z.B.: eine Flaäche eine Umrandung und ein Loch, so ist Bounds.Count = 2. Bounds[0] ist im Uhrzeigersinn und Bounds[1] im Gegenuhrzeigersinn. Natürlich muss Bounds[1] vollständig innerhalb von Bounds[0] liegen.
/
Die 3D-Kurvenliste:/
Zu jeder "physikalischen" Kante eines Solids gibt es genau eine Curve3D. Zwei zueinander duale Kanten besitzen die gleiche Kurve. Für die Topologie des Solids ist das Feld Neighbors wichtig, das beide Nachbarfaces enthält die an einander entlang der 3D-Kurve grenzen.

For a list of all members of this type, see Solid Members .

System.Object
   MNComponent
      Entity
         Solid
            DiscreteSolid
            SolidBox
            SolidCone
            SolidExtrude

[Visual Basic]
<Serializable> _
<ToolboxItem(ToolboxItemType:=null)> _
<DefaultMember(MemberName:="Item")> _
Public Class Solid
    Inherits Entity
[C#]
[Serializable]
[ToolboxItem(ToolboxItemType=null)]
[DefaultMember(MemberName="Item")]
public class Solid : Entity

Thread Safety

Public static (Shared in Visual Basic) members of this type are safe for multithreaded operations. Instance members are not guaranteed to be thread-safe.

Requirements

Namespace: Drawing3d.Solids

Assembly: Drawing3d (in Drawing3d.dll)

See Also

Solid Members | Drawing3d.Solids Namespace | Surface | Surface