190811 c2

- Optimized code layout of changes of last merge request
This commit is contained in:
2019-08-11 18:56:00 +02:00
parent b47f4162e6
commit 7d884d7cba

View File

@@ -3,45 +3,42 @@ Imports Assimp
Imports Assimp.Unmanaged Imports Assimp.Unmanaged
Namespace AssimpModule Namespace AssimpModule
Structure ConversionContext
Friend Class ConversionContext
Public Property DaeMdl As Scene
Public Property UpAxis As UpAxis
Public Property NewMesh As New Mesh
Public Property NewObj As New Object3D
Public Property ChannelIndicies As New Dictionary(Of Material, Integer)
Public Sub New(daeMdlP As Scene, upAxis As UpAxis) Public Sub New(daeMdlP As Scene, upAxis As UpAxis)
daeMdl = daeMdlP DaeMdl = daeMdlP
upAxis = upAxis Me.UpAxis = upAxis
newMesh = New Mesh
newObj = New Object3D
newObj.Meshes.Add(newMesh) NewObj.Meshes.Add(NewMesh)
channelIndicies = New Dictionary(Of Material, Integer)
End Sub End Sub
Dim daeMdl As Scene End Class
Dim UpAxis As UpAxis
Dim newMesh As Mesh Friend Class ParsingContext
Dim newObj As Object3D
Dim channelIndicies As Dictionary(Of Material, Integer) Public ReadOnly Property ConversionContext As ConversionContext
End Structure Public Property DicVertices As New Dictionary(Of Vector3D, Vertex)
Public Property DicNormals As New Dictionary(Of Vector3D, Normal)
Public Property DicUVs As New Dictionary(Of Vector3D, UV)
Public Property DicVertexColors As New Dictionary(Of Color4D, VertexColor)
Structure ParsingContext
Public Sub New(ctx As ConversionContext) Public Sub New(ctx As ConversionContext)
cc = ctx ConversionContext = ctx
dicVertices = New Dictionary(Of Vector3D, Vertex)
dicNormals = New Dictionary(Of Vector3D, Normal)
dicUVs = New Dictionary(Of Vector3D, UV)
dicVertexColors = New Dictionary(Of Color4D, VertexColor)
End Sub End Sub
ReadOnly cc As ConversionContext End Class
Dim dicVertices As Dictionary(Of Vector3D, Vertex)
Dim dicNormals As Dictionary(Of Vector3D, Normal)
Dim dicUVs As Dictionary(Of Vector3D, UV)
Dim dicVertexColors As Dictionary(Of Color4D, VertexColor)
End Structure
Public Class AssimpLoader Public Class AssimpLoader
Public Shared PathToAssimpLib32 As String = "Assimp32.dll" Public Shared Property PathToAssimpLib32 As String = "Assimp32.dll"
Public Shared PathToAssimpLib64 As String = "Assimp64.dll" Public Shared Property PathToAssimpLib64 As String = "Assimp64.dll"
Friend Shared Sub LoadAssimpLibs() Friend Shared Sub LoadAssimpLibs()
If Not AssimpLibrary.Instance.IsLibraryLoaded Then If Not AssimpLibrary.Instance.IsLibraryLoaded Then
@@ -51,19 +48,19 @@ Namespace AssimpModule
Private Shared Sub ComputeNewObj(cc As ConversionContext) Private Shared Sub ComputeNewObj(cc As ConversionContext)
Dim identity As Matrix4x4 = Matrix4x4.Identity Dim identity As Matrix4x4 = Matrix4x4.Identity
ComputeNode(cc.daeMdl.RootNode, identity, New ParsingContext(cc)) ComputeNode(cc.DaeMdl.RootNode, identity, New ParsingContext(cc))
End Sub End Sub
Private Shared Sub ComputeNode(node As Node, trafo As Matrix4x4, ByRef pc As ParsingContext) Private Shared Sub ComputeNode(node As Node, trafo As Matrix4x4, pc As ParsingContext)
Dim newObj = pc.cc.newObj Dim newObj = pc.ConversionContext.NewObj
Dim newMesh = pc.cc.newMesh Dim newMesh = pc.ConversionContext.NewMesh
Dim daeMdl = pc.cc.daeMdl Dim daeMdl = pc.ConversionContext.DaeMdl
Dim channelIndicies = pc.cc.channelIndicies Dim channelIndicies = pc.ConversionContext.ChannelIndicies
Dim UpAxis = pc.cc.UpAxis Dim UpAxis = pc.ConversionContext.UpAxis
Dim dicVertices = pc.dicVertices Dim dicVertices = pc.DicVertices
Dim dicNormals = pc.dicNormals Dim dicNormals = pc.DicNormals
Dim dicUVs = pc.dicUVs Dim dicUVs = pc.DicUVs
Dim dicVertexColors = pc.dicVertexColors Dim dicVertexColors = pc.DicVertexColors
trafo = trafo * node.Transform trafo = trafo * node.Transform