Changeset 404
- Timestamp:
- 06/01/07 06:15:44 (17 months ago)
- Location:
- branches/thune/thread_safe
- Files:
-
- 2 modified
-
eval.c (modified) (2 diffs)
-
scripts/obj_to_gx.t (modified) (11 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/thune/thread_safe/eval.c
r403 r404 1103 1103 break; 1104 1104 1105 case UT_COORD: 1106 if( ur_is(val, UT_VEC3) ) 1107 { 1108 val->coord.elem[0] = (int) val->vec3.xyz[0]; 1109 val->coord.elem[1] = (int) val->vec3.xyz[1]; 1110 val->coord.elem[2] = (int) val->vec3.xyz[2]; 1111 ur_initType(val, UT_COORD); 1112 val->coord.len = 3; 1113 } 1114 break; 1115 1105 1116 case UT_BINARY: 1106 1117 if( ur_is(val, UT_STRING) ) … … 1159 1170 { 1160 1171 val->vec3.xyz[2] = (val->coord.len > 2) ? 1161 (float) val->coord.elem[2] : 0.0f;1172 (float) val->coord.elem[2] : 0.0f; 1162 1173 val->vec3.xyz[1] = (float) val->coord.elem[1]; 1163 1174 val->vec3.xyz[0] = (float) val->coord.elem[0]; -
branches/thune/thread_safe/scripts/obj_to_gx.t
r291 r404 22 22 [] :normals 23 23 [] :uvs 24 []:surfs24 none :surfs 25 25 [] :faces 26 26 ] … … 28 28 29 29 30 [type color] 31 [ 32 color ift ( 33 [" " type '[' color ']'] print 34 ) 30 /* 31 [type color] [ 32 color ift ([" " type '[' color ']'] print) 35 33 ] 36 34 func :write-color 37 38 39 [rejoin print] proc :jprint ; (blk -- ) 35 */ 36 [vec3! swap make print] proc :write-rgb ; (color-blk -- ) 40 37 41 38 … … 43 40 [ 44 41 surf/name ift ( 45 [{; name "} surf/name '"'] jprint 46 ) 47 ;"ambient" surf/ambient write-color 48 "diffuse" surf/diffuse write-color 49 "specular" surf/specular write-color 42 [{ ; usemtl "} surf/name {"^/}] prin.pack 43 ) 44 " color " prin surf/diffuse write-rgb 45 /* 46 "ambient" surf/ambient write-color 47 "diffuse" surf/diffuse write-color 48 "specular" surf/specular write-color 50 49 surf/color_map ift ( 51 [" ; color_map [ %" surf/color_map " ]"] jprint50 [" color_map [ %" surf/color_map " ]^/"] prin.pack 52 51 ) 53 52 surf/bump_map ift ( 54 ["; bump_map [ %" surf/bump_map " ]"] jprint 55 ) 56 ] 57 func :write-surf 53 [" bump_map [ %" surf/bump_map " ]^/"] prin.pack 54 ) 55 */ 56 ] 57 func :write-surf ; (surf -- ) 58 58 59 59 … … 76 76 77 77 geo/name ift ( 78 [{; name "} geo/name {"^/} ] jprint78 [{; name "} geo/name {"^/} ] prin.pack 79 79 ) 80 80 … … 97 97 ) 98 98 99 geo/surfs empty? [ 100 " color 0.8,0.8,0.8" print 101 ][ 102 geo/surfs [write-surf] each 103 ] either 99 geo/surfs if/keep write-surf 100 ;" color 0.8,0.8,0.8" print 104 101 105 102 … … 149 146 ";]^/" print 150 147 ] 151 func :write-geo 148 func :write-geo ; (geo -- ) 152 149 153 150 … … 180 177 verts [dec] map 181 178 182 geo/faces key append verts appen d drop179 geo/faces key append verts appen 183 180 ] 184 181 func :convert-face … … 193 190 194 191 ; Material 195 file exists? ift (192 file exists? [ 196 193 file read [ 197 194 '#' thru eol 198 195 | "newmtl" cl (gx-surf [data trim :name] make :surf 199 sfs surf append drop)196 sfs surf/name append surf appen) 200 197 | "Ns" sl 201 198 | "d" sl … … 207 204 | "map_Kd" cl (data trim :surf/color_map) 208 205 | "map_Bump" cl (data trim :surf/bump_map) 209 | cl ([";" data] print)206 | sl ; cl ([";" data] print) 210 207 | end skip 211 208 ] 212 209 parse.some 213 ) 210 ][ 211 ["; Material file not found:" file eol] print 212 ] 213 either 214 214 215 215 sfs … … 218 218 219 219 220 [file string! | mtl main geo cl sl data]220 [file string! | mtllib main geo cl sl data] 221 221 [ 222 222 [:data to eol data: skip] :cl … … 229 229 file read [ 230 230 '#' thru eol 231 | "mtllib" cl (data trim load-mtl :mtl )232 | "usemtl" sl231 | "mtllib" cl (data trim load-mtl :mtllib) 232 | "usemtl" cl (data trim mtllib select :geo/surfs) 233 233 | "g" sl 234 | "o" cl (geo if t (geo write-geo)234 | "o" cl (geo if/keep write-geo 235 235 gx-geom [ 236 236 data trim copy :name 237 mtl :surfs238 237 main/uvs :uvs 239 238 main/normals :normals
