Blender'da yaptigim basit objeleri C++ koduna almam gerekiyordu.
Blender'da olusturdugum.obj dosyasinin icerigi "string input" degiskeninde gorulebilir.
import std; // --> Bunu Ali abiden yeni ogrendim guzel bir ozellik
string input = "o Plane_Plane.001
v -1.000000 -1.000000 0.000000
v -0.061671 -0.947391 0.000000
v -0.037190 -0.087611 0.000000
v 0.000000 -1.000000 0.000000
v -0.894849 -0.945749 0.000000
v -1.000000 -0.997879 0.000000
v 0.000000 0.000000 0.000000
v -0.061671 -0.947391 0.000000
v -0.560963 -0.611677 0.000000
v -0.573407 -0.624128 0.000000
s off
f 4 8 5
f 9 3 7
f 10 2 9
f 6 1 5
f 1 4 5
f 4 7 3
f 8 2 5
f 4 3 8
f 7 6 9
f 6 5 10
f 9 6 10";
void main()
{
writeln(input.
split('\n').
filter!( a => a.startsWith("v")).
map!(a => a[2..$].replace(" ", ",")).
map!(a => "{" ~ a ~ "}," ).
join("\n"));
}
Bu "one liner" obj formatindan vertex'leri alip C+ dizisinin anlayabilecegi formata donusturuyor ve beni mutlu ediyor.
erdem@erdem-HP-EliteDesk-800-G2-TWR ~/dev/DScripts $ dub run
Performing "debug" build using dmd for x86_64.
dscripts ~master: building configuration "application"...
Linking...
Running ./dscripts
{-1.000000,-1.000000,0.000000},
{-0.061671,-0.947391,0.000000},
{-0.037190,-0.087611,0.000000},
{0.000000,-1.000000,0.000000},
{-0.894849,-0.945749,0.000000},
{-1.000000,-0.997879,0.000000},
{0.000000,0.000000,0.000000},
{-0.061671,-0.947391,0.000000},
{-0.560963,-0.611677,0.000000},
{-0.573407,-0.624128,0.000000},
Kucuk bir sey olsa bile isyerinde kullandigim icin paylasmak istedim.
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]