190930
This commit is contained in:
@@ -8,34 +8,35 @@ Public Class Mesh
|
||||
Public ReadOnly Property VertexColors As New List(Of VertexColor)
|
||||
Public ReadOnly Property Faces As New List(Of Face)
|
||||
|
||||
Friend Function GetCenterModelAvg() As Vector3
|
||||
Public Sub CenterModel()
|
||||
CenterModel({Me})
|
||||
End Sub
|
||||
|
||||
Public Shared Sub CenterModel(meshes As IEnumerable(Of Mesh))
|
||||
Dim avgX As Integer = 0
|
||||
Dim avgY As Integer = 0
|
||||
Dim avgZ As Integer = 0
|
||||
Dim vertsCount As Long = 0
|
||||
|
||||
For Each v As Vertex In Vertices
|
||||
avgX += v.X
|
||||
avgY += v.Y
|
||||
avgZ += v.Z
|
||||
For Each m As Mesh In meshes
|
||||
For Each v As Vertex In m.Vertices
|
||||
avgX += v.X
|
||||
avgY += v.Y
|
||||
avgZ += v.Z
|
||||
Next
|
||||
vertsCount += m.Vertices.Count
|
||||
Next
|
||||
|
||||
Return New Vector3(avgX, avgY, avgZ)
|
||||
End Function
|
||||
Dim avg As New Vector3(avgX, avgY, avgZ)
|
||||
avg /= New Vector3(vertsCount)
|
||||
|
||||
Public Sub CenterModel()
|
||||
Dim avg As Vector3 = GetCenterModelAvg()
|
||||
|
||||
avg /= New Vector3(Vertices.Count)
|
||||
|
||||
CenterModel(avg)
|
||||
End Sub
|
||||
|
||||
Public Sub CenterModel(avg As Vector3)
|
||||
For Each v As Vertex In Vertices
|
||||
v.X -= avg.X
|
||||
v.Y -= avg.Y
|
||||
v.Z -= avg.Z
|
||||
For Each m As Mesh In meshes
|
||||
For Each v As Vertex In m.Vertices
|
||||
v.X -= avg.X
|
||||
v.Y -= avg.Y
|
||||
v.Z -= avg.Z
|
||||
Next
|
||||
Next
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
End Class
|
||||
|
||||
@@ -179,22 +179,17 @@ Public Class Object3D
|
||||
End Function
|
||||
|
||||
Public Sub CenterModel()
|
||||
Dim avg As Vector3 = Vector3.Zero
|
||||
Dim vertsCount As ULong = 0
|
||||
|
||||
For Each m As Mesh In Meshes
|
||||
avg += m.GetCenterModelAvg
|
||||
vertsCount += m.Vertices.Count
|
||||
Next
|
||||
|
||||
avg /= vertsCount
|
||||
|
||||
CenterModel(avg)
|
||||
Mesh.CenterModel(Meshes)
|
||||
End Sub
|
||||
Public Sub CenterModel(avg As Vector3)
|
||||
For Each m As Mesh In Meshes
|
||||
m.CenterModel(avg)
|
||||
|
||||
Public Shared Sub CenterModel(objs As IEnumerable(Of Object3D))
|
||||
Dim meshes As New List(Of Mesh)
|
||||
|
||||
For Each obj As Object3D In objs
|
||||
meshes.AddRange(obj.Meshes)
|
||||
Next
|
||||
|
||||
Mesh.CenterModel(meshes)
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
|
||||
@@ -69,8 +69,11 @@ Public Class File3DLoaderModule
|
||||
AssimpModule.AssimpLoader.LoadAssimpLibs()
|
||||
Dim exts As New Dictionary(Of String, String)
|
||||
For Each fd As Assimp.ExportFormatDescription In AssimpLibrary.Instance.GetExportFormatDescriptions
|
||||
If Not exts.ContainsKey(fd.FileExtension) Then exts.Add(fd.FileExtension, fd.FormatId & " - " & fd.Description)
|
||||
If Not exts.ContainsKey(fd.FileExtension) Then
|
||||
exts.Add(fd.FileExtension, fd.FormatId & " - " & fd.Description)
|
||||
End If
|
||||
Next
|
||||
exts.Add("blend", "Blender")
|
||||
|
||||
list.Add(New File3DLoaderModule("Assimp",
|
||||
AddressOf LoadViaAssimp,
|
||||
|
||||
@@ -52,12 +52,11 @@
|
||||
<Reference Include="Aspose.3D, Version=18.4.0.0, Culture=neutral, PublicKeyToken=f071c641d0b4582b, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Aspose.3D.18.4.0\lib\net40\Aspose.3D.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="AssimpNet, Version=3.3.2.0, Culture=neutral, PublicKeyToken=0d51b391f59f42a6, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<Reference Include="AssimpNet">
|
||||
<HintPath>..\Shared Libs\AssimpNet.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="ColladaSchema">
|
||||
<HintPath>..\..\..\DLL's\ColladaSchema.dll</HintPath>
|
||||
<HintPath>..\Shared Libs\ColladaSchema.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Data" />
|
||||
|
||||
Reference in New Issue
Block a user