Posts: 2,404
Threads: 153
Joined: Jan 2005
Yes,. It seems to fail on larger files, smaller ones seem to do fine,. odd... And, yeah I saw that.. 4MB.. :lol:
Kevin ( x.t.r.GRAPHICS)
Posts: 2,404
Threads: 153
Joined: Jan 2005
Problem fixed,.. try this 1 dumbledore: :lol:
Code: SCREEN 13
OPEN "FileName.obj" FOR INPUT AS #1
OPEN "FileName.bas" FOR OUTPUT AS #2
vert = 0
DO
IF init = 0 THEN INPUT #1, Blank1$: init = 1
LINE INPUT #1, LineRender$
SLEEP 100
'###########################
'# Find number of vertices #
'###########################
IF MID$(LineRender$, 1, 1) = "#" THEN
cont = 2
FOR i = 2 TO LEN(LineRender$)
cont += 1
IF MID$(LineRender$, i, 1) = " " THEN EXIT FOR
NmTx$ += MID$(LineRender$, i, 1)
NEXT
ONum += Num
Num = VAL(NmTx$)
NmTx$ = ""
IF obj = 0 THEN
DIM Vertex(Num, 3) as string
DIM Normal(Num, 3) as string
obj = 1
ELSE
REDIM Vertex(ONum + Num, 3) as string
REDIM Normal(ONum + Num, 3) as string
END IF
END IF
'PRINT ONum
'PRINT ONum + Num
'###########################
'# Find value of vertices #
'###########################
IF MID$(LineRender$, 1, 2) = "v " THEN
vert = vert + 1
cont1 = 3
FOR i = 3 TO LEN(LineRender$)
cont1 = cont1 + 1
IF MID$(LineRender$, i, 1) = " " THEN EXIT FOR
Vertex(vert, 1) += MID$(LineRender$, i, 1)
NEXT
cont2 = cont1
FOR i = cont2 TO LEN(LineRender$)
cont2 = cont2 + 1
IF MID$(LineRender$, i, 1) = " " THEN EXIT FOR
Vertex(vert, 2) += MID$(LineRender$, i, 1)
NEXT
cont3 = cont2
FOR i = cont3 TO LEN(LineRender$)
cont3 = cont3 + 1
IF MID$(LineRender$, i, 1) = " " THEN EXIT FOR
Vertex(vert, 3) += MID$(LineRender$, i, 1)
NEXT
END IF
'###########################
'# Find value of Normals #
'###########################
IF MID$(LineRender$, 1, 2) = "vn" THEN
norm = norm + 1
cont1 = 4
FOR i = 4 TO LEN(LineRender$)
cont1 = cont1 + 1
IF MID$(LineRender$, i, 1) = " " THEN EXIT FOR
Normal(norm, 1) += MID$(LineRender$, i, 1)
NEXT
cont2 = cont1
FOR i = cont2 TO LEN(LineRender$)
cont2 = cont2 + 1
IF MID$(LineRender$, i, 1) = " " THEN EXIT FOR
Normal(norm, 2) += MID$(LineRender$, i, 1)
NEXT
cont3 = cont2
FOR i = cont3 TO LEN(LineRender$)
cont3 = cont3 + 1
IF MID$(LineRender$, i, 1) = " " THEN EXIT FOR
Normal(norm, 3) += MID$(LineRender$, i, 1)
NEXT
END IF
'###########################
'# Find Order Ratios #
'###########################
IF MID$(LineRender$, 1, 2) = "f " THEN
cont = 3
DO
IF MID$(LineRender$, cont, 1) = "/" THEN
Number = VAL(Face$)
' print Number
' SLEEP 100
PRINT #2, "glNormal3f ", Normal(Number, 1), ",", Normal(Number, 2), ",", Normal(Number, 3)
cont += 2
Face$ = ""
Number = 0
ELSEIF MID$(LineRender$, cont, 1) = " " THEN
Number = VAL(Face$)
PRINT #2, "glVertex3f", Vertex(Number, 1), ",", Vertex(Number, 2), ",", Vertex(Number, 3)
cont += 1
Face$ = ""
Number = 0
ELSEIF cont >= LEN(LineRender$) THEN
Face$ += MID$(LineRender$, cont, 1)
Number = VAL(Face$)
PRINT #2, "glVertex3f", Vertex(Number, 1), ",", Vertex(Number, 2), ",", Vertex(Number, 3)
cont = 0
Face$ = ""
Number = 0
EXIT DO
END IF
Face$ += MID$(LineRender$, cont, 1)
cont += 1
LOOP
END IF
IF INKEY$ = CHR$(255) + "X" THEN END
LOOP UNTIL EOF(1)
CLOSE #1
CLOSE #2
PRINT "Done!!"
SLEEP
Kevin ( x.t.r.GRAPHICS)
Posts: 489
Threads: 34
Joined: Jan 2005
nope, it still crashes. :lol:
ttp://m0n573r.afraid.org/
Quote:quote: "<+whtiger> you... you don't know which way the earth spins?" ... see... stupidity leads to reverence, reverence to shakiness, shakiness to... the dark side
...phear
|