Hi,
In the Surface.bmx, I try to calculate the Normal of the Triangle. I code my own Vector3D type. But I always have an error at this line. I'd like to know where is the error?
Vertex1.Vector[0] = Self.GetVertexX( GetTriangleVertex( Triangle, 0))
MY FUNCTION
Method GetTriangleNormal:Vector3D(Triangle:Int)
If (Triangle < 0) Or (Triangle => Self.TriangleCount) Then
TDreiDeError.DisplayError("Triangle does not exist!")
Else
Local Normal:Vector3D, Vertex1 : Vector3D, Vertex2 : Vector3D, Vertex3 : Vector3D
Local Edge1 : Vector3D, Edge2 : Vector3D
' Calculate FaceNormal
' Get VertexPositions
Vertex1.Vector[0] = Self.GetVertexX( GetTriangleVertex( Triangle, 0))
Vertex1.Vector[1] = Self.GetVertexY( GetTriangleVertex( Triangle, 0))
Vertex1.Vector[2] = Self.GetVertexZ( GetTriangleVertex( Triangle, 0))
Vertex2.Vector[0] = Self.GetVertexX( GetTriangleVertex( Triangle, 1))
Vertex2.Vector[1] = Self.GetVertexY( GetTriangleVertex( Triangle, 1))
Vertex2.Vector[2] = Self.GetVertexZ( GetTriangleVertex( Triangle, 1))
Vertex3.Vector[0] = Self.GetVertexX( GetTriangleVertex( Triangle, 2))
Vertex3.Vector[1] = Self.GetVertexY( GetTriangleVertex( Triangle, 2))
Vertex3.Vector[2] = Self.GetVertexZ( GetTriangleVertex( Triangle, 2))
' Get EdgeVectors between Vertex1-Vertex0 and Vertex2-Vertex0
Edge1 = Vertex2.Substraction( Vertex1)
Edge2 = Vertex3.Substraction( Vertex2)
' Calculate the Normal by using the CrossProduct
Normal = Edge1.CrossProduct(Edge2)
'Normalize vector
Normal = Normal.Normalized()
Return Normal
EndIf
End Method
In the Surface.bmx, I try to calculate the Normal of the Triangle. I code my own Vector3D type. But I always have an error at this line. I'd like to know where is the error?
Vertex1.Vector[0] = Self.GetVertexX( GetTriangleVertex( Triangle, 0))
MY FUNCTION
Method GetTriangleNormal:Vector3D(Triangle:Int)
If (Triangle < 0) Or (Triangle => Self.TriangleCount) Then
TDreiDeError.DisplayError("Triangle does not exist!")
Else
Local Normal:Vector3D, Vertex1 : Vector3D, Vertex2 : Vector3D, Vertex3 : Vector3D
Local Edge1 : Vector3D, Edge2 : Vector3D
' Calculate FaceNormal
' Get VertexPositions
Vertex1.Vector[0] = Self.GetVertexX( GetTriangleVertex( Triangle, 0))
Vertex1.Vector[1] = Self.GetVertexY( GetTriangleVertex( Triangle, 0))
Vertex1.Vector[2] = Self.GetVertexZ( GetTriangleVertex( Triangle, 0))
Vertex2.Vector[0] = Self.GetVertexX( GetTriangleVertex( Triangle, 1))
Vertex2.Vector[1] = Self.GetVertexY( GetTriangleVertex( Triangle, 1))
Vertex2.Vector[2] = Self.GetVertexZ( GetTriangleVertex( Triangle, 1))
Vertex3.Vector[0] = Self.GetVertexX( GetTriangleVertex( Triangle, 2))
Vertex3.Vector[1] = Self.GetVertexY( GetTriangleVertex( Triangle, 2))
Vertex3.Vector[2] = Self.GetVertexZ( GetTriangleVertex( Triangle, 2))
' Get EdgeVectors between Vertex1-Vertex0 and Vertex2-Vertex0
Edge1 = Vertex2.Substraction( Vertex1)
Edge2 = Vertex3.Substraction( Vertex2)
' Calculate the Normal by using the CrossProduct
Normal = Edge1.CrossProduct(Edge2)
'Normalize vector
Normal = Normal.Normalized()
Return Normal
EndIf
End Method