lehthanis
01-31-2008, 02:13 PM
I'm trying to get this x-plane exporter working better, an dI'm running into some problems with scientific notation. Here's my code that gets all my vertices:
for f = 1 to num_faces do
(
channel = 1
Face = getFace tmesh f
TFace = meshop.getMapFace tmesh channel f
TVx = meshop.getMapVert tmesh channel (TFace.x as integer)
TVy = meshop.getMapVert tmesh channel (TFace.y as integer)
TVz = meshop.getMapVert tmesh channel (TFace.z as integer)
for v = 1 to 3 do
(
case v of
(
1: (curVert = Face.x; curTVert = TVx)
2: (curVert = Face.y; curTVert = TVy)
3: (curVert = Face.z; curTVert = TVz)
)
Vert = getvert tmesh curVert
VertNorm = getNormal tmesh curVert
-- Write Vertex Entries to Array
if SwapYZ.state == true then
append AryVerts ("VT " + (Vert.x as string) + " " + (Vert.z as string) + " " + (Vert.y as string) + " " + (VertNorm.x as string) + " " + (VertNorm.z as string) + " " + (VertNorm.y as string) + " " + (curTVert[1] as string) + " " + (curTVert[2] as string) + "\n")
else
append AryVerts ("VT " + (Vert.x as string) + " " + (Vert.y as string) + " " + (Vert.z as string) + " " + (VertNorm.x as string) + " " + (VertNorm.y as string) + " " + (VertNorm.z as string) + " " + (curTVert[1] as string) + " " + (curTVert[2] as string) + "\n")
)
)
In the last bit there, I'd like to format all the numbers to force the 6th decimal place...no matter the value...
so 1 would be 1.000000...0 would be 0.000000 and you'd end up with numbers that looked like this:
VT -0.430012 0.847051 4.084560 1.000000 0.000000 0.000000 0.197092 0.280742
VT -0.430012 0.772286 3.990822 1.000000 0.000000 0.000000 0.085506 0.044315
VT -0.430012 0.860648 4.065142 1.000000 0.000000 0.000000 0.085506 0.280742
VT -0.430012 0.758689 4.010241 1.000000 0.000000 0.000000 0.197092 0.044315
The above code gives me numbers that look like this:
VT 0.0 -30.2629 -9.45448 0.000356122 -0.999623 0.0274562 0.500104 0.611589
VT 13.1409 -30.2629 -9.45449 4.54736e-007 -0.999433 0.0336666 0.900236 0.611589
VT 13.1564 -30.1539 -7.27129 -0.000549577 -0.999189 0.0402734 0.900706 0.678066
VT 13.1564 -30.1539 -7.27129 -0.000549577 -0.999189 0.0402734 0.900706 0.678066
and I'd like to make them all consistent...Any ideas? Thanks!
BTW...those two example numbers are from two different models, so they shouldn't "match" value wise...I just want to get them formatted the same...the first 4 are from a stock model that came with the program...the second 4 are from my own model exported using my code.
for f = 1 to num_faces do
(
channel = 1
Face = getFace tmesh f
TFace = meshop.getMapFace tmesh channel f
TVx = meshop.getMapVert tmesh channel (TFace.x as integer)
TVy = meshop.getMapVert tmesh channel (TFace.y as integer)
TVz = meshop.getMapVert tmesh channel (TFace.z as integer)
for v = 1 to 3 do
(
case v of
(
1: (curVert = Face.x; curTVert = TVx)
2: (curVert = Face.y; curTVert = TVy)
3: (curVert = Face.z; curTVert = TVz)
)
Vert = getvert tmesh curVert
VertNorm = getNormal tmesh curVert
-- Write Vertex Entries to Array
if SwapYZ.state == true then
append AryVerts ("VT " + (Vert.x as string) + " " + (Vert.z as string) + " " + (Vert.y as string) + " " + (VertNorm.x as string) + " " + (VertNorm.z as string) + " " + (VertNorm.y as string) + " " + (curTVert[1] as string) + " " + (curTVert[2] as string) + "\n")
else
append AryVerts ("VT " + (Vert.x as string) + " " + (Vert.y as string) + " " + (Vert.z as string) + " " + (VertNorm.x as string) + " " + (VertNorm.y as string) + " " + (VertNorm.z as string) + " " + (curTVert[1] as string) + " " + (curTVert[2] as string) + "\n")
)
)
In the last bit there, I'd like to format all the numbers to force the 6th decimal place...no matter the value...
so 1 would be 1.000000...0 would be 0.000000 and you'd end up with numbers that looked like this:
VT -0.430012 0.847051 4.084560 1.000000 0.000000 0.000000 0.197092 0.280742
VT -0.430012 0.772286 3.990822 1.000000 0.000000 0.000000 0.085506 0.044315
VT -0.430012 0.860648 4.065142 1.000000 0.000000 0.000000 0.085506 0.280742
VT -0.430012 0.758689 4.010241 1.000000 0.000000 0.000000 0.197092 0.044315
The above code gives me numbers that look like this:
VT 0.0 -30.2629 -9.45448 0.000356122 -0.999623 0.0274562 0.500104 0.611589
VT 13.1409 -30.2629 -9.45449 4.54736e-007 -0.999433 0.0336666 0.900236 0.611589
VT 13.1564 -30.1539 -7.27129 -0.000549577 -0.999189 0.0402734 0.900706 0.678066
VT 13.1564 -30.1539 -7.27129 -0.000549577 -0.999189 0.0402734 0.900706 0.678066
and I'd like to make them all consistent...Any ideas? Thanks!
BTW...those two example numbers are from two different models, so they shouldn't "match" value wise...I just want to get them formatted the same...the first 4 are from a stock model that came with the program...the second 4 are from my own model exported using my code.
