Files
armorpaint/Sources/arm/io/ImportObj.hx
T

42 lines
1010 B
Haxe
Raw Normal View History

2019-06-19 18:45:36 +02:00
package arm.io;
2019-06-20 11:23:01 +02:00
import kha.Blob;
import iron.data.Data;
2019-07-17 12:40:24 +02:00
import arm.format.ObjParser;
2019-06-19 18:45:36 +02:00
import arm.ui.UITrait;
2019-12-08 16:59:08 +01:00
import arm.Tool;
2019-06-19 18:45:36 +02:00
class ImportObj {
public static function run(path:String) {
2019-11-07 15:18:05 +01:00
var i = UITrait.inst.splitBy;
2019-12-08 16:59:08 +01:00
var isUdim = i == SplitUdim;
ObjParser.splitCode =
(i == SplitObject || isUdim) ? "o".code :
i == SplitGroup ? "g".code :
"u".code; // usemtl
2019-06-20 11:23:01 +02:00
Data.getBlob(path, function(b:Blob) {
2019-11-20 21:12:25 +01:00
if (isUdim) {
var obj = new ObjParser(b, 0, isUdim);
2019-06-19 18:45:36 +02:00
var name = obj.name;
for (i in 0...obj.udims.length) {
var u = i % obj.udimsU;
var v = Std.int(i / obj.udimsU);
obj.name = name + "." + (1000 + v * 10 + u + 1);
obj.inda = obj.udims[i];
2019-11-11 22:14:32 +01:00
i == 0 ? ImportMesh.makeMesh(obj, path) : ImportMesh.addMesh(obj);
2019-06-19 18:45:36 +02:00
}
}
else {
2019-06-20 11:23:01 +02:00
var obj = new ObjParser(b);
2019-11-11 22:14:32 +01:00
ImportMesh.makeMesh(obj, path);
2019-06-19 18:45:36 +02:00
while (obj.hasNext) {
2019-06-20 11:23:01 +02:00
obj = new ObjParser(b, obj.pos);
2019-11-11 22:14:32 +01:00
ImportMesh.addMesh(obj);
2019-06-19 18:45:36 +02:00
}
}
2019-06-20 11:23:01 +02:00
Data.deleteBlob(path);
2019-06-19 18:45:36 +02:00
});
}
}