TFormNormal is supposed to work in exactly the same way as TFormVector, except the resultant vector is normalized, right? This demo shows TFormNormal returning a completely different vector from TFormVector:
Graphics3D 640,480,32,2 SetBuffer BackBuffer() WireFrame True cam = CreateCamera() PositionEntity cam,0,0,-8 CameraProjMode cam,2 CameraZoom cam,0.1 ; Create source entity of tform. source_cone = CreateCone() ScaleEntity source_cone,.5,1,.5 PositionEntity source_cone,3,3,0 TurnEntity source_cone,0,0,90 ; Create destination entity of tform. dest_cone = CreateCone() ScaleEntity dest_cone,2,1,2 PositionEntity dest_cone,-3,-3,0 TurnEntity dest_cone,0,0,45 ; Create marker blob. blob = CreateSphere(16,dest_cone) ScaleEntity blob,.2,.2,.2,True While Not KeyHit(1) If KeyDown(2) TFormVector(1,1,0, source_cone,dest_cone) PositionEntity blob,TFormedX(),TFormedY(),TFormedZ() ElseIf KeyDown(3) TFormNormal(1,1,0, source_cone,dest_cone) PositionEntity blob,TFormedX(),TFormedY(),TFormedZ() Else PositionEntity blob,0,0,0 EndIf RenderWorld Text 10,10,"Press 1 to move blob from centre of cone, along the tformed vector" Text 10,30,"Press 2 to move blob from centre of cone, along the tformed normal" Flip True Wend End