|
|
|
@@ -103,33 +103,33 @@ extern "C" {
|
|
|
|
|
|
|
|
|
|
staticVM = vm;
|
|
|
|
|
|
|
|
|
|
sliceListenerClass = env->FindClass("ru/ytkab0bp/slicebeam/slic3r/SliceListener");
|
|
|
|
|
sliceListenerClass = env->FindClass("com/dark98/santoku/slic3r/SliceListener");
|
|
|
|
|
sliceListenerOnProgress = env->GetMethodID(sliceListenerClass, "onProgress", "(ILjava/lang/String;)V");
|
|
|
|
|
|
|
|
|
|
shadersManagerClass = static_cast<jclass>(env->NewGlobalRef(env->FindClass("ru/ytkab0bp/slicebeam/slic3r/GLShadersManager")));
|
|
|
|
|
shadersManagerClass = static_cast<jclass>(env->NewGlobalRef(env->FindClass("com/dark98/santoku/slic3r/GLShadersManager")));
|
|
|
|
|
shadersManagerGetCurrent = env->GetStaticMethodID(shadersManagerClass, "getCurrentShaderPointer", "()J");
|
|
|
|
|
|
|
|
|
|
return JNI_VERSION_1_6;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JNIEXPORT void JNICALL Java_ru_ytkab0bp_slicebeam_slic3r_Native_set_1svg_1path_1prefix(JNIEnv *env, jclass, jstring path) {
|
|
|
|
|
JNIEXPORT void JNICALL Java_com_dark98_santoku_slic3r_Native_set_1svg_1path_1prefix(JNIEnv *env, jclass, jstring path) {
|
|
|
|
|
const char* chars = env->GetStringUTFChars(path, JNI_FALSE);
|
|
|
|
|
Slic3r::svg_path_prefix = std::string(chars);
|
|
|
|
|
env->ReleaseStringUTFChars(path, chars);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JNIEXPORT void JNICALL Java_ru_ytkab0bp_slicebeam_slic3r_Native_get_1print_1config_1def(JNIEnv *env, jclass, jobject def) {
|
|
|
|
|
jclass printConfigDefClass = env->FindClass("ru/ytkab0bp/slicebeam/slic3r/PrintConfigDef");
|
|
|
|
|
jmethodID printConfigAddOption = env->GetMethodID(printConfigDefClass, "addOption", "(Ljava/lang/String;Lru/ytkab0bp/slicebeam/slic3r/ConfigOptionDef;)V");
|
|
|
|
|
JNIEXPORT void JNICALL Java_com_dark98_santoku_slic3r_Native_get_1print_1config_1def(JNIEnv *env, jclass, jobject def) {
|
|
|
|
|
jclass printConfigDefClass = env->FindClass("com/dark98/santoku/slic3r/PrintConfigDef");
|
|
|
|
|
jmethodID printConfigAddOption = env->GetMethodID(printConfigDefClass, "addOption", "(Ljava/lang/String;Lcom/dark98/santoku/slic3r/ConfigOptionDef;)V");
|
|
|
|
|
jmethodID printConfigResolveEnum = env->GetStaticMethodID(printConfigDefClass, "resolveEnum", "(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;");
|
|
|
|
|
jclass configOptionDefClass = env->FindClass("ru/ytkab0bp/slicebeam/slic3r/ConfigOptionDef");
|
|
|
|
|
jclass configOptionDefClass = env->FindClass("com/dark98/santoku/slic3r/ConfigOptionDef");
|
|
|
|
|
jmethodID configOptionDefCtr = env->GetMethodID(configOptionDefClass, "<init>", "()V");
|
|
|
|
|
jfieldID keyField = env->GetFieldID(configOptionDefClass, "key", "Ljava/lang/String;");
|
|
|
|
|
jfieldID typeField = env->GetFieldID(configOptionDefClass, "type", "Lru/ytkab0bp/slicebeam/slic3r/ConfigOptionDef$ConfigOptionType;");
|
|
|
|
|
jfieldID guiTypeField = env->GetFieldID(configOptionDefClass, "guiType", "Lru/ytkab0bp/slicebeam/slic3r/ConfigOptionDef$GUIType;");
|
|
|
|
|
jfieldID typeField = env->GetFieldID(configOptionDefClass, "type", "Lcom/dark98/santoku/slic3r/ConfigOptionDef$ConfigOptionType;");
|
|
|
|
|
jfieldID guiTypeField = env->GetFieldID(configOptionDefClass, "guiType", "Lcom/dark98/santoku/slic3r/ConfigOptionDef$GUIType;");
|
|
|
|
|
jfieldID labelField = env->GetFieldID(configOptionDefClass, "label", "Ljava/lang/String;");
|
|
|
|
|
jfieldID fullLabelField = env->GetFieldID(configOptionDefClass, "fullLabel", "Ljava/lang/String;");
|
|
|
|
|
jfieldID printerTechField = env->GetFieldID(configOptionDefClass, "printerTechnology", "Lru/ytkab0bp/slicebeam/slic3r/ConfigOptionDef$PrinterTechnology;");
|
|
|
|
|
jfieldID printerTechField = env->GetFieldID(configOptionDefClass, "printerTechnology", "Lcom/dark98/santoku/slic3r/ConfigOptionDef$PrinterTechnology;");
|
|
|
|
|
jfieldID categoryField = env->GetFieldID(configOptionDefClass, "category", "Ljava/lang/String;");
|
|
|
|
|
jfieldID tooltipField = env->GetFieldID(configOptionDefClass, "tooltip", "Ljava/lang/String;");
|
|
|
|
|
jfieldID sidetextField = env->GetFieldID(configOptionDefClass, "sidetext", "Ljava/lang/String;");
|
|
|
|
@@ -140,7 +140,7 @@ extern "C" {
|
|
|
|
|
jfieldID widthField = env->GetFieldID(configOptionDefClass, "width", "I");
|
|
|
|
|
jfieldID minField = env->GetFieldID(configOptionDefClass, "min", "F");
|
|
|
|
|
jfieldID maxField = env->GetFieldID(configOptionDefClass, "max", "F");
|
|
|
|
|
jfieldID modeField = env->GetFieldID(configOptionDefClass, "mode", "Lru/ytkab0bp/slicebeam/slic3r/ConfigOptionDef$ConfigOptionMode;");
|
|
|
|
|
jfieldID modeField = env->GetFieldID(configOptionDefClass, "mode", "Lcom/dark98/santoku/slic3r/ConfigOptionDef$ConfigOptionMode;");
|
|
|
|
|
jfieldID defaultValueField = env->GetFieldID(configOptionDefClass, "defaultValue", "Ljava/lang/String;");
|
|
|
|
|
jfieldID enumLabelsField = env->GetFieldID(configOptionDefClass, "enumLabels", "[Ljava/lang/String;");
|
|
|
|
|
jfieldID enumValuesField = env->GetFieldID(configOptionDefClass, "enumValues", "[Ljava/lang/String;");
|
|
|
|
@@ -291,15 +291,15 @@ extern "C" {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
jobject keyValue = env->NewStringUTF(key.c_str());
|
|
|
|
|
jobject typeValue = resolveEnum((char*) "ru/ytkab0bp/slicebeam/slic3r/ConfigOptionDef$ConfigOptionType", (char*) typeStr);
|
|
|
|
|
jobject guiTypeValue = resolveEnum((char*) "ru/ytkab0bp/slicebeam/slic3r/ConfigOptionDef$GUIType", (char*) guiTypeStr);
|
|
|
|
|
jobject typeValue = resolveEnum((char*) "com/dark98/santoku/slic3r/ConfigOptionDef$ConfigOptionType", (char*) typeStr);
|
|
|
|
|
jobject guiTypeValue = resolveEnum((char*) "com/dark98/santoku/slic3r/ConfigOptionDef$GUIType", (char*) guiTypeStr);
|
|
|
|
|
jobject labelValue = env->NewStringUTF(nCfgDef->label.c_str());
|
|
|
|
|
jobject fullLabelValue = env->NewStringUTF(nCfgDef->full_label.c_str());
|
|
|
|
|
jobject printerTechValue = resolveEnum((char*) "ru/ytkab0bp/slicebeam/slic3r/ConfigOptionDef$PrinterTechnology", (char*) techStr);
|
|
|
|
|
jobject printerTechValue = resolveEnum((char*) "com/dark98/santoku/slic3r/ConfigOptionDef$PrinterTechnology", (char*) techStr);
|
|
|
|
|
jobject categoryValue = env->NewStringUTF(nCfgDef->category.c_str());
|
|
|
|
|
jobject tooltipValue = env->NewStringUTF(nCfgDef->tooltip.c_str());
|
|
|
|
|
jobject sidetextValue = env->NewStringUTF(nCfgDef->sidetext.c_str());
|
|
|
|
|
jobject modeValue = resolveEnum((char*) "ru/ytkab0bp/slicebeam/slic3r/ConfigOptionDef$ConfigOptionMode", (char*) modeStr);
|
|
|
|
|
jobject modeValue = resolveEnum((char*) "com/dark98/santoku/slic3r/ConfigOptionDef$ConfigOptionMode", (char*) modeStr);
|
|
|
|
|
|
|
|
|
|
env->SetObjectField(cfgDef, keyField, keyValue);
|
|
|
|
|
env->SetObjectField(cfgDef, typeField, typeValue);
|
|
|
|
@@ -365,7 +365,7 @@ extern "C" {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JNIEXPORT jlong JNICALL Java_ru_ytkab0bp_slicebeam_slic3r_Native_model_1read_1from_1file(JNIEnv *env, jclass, jstring path, jstring base_name) {
|
|
|
|
|
JNIEXPORT jlong JNICALL Java_com_dark98_santoku_slic3r_Native_model_1read_1from_1file(JNIEnv *env, jclass, jstring path, jstring base_name) {
|
|
|
|
|
const char* chars = env->GetStringUTFChars(path, JNI_FALSE);
|
|
|
|
|
const char* baseChars = env->GetStringUTFChars(base_name, JNI_FALSE);
|
|
|
|
|
|
|
|
|
@@ -375,7 +375,7 @@ extern "C" {
|
|
|
|
|
ref->model = Model::read_from_file(std::string(chars), nullptr, nullptr, Model::LoadAttribute::AddDefaultInstances);
|
|
|
|
|
ref->base_name = std::string(baseChars);
|
|
|
|
|
} catch (const Slic3r::RuntimeError& e) {
|
|
|
|
|
env->ThrowNew(env->FindClass("ru/ytkab0bp/slicebeam/slic3r/Slic3rRuntimeError"), e.what());
|
|
|
|
|
env->ThrowNew(env->FindClass("com/dark98/santoku/slic3r/Slic3rRuntimeError"), e.what());
|
|
|
|
|
return 0;
|
|
|
|
|
} catch (const std::exception& e) {
|
|
|
|
|
env->ThrowNew(env->FindClass("java/lang/RuntimeException"), e.what());
|
|
|
|
@@ -388,12 +388,12 @@ extern "C" {
|
|
|
|
|
return (jlong) (intptr_t) ref;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JNIEXPORT jlong JNICALL Java_ru_ytkab0bp_slicebeam_slic3r_Native_model_1create(JNIEnv *env, jclass) {
|
|
|
|
|
JNIEXPORT jlong JNICALL Java_com_dark98_santoku_slic3r_Native_model_1create(JNIEnv *env, jclass) {
|
|
|
|
|
ModelRef* ref = new ModelRef();
|
|
|
|
|
return (jlong) (intptr_t) ref;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JNIEXPORT jlong JNICALL Java_ru_ytkab0bp_slicebeam_slic3r_Native_models_1merge(JNIEnv* env, jclass, jlongArray ptrsArr) {
|
|
|
|
|
JNIEXPORT jlong JNICALL Java_com_dark98_santoku_slic3r_Native_models_1merge(JNIEnv* env, jclass, jlongArray ptrsArr) {
|
|
|
|
|
ModelRef* ref = new ModelRef();
|
|
|
|
|
|
|
|
|
|
jlong* ptrs = env->GetLongArrayElements(ptrsArr, JNI_FALSE);
|
|
|
|
@@ -407,23 +407,23 @@ extern "C" {
|
|
|
|
|
return (jlong) (intptr_t) ref;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JNIEXPORT jint JNICALL Java_ru_ytkab0bp_slicebeam_slic3r_Native_model_1get_1objects_1count(JNIEnv* env, jclass, jlong ptr) {
|
|
|
|
|
JNIEXPORT jint JNICALL Java_com_dark98_santoku_slic3r_Native_model_1get_1objects_1count(JNIEnv* env, jclass, jlong ptr) {
|
|
|
|
|
ModelRef* model = (ModelRef *) (intptr_t) ptr;
|
|
|
|
|
return model->model.objects.size();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JNIEXPORT void JNICALL Java_ru_ytkab0bp_slicebeam_slic3r_Native_model_1add_1object_1from_1another(JNIEnv* env, jclass, jlong ptr, jlong fromPtr, jint i) {
|
|
|
|
|
JNIEXPORT void JNICALL Java_com_dark98_santoku_slic3r_Native_model_1add_1object_1from_1another(JNIEnv* env, jclass, jlong ptr, jlong fromPtr, jint i) {
|
|
|
|
|
ModelRef* model = (ModelRef *) (intptr_t) ptr;
|
|
|
|
|
ModelRef* from = (ModelRef *) (intptr_t) fromPtr;
|
|
|
|
|
model->model.add_object(*from->model.objects[i]);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JNIEXPORT void JNICALL Java_ru_ytkab0bp_slicebeam_slic3r_Native_model_1delete_1object(JNIEnv* env, jclass, jlong ptr, jint i) {
|
|
|
|
|
JNIEXPORT void JNICALL Java_com_dark98_santoku_slic3r_Native_model_1delete_1object(JNIEnv* env, jclass, jlong ptr, jint i) {
|
|
|
|
|
ModelRef* model = (ModelRef *) (intptr_t) ptr;
|
|
|
|
|
model->model.delete_object(i);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JNIEXPORT jdoubleArray JNICALL Java_ru_ytkab0bp_slicebeam_slic3r_Native_model_1get_1rotation(JNIEnv* env, jclass, jlong ptr, jint object_index) {
|
|
|
|
|
JNIEXPORT jdoubleArray JNICALL Java_com_dark98_santoku_slic3r_Native_model_1get_1rotation(JNIEnv* env, jclass, jlong ptr, jint object_index) {
|
|
|
|
|
ModelRef* model = (ModelRef *) (intptr_t) ptr;
|
|
|
|
|
ModelObject* obj = model->model.objects[object_index];
|
|
|
|
|
jdoubleArray arr = env->NewDoubleArray(3);
|
|
|
|
@@ -431,7 +431,7 @@ extern "C" {
|
|
|
|
|
return arr;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JNIEXPORT jdoubleArray JNICALL Java_ru_ytkab0bp_slicebeam_slic3r_Native_model_1get_1mirror(JNIEnv* env, jclass, jlong ptr, jint object_index) {
|
|
|
|
|
JNIEXPORT jdoubleArray JNICALL Java_com_dark98_santoku_slic3r_Native_model_1get_1mirror(JNIEnv* env, jclass, jlong ptr, jint object_index) {
|
|
|
|
|
ModelRef* model = (ModelRef *) (intptr_t) ptr;
|
|
|
|
|
ModelObject* obj = model->model.objects[object_index];
|
|
|
|
|
jdoubleArray arr = env->NewDoubleArray(3);
|
|
|
|
@@ -439,7 +439,7 @@ extern "C" {
|
|
|
|
|
return arr;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JNIEXPORT jdoubleArray JNICALL Java_ru_ytkab0bp_slicebeam_slic3r_Native_model_1get_1scale(JNIEnv* env, jclass, jlong ptr, jint object_index) {
|
|
|
|
|
JNIEXPORT jdoubleArray JNICALL Java_com_dark98_santoku_slic3r_Native_model_1get_1scale(JNIEnv* env, jclass, jlong ptr, jint object_index) {
|
|
|
|
|
ModelRef* model = (ModelRef *) (intptr_t) ptr;
|
|
|
|
|
ModelObject* obj = model->model.objects[object_index];
|
|
|
|
|
jdoubleArray arr = env->NewDoubleArray(3);
|
|
|
|
@@ -447,7 +447,7 @@ extern "C" {
|
|
|
|
|
return arr;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JNIEXPORT jdoubleArray JNICALL Java_ru_ytkab0bp_slicebeam_slic3r_Native_model_1get_1translation(JNIEnv* env, jclass, jlong ptr, jint object_index) {
|
|
|
|
|
JNIEXPORT jdoubleArray JNICALL Java_com_dark98_santoku_slic3r_Native_model_1get_1translation(JNIEnv* env, jclass, jlong ptr, jint object_index) {
|
|
|
|
|
ModelRef* model = (ModelRef *) (intptr_t) ptr;
|
|
|
|
|
ModelObject* obj = model->model.objects[object_index];
|
|
|
|
|
Vec3d offset = obj->bounding_box_exact().center();
|
|
|
|
@@ -456,17 +456,17 @@ extern "C" {
|
|
|
|
|
return arr;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JNIEXPORT void JNICALL Java_ru_ytkab0bp_slicebeam_slic3r_Native_model_1translate(JNIEnv* env, jclass, jlong ptr, jint i, jdouble x, jdouble y, jdouble z) {
|
|
|
|
|
JNIEXPORT void JNICALL Java_com_dark98_santoku_slic3r_Native_model_1translate(JNIEnv* env, jclass, jlong ptr, jint i, jdouble x, jdouble y, jdouble z) {
|
|
|
|
|
ModelRef* model = (ModelRef *) (intptr_t) ptr;
|
|
|
|
|
model->model.objects[i]->translate(x, y, z);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JNIEXPORT void JNICALL Java_ru_ytkab0bp_slicebeam_slic3r_Native_model_1ensure_1on_1bed(JNIEnv* env, jclass, jlong ptr, jint i) {
|
|
|
|
|
JNIEXPORT void JNICALL Java_com_dark98_santoku_slic3r_Native_model_1ensure_1on_1bed(JNIEnv* env, jclass, jlong ptr, jint i) {
|
|
|
|
|
ModelRef* model = (ModelRef *) (intptr_t) ptr;
|
|
|
|
|
model->model.objects[i]->ensure_on_bed(false);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JNIEXPORT void JNICALL Java_ru_ytkab0bp_slicebeam_slic3r_Native_model_1scale(JNIEnv* env, jclass, jlong ptr, jint i, jdouble x, jdouble y, jdouble z) {
|
|
|
|
|
JNIEXPORT void JNICALL Java_com_dark98_santoku_slic3r_Native_model_1scale(JNIEnv* env, jclass, jlong ptr, jint i, jdouble x, jdouble y, jdouble z) {
|
|
|
|
|
ModelRef* model = (ModelRef *) (intptr_t) ptr;
|
|
|
|
|
Vec3d factor(x, y, z);
|
|
|
|
|
ModelVolumePtrs ptrs = model->model.objects[i]->volumes;
|
|
|
|
@@ -476,12 +476,12 @@ extern "C" {
|
|
|
|
|
model->model.objects[i]->invalidate_bounding_box();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JNIEXPORT jboolean JNICALL Java_ru_ytkab0bp_slicebeam_slic3r_Native_model_1is_1left_1handed(JNIEnv* env, jclass, jlong ptr, jint i) {
|
|
|
|
|
JNIEXPORT jboolean JNICALL Java_com_dark98_santoku_slic3r_Native_model_1is_1left_1handed(JNIEnv* env, jclass, jlong ptr, jint i) {
|
|
|
|
|
ModelRef* model = (ModelRef *) (intptr_t) ptr;
|
|
|
|
|
return model->model.objects[i]->volumes[0]->is_left_handed();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JNIEXPORT void JNICALL Java_ru_ytkab0bp_slicebeam_slic3r_Native_model_1rotate(JNIEnv* env, jclass, jlong ptr, jint i, jdouble x, jdouble y, jdouble z) {
|
|
|
|
|
JNIEXPORT void JNICALL Java_com_dark98_santoku_slic3r_Native_model_1rotate(JNIEnv* env, jclass, jlong ptr, jint i, jdouble x, jdouble y, jdouble z) {
|
|
|
|
|
ModelRef* model = (ModelRef *) (intptr_t) ptr;
|
|
|
|
|
Vec3d vec(x, y, z);
|
|
|
|
|
ModelVolumePtrs ptrs = model->model.objects[i]->volumes;
|
|
|
|
@@ -505,7 +505,7 @@ extern "C" {
|
|
|
|
|
model->model.objects[i]->invalidate_bounding_box();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JNIEXPORT void JNICALL Java_ru_ytkab0bp_slicebeam_slic3r_Native_model_1flatten_1rotate(JNIEnv* env, jclass, jlong ptr, jint i, jlong surface_ptr) {
|
|
|
|
|
JNIEXPORT void JNICALL Java_com_dark98_santoku_slic3r_Native_model_1flatten_1rotate(JNIEnv* env, jclass, jlong ptr, jint i, jlong surface_ptr) {
|
|
|
|
|
ModelRef* model = (ModelRef *) (intptr_t) ptr;
|
|
|
|
|
GLModelRef* surface = (GLModelRef*) (intptr_t) surface_ptr;
|
|
|
|
|
|
|
|
|
@@ -521,12 +521,12 @@ extern "C" {
|
|
|
|
|
model->model.objects[i]->invalidate_bounding_box();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JNIEXPORT void JNICALL Java_ru_ytkab0bp_slicebeam_slic3r_Native_model_1translate_1global(JNIEnv* env, jclass, jlong ptr, jdouble x, jdouble y, jdouble z) {
|
|
|
|
|
JNIEXPORT void JNICALL Java_com_dark98_santoku_slic3r_Native_model_1translate_1global(JNIEnv* env, jclass, jlong ptr, jdouble x, jdouble y, jdouble z) {
|
|
|
|
|
ModelRef* model = (ModelRef *) (intptr_t) ptr;
|
|
|
|
|
model->model.translate(x, y, z);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JNIEXPORT jdoubleArray JNICALL Java_ru_ytkab0bp_slicebeam_slic3r_Native_model_1get_1bounding_1box_1approx(JNIEnv* env, jclass, jlong ptr, jint i) {
|
|
|
|
|
JNIEXPORT jdoubleArray JNICALL Java_com_dark98_santoku_slic3r_Native_model_1get_1bounding_1box_1approx(JNIEnv* env, jclass, jlong ptr, jint i) {
|
|
|
|
|
ModelRef* ref = (ModelRef*) (intptr_t) ptr;
|
|
|
|
|
jdoubleArray arr = env->NewDoubleArray(6);
|
|
|
|
|
jdouble* elements = new jdouble[6];
|
|
|
|
@@ -540,7 +540,7 @@ extern "C" {
|
|
|
|
|
return arr;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JNIEXPORT jdoubleArray JNICALL Java_ru_ytkab0bp_slicebeam_slic3r_Native_model_1get_1bounding_1box_1exact(JNIEnv* env, jclass, jlong ptr, jint i) {
|
|
|
|
|
JNIEXPORT jdoubleArray JNICALL Java_com_dark98_santoku_slic3r_Native_model_1get_1bounding_1box_1exact(JNIEnv* env, jclass, jlong ptr, jint i) {
|
|
|
|
|
ModelRef* ref = (ModelRef*) (intptr_t) ptr;
|
|
|
|
|
jdoubleArray arr = env->NewDoubleArray(6);
|
|
|
|
|
jdouble* elements = new jdouble[6];
|
|
|
|
@@ -554,7 +554,7 @@ extern "C" {
|
|
|
|
|
return arr;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JNIEXPORT jdoubleArray JNICALL Java_ru_ytkab0bp_slicebeam_slic3r_Native_model_1get_1bounding_1box_1approx_1global(JNIEnv* env, jclass, jlong ptr) {
|
|
|
|
|
JNIEXPORT jdoubleArray JNICALL Java_com_dark98_santoku_slic3r_Native_model_1get_1bounding_1box_1approx_1global(JNIEnv* env, jclass, jlong ptr) {
|
|
|
|
|
ModelRef* ref = (ModelRef*) (intptr_t) ptr;
|
|
|
|
|
jdoubleArray arr = env->NewDoubleArray(6);
|
|
|
|
|
jdouble* elements = new jdouble[6];
|
|
|
|
@@ -568,7 +568,7 @@ extern "C" {
|
|
|
|
|
return arr;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JNIEXPORT jdoubleArray JNICALL Java_ru_ytkab0bp_slicebeam_slic3r_Native_model_1get_1bounding_1box_1exact_1global(JNIEnv* env, jclass, jlong ptr) {
|
|
|
|
|
JNIEXPORT jdoubleArray JNICALL Java_com_dark98_santoku_slic3r_Native_model_1get_1bounding_1box_1exact_1global(JNIEnv* env, jclass, jlong ptr) {
|
|
|
|
|
ModelRef* ref = (ModelRef*) (intptr_t) ptr;
|
|
|
|
|
jdoubleArray arr = env->NewDoubleArray(6);
|
|
|
|
|
jdouble* elements = new jdouble[6];
|
|
|
|
@@ -582,7 +582,7 @@ extern "C" {
|
|
|
|
|
return arr;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JNIEXPORT jlongArray JNICALL Java_ru_ytkab0bp_slicebeam_slic3r_Native_model_1create_1flatten_1planes(JNIEnv* env, jclass, jlong ptr, jint i) {
|
|
|
|
|
JNIEXPORT jlongArray JNICALL Java_com_dark98_santoku_slic3r_Native_model_1create_1flatten_1planes(JNIEnv* env, jclass, jlong ptr, jint i) {
|
|
|
|
|
ModelRef* ref = (ModelRef*) (intptr_t) ptr;
|
|
|
|
|
const ModelObject* mo = ref->model.objects[i];
|
|
|
|
|
TriangleMesh ch;
|
|
|
|
@@ -813,31 +813,31 @@ extern "C" {
|
|
|
|
|
return arr;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JNIEXPORT void JNICALL Java_ru_ytkab0bp_slicebeam_slic3r_Native_model_1auto_1orient(JNIEnv* env, jclass, jlong ptr, jint i) {
|
|
|
|
|
JNIEXPORT void JNICALL Java_com_dark98_santoku_slic3r_Native_model_1auto_1orient(JNIEnv* env, jclass, jlong ptr, jint i) {
|
|
|
|
|
ModelRef* model = (ModelRef*) (intptr_t) ptr;
|
|
|
|
|
ModelObject* obj = model->model.objects[i];
|
|
|
|
|
orientation::orient(obj);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JNIEXPORT jboolean JNICALL Java_ru_ytkab0bp_slicebeam_slic3r_Native_model_1is_1big_1object(JNIEnv* env, jclass, jlong ptr, jint i) {
|
|
|
|
|
JNIEXPORT jboolean JNICALL Java_com_dark98_santoku_slic3r_Native_model_1is_1big_1object(JNIEnv* env, jclass, jlong ptr, jint i) {
|
|
|
|
|
ModelRef* model = (ModelRef*) (intptr_t) ptr;
|
|
|
|
|
ModelObject* obj = model->model.objects[i];
|
|
|
|
|
return obj->volumes.size() == 1 && obj->volumes.front()->mesh().its.indices.size() >= 500000;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JNIEXPORT jint JNICALL Java_ru_ytkab0bp_slicebeam_slic3r_Native_model_1get_1extruder(JNIEnv* env, jclass, jlong ptr, jint i) {
|
|
|
|
|
JNIEXPORT jint JNICALL Java_com_dark98_santoku_slic3r_Native_model_1get_1extruder(JNIEnv* env, jclass, jlong ptr, jint i) {
|
|
|
|
|
ModelRef* model = (ModelRef*) (intptr_t) ptr;
|
|
|
|
|
ModelObject* obj = model->model.objects[i];
|
|
|
|
|
return obj->config.has("extruder") ? obj->config.opt_int("extruder") : -1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JNIEXPORT void JNICALL Java_ru_ytkab0bp_slicebeam_slic3r_Native_model_1set_1extruder(JNIEnv* env, jclass, jlong ptr, jint i, jint extruder) {
|
|
|
|
|
JNIEXPORT void JNICALL Java_com_dark98_santoku_slic3r_Native_model_1set_1extruder(JNIEnv* env, jclass, jlong ptr, jint i, jint extruder) {
|
|
|
|
|
ModelRef* model = (ModelRef*) (intptr_t) ptr;
|
|
|
|
|
ModelObject* obj = model->model.objects[i];
|
|
|
|
|
obj->config.set("extruder", extruder);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JNIEXPORT jlong JNICALL Java_ru_ytkab0bp_slicebeam_slic3r_Native_model_1slice(JNIEnv* env, jclass, jlong ptr, jstring configPath, jstring path, jobject listener) {
|
|
|
|
|
JNIEXPORT jlong JNICALL Java_com_dark98_santoku_slic3r_Native_model_1slice(JNIEnv* env, jclass, jlong ptr, jstring configPath, jstring path, jobject listener) {
|
|
|
|
|
try {
|
|
|
|
|
ModelRef* model = (ModelRef*) (intptr_t) ptr;
|
|
|
|
|
|
|
|
|
@@ -854,14 +854,14 @@ extern "C" {
|
|
|
|
|
|
|
|
|
|
std::string err = config.validate();
|
|
|
|
|
if (!err.empty()) {
|
|
|
|
|
env->ThrowNew(env->FindClass("ru/ytkab0bp/slicebeam/slic3r/Slic3rRuntimeError"), err.c_str());
|
|
|
|
|
env->ThrowNew(env->FindClass("com/dark98/santoku/slic3r/Slic3rRuntimeError"), err.c_str());
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
print.apply(model->model, config);
|
|
|
|
|
|
|
|
|
|
err = print.validate();
|
|
|
|
|
if (!err.empty()) {
|
|
|
|
|
env->ThrowNew(env->FindClass("ru/ytkab0bp/slicebeam/slic3r/Slic3rRuntimeError"), err.c_str());
|
|
|
|
|
env->ThrowNew(env->FindClass("com/dark98/santoku/slic3r/Slic3rRuntimeError"), err.c_str());
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -897,12 +897,12 @@ extern "C" {
|
|
|
|
|
|
|
|
|
|
return (jlong) (intptr_t) resultRef;
|
|
|
|
|
} catch (const std::exception& e) {
|
|
|
|
|
env->ThrowNew(env->FindClass("ru/ytkab0bp/slicebeam/slic3r/Slic3rRuntimeError"), e.what());
|
|
|
|
|
env->ThrowNew(env->FindClass("com/dark98/santoku/slic3r/Slic3rRuntimeError"), e.what());
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JNIEXPORT void JNICALL Java_ru_ytkab0bp_slicebeam_slic3r_Native_model_1export_13mf(JNIEnv* env, jclass, jlong ptr, jstring configPath, jstring path) {
|
|
|
|
|
JNIEXPORT void JNICALL Java_com_dark98_santoku_slic3r_Native_model_1export_13mf(JNIEnv* env, jclass, jlong ptr, jstring configPath, jstring path) {
|
|
|
|
|
auto model = reinterpret_cast<ModelRef*>(ptr);
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
@@ -916,16 +916,16 @@ extern "C" {
|
|
|
|
|
Slic3r::store_3mf(pathChars, &model->model, &config, false, nullptr, false);
|
|
|
|
|
env->ReleaseStringUTFChars(path, pathChars);
|
|
|
|
|
} catch (const std::exception& e) {
|
|
|
|
|
env->ThrowNew(env->FindClass("ru/ytkab0bp/slicebeam/slic3r/Slic3rRuntimeError"), e.what());
|
|
|
|
|
env->ThrowNew(env->FindClass("com/dark98/santoku/slic3r/Slic3rRuntimeError"), e.what());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JNIEXPORT void JNICALL Java_ru_ytkab0bp_slicebeam_slic3r_Native_model_1release(JNIEnv* env, jclass, jlong ptr) {
|
|
|
|
|
JNIEXPORT void JNICALL Java_com_dark98_santoku_slic3r_Native_model_1release(JNIEnv* env, jclass, jlong ptr) {
|
|
|
|
|
ModelRef* model = (ModelRef*) (intptr_t) ptr;
|
|
|
|
|
delete model;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JNIEXPORT jlong JNICALL Java_ru_ytkab0bp_slicebeam_slic3r_Native_gcoderesult_1load_1file(JNIEnv* env, jclass, jstring path, jstring name) {
|
|
|
|
|
JNIEXPORT jlong JNICALL Java_com_dark98_santoku_slic3r_Native_gcoderesult_1load_1file(JNIEnv* env, jclass, jstring path, jstring name) {
|
|
|
|
|
GCodeResultRef* ref = new GCodeResultRef();
|
|
|
|
|
|
|
|
|
|
GCodeProcessor processor;
|
|
|
|
@@ -949,7 +949,7 @@ extern "C" {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JNIEXPORT jstring JNICALL Java_ru_ytkab0bp_slicebeam_slic3r_Native_gcoderesult_1get_1recommended_1name(JNIEnv* env, jclass, jlong ptr) {
|
|
|
|
|
JNIEXPORT jstring JNICALL Java_com_dark98_santoku_slic3r_Native_gcoderesult_1get_1recommended_1name(JNIEnv* env, jclass, jlong ptr) {
|
|
|
|
|
GCodeResultRef* ref = (GCodeResultRef*) (intptr_t) ptr;
|
|
|
|
|
return env->NewStringUTF(ref->name.c_str());
|
|
|
|
|
}
|
|
|
|
@@ -1007,26 +1007,26 @@ extern "C" {
|
|
|
|
|
return gRole;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JNIEXPORT jdouble JNICALL Java_ru_ytkab0bp_slicebeam_slic3r_Native_gcoderesult_1get_1used_1filament_1mm(JNIEnv* env, jclass, jlong ptr, jint role) {
|
|
|
|
|
JNIEXPORT jdouble JNICALL Java_com_dark98_santoku_slic3r_Native_gcoderesult_1get_1used_1filament_1mm(JNIEnv* env, jclass, jlong ptr, jint role) {
|
|
|
|
|
GCodeResultRef* ref = (GCodeResultRef*) (intptr_t) ptr;
|
|
|
|
|
|
|
|
|
|
std::pair<double, double> info = ref->result.print_statistics.used_filaments_per_role.find(mapGCodeRole(role))->second;
|
|
|
|
|
return info.first * 1000.0 / 25.4;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JNIEXPORT jdouble JNICALL Java_ru_ytkab0bp_slicebeam_slic3r_Native_gcoderesult_1get_1used_1filament_1g(JNIEnv* env, jclass, jlong ptr, jint role) {
|
|
|
|
|
JNIEXPORT jdouble JNICALL Java_com_dark98_santoku_slic3r_Native_gcoderesult_1get_1used_1filament_1g(JNIEnv* env, jclass, jlong ptr, jint role) {
|
|
|
|
|
GCodeResultRef* ref = (GCodeResultRef*) (intptr_t) ptr;
|
|
|
|
|
|
|
|
|
|
std::pair<double, double> info = ref->result.print_statistics.used_filaments_per_role.find(mapGCodeRole(role))->second;
|
|
|
|
|
return info.second;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JNIEXPORT void JNICALL Java_ru_ytkab0bp_slicebeam_slic3r_Native_gcoderesult_1release(JNIEnv* env, jclass, jlong ptr) {
|
|
|
|
|
JNIEXPORT void JNICALL Java_com_dark98_santoku_slic3r_Native_gcoderesult_1release(JNIEnv* env, jclass, jlong ptr) {
|
|
|
|
|
GCodeResultRef* ref = (GCodeResultRef*) (intptr_t) ptr;
|
|
|
|
|
delete ref;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JNIEXPORT jlong JNICALL Java_ru_ytkab0bp_slicebeam_slic3r_Native_shader_1init_1from_1texts(JNIEnv* env, jclass, jstring name, jstring fsText, jstring vsText) {
|
|
|
|
|
JNIEXPORT jlong JNICALL Java_com_dark98_santoku_slic3r_Native_shader_1init_1from_1texts(JNIEnv* env, jclass, jstring name, jstring fsText, jstring vsText) {
|
|
|
|
|
const char* nameChars = env->GetStringUTFChars(name, JNI_FALSE);
|
|
|
|
|
const char* fsChars = env->GetStringUTFChars(fsText, JNI_FALSE);
|
|
|
|
|
const char* vsChars = env->GetStringUTFChars(vsText, JNI_FALSE);
|
|
|
|
@@ -1043,18 +1043,18 @@ extern "C" {
|
|
|
|
|
return (jlong) (intptr_t) ref;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JNIEXPORT jlong JNICALL Java_ru_ytkab0bp_slicebeam_slic3r_Native_glmodel_1create(JNIEnv* env, jclass) {
|
|
|
|
|
JNIEXPORT jlong JNICALL Java_com_dark98_santoku_slic3r_Native_glmodel_1create(JNIEnv* env, jclass) {
|
|
|
|
|
GLModelRef* ref = new GLModelRef();
|
|
|
|
|
return (jlong) (intptr_t) ref;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JNIEXPORT void JNICALL Java_ru_ytkab0bp_slicebeam_slic3r_Native_glmodel_1init_1raycast_1data(JNIEnv* env, jclass, jlong ptr) {
|
|
|
|
|
JNIEXPORT void JNICALL Java_com_dark98_santoku_slic3r_Native_glmodel_1init_1raycast_1data(JNIEnv* env, jclass, jlong ptr) {
|
|
|
|
|
GLModelRef* ref = (GLModelRef*) (intptr_t) ptr;
|
|
|
|
|
ref->emesh = new AABBMesh(ref->mesh, true);
|
|
|
|
|
ref->normals = its_face_normals(ref->mesh.its);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JNIEXPORT jdoubleArray JNICALL Java_ru_ytkab0bp_slicebeam_slic3r_Native_glmodel_1raycast_1closest_1hit(JNIEnv* env, jclass, jlong ptr, jdoubleArray pointArr, jdoubleArray directionArr) {
|
|
|
|
|
JNIEXPORT jdoubleArray JNICALL Java_com_dark98_santoku_slic3r_Native_glmodel_1raycast_1closest_1hit(JNIEnv* env, jclass, jlong ptr, jdoubleArray pointArr, jdoubleArray directionArr) {
|
|
|
|
|
GLModelRef* ref = (GLModelRef*) (intptr_t) ptr;
|
|
|
|
|
jdouble* point = env->GetDoubleArrayElements(pointArr, JNI_FALSE);
|
|
|
|
|
jdouble* direction = env->GetDoubleArrayElements(directionArr, JNI_FALSE);
|
|
|
|
@@ -1078,31 +1078,31 @@ extern "C" {
|
|
|
|
|
return arr;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JNIEXPORT void JNICALL Java_ru_ytkab0bp_slicebeam_slic3r_Native_glmodel_1init_1from_1model(JNIEnv* env, jclass, jlong ptr, jlong model) {
|
|
|
|
|
JNIEXPORT void JNICALL Java_com_dark98_santoku_slic3r_Native_glmodel_1init_1from_1model(JNIEnv* env, jclass, jlong ptr, jlong model) {
|
|
|
|
|
GLModelRef* ref = (GLModelRef*) (intptr_t) ptr;
|
|
|
|
|
ModelRef* mRef = (ModelRef*) (intptr_t) model;
|
|
|
|
|
ref->mesh = mRef->model.mesh();
|
|
|
|
|
ref->model.init_from(ref->mesh.its);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JNIEXPORT void JNICALL Java_ru_ytkab0bp_slicebeam_slic3r_Native_glmodel_1init_1from_1model_1object(JNIEnv* env, jclass, jlong ptr, jlong model, jint i) {
|
|
|
|
|
JNIEXPORT void JNICALL Java_com_dark98_santoku_slic3r_Native_glmodel_1init_1from_1model_1object(JNIEnv* env, jclass, jlong ptr, jlong model, jint i) {
|
|
|
|
|
GLModelRef* ref = (GLModelRef*) (intptr_t) ptr;
|
|
|
|
|
ModelRef* mRef = (ModelRef*) (intptr_t) model;
|
|
|
|
|
ref->mesh = mRef->model.objects[i]->mesh();
|
|
|
|
|
ref->model.init_from(ref->mesh.its);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JNIEXPORT void JNICALL Java_ru_ytkab0bp_slicebeam_slic3r_Native_glmodel_1set_1color(JNIEnv* env, jclass, jlong ptr, jfloat red, jfloat green, jfloat blue, jfloat alpha) {
|
|
|
|
|
JNIEXPORT void JNICALL Java_com_dark98_santoku_slic3r_Native_glmodel_1set_1color(JNIEnv* env, jclass, jlong ptr, jfloat red, jfloat green, jfloat blue, jfloat alpha) {
|
|
|
|
|
GLModelRef* ref = (GLModelRef*) (intptr_t) ptr;
|
|
|
|
|
ref->model.set_color(ColorRGBA(red, green, blue, alpha));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JNIEXPORT void JNICALL Java_ru_ytkab0bp_slicebeam_slic3r_Native_glmodel_1stilized_1arrow(JNIEnv* env, jclass, jlong ptr, jfloat tip_radius, jfloat tip_length, jfloat stem_radius, jfloat stem_length) {
|
|
|
|
|
JNIEXPORT void JNICALL Java_com_dark98_santoku_slic3r_Native_glmodel_1stilized_1arrow(JNIEnv* env, jclass, jlong ptr, jfloat tip_radius, jfloat tip_length, jfloat stem_radius, jfloat stem_length) {
|
|
|
|
|
GLModelRef* ref = (GLModelRef*) (intptr_t) ptr;
|
|
|
|
|
ref->model.init_from(stilized_arrow(16, tip_radius, tip_length, stem_radius, stem_length));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JNIEXPORT void JNICALL Java_ru_ytkab0bp_slicebeam_slic3r_Native_glmodel_1init_1background_1triangles(JNIEnv* env, jclass, jlong ptr) {
|
|
|
|
|
JNIEXPORT void JNICALL Java_com_dark98_santoku_slic3r_Native_glmodel_1init_1background_1triangles(JNIEnv* env, jclass, jlong ptr) {
|
|
|
|
|
GLModelRef* ref = (GLModelRef*) (intptr_t) ptr;
|
|
|
|
|
ref->model.reset();
|
|
|
|
|
|
|
|
|
@@ -1124,7 +1124,7 @@ extern "C" {
|
|
|
|
|
ref->model.init_from(std::move(init_data));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JNIEXPORT void JNICALL Java_ru_ytkab0bp_slicebeam_slic3r_Native_glmodel_1init_1bounding_1box(JNIEnv* env, jclass, jlong ptr, jlong modelPtr, jint i) {
|
|
|
|
|
JNIEXPORT void JNICALL Java_com_dark98_santoku_slic3r_Native_glmodel_1init_1bounding_1box(JNIEnv* env, jclass, jlong ptr, jlong modelPtr, jint i) {
|
|
|
|
|
GLModelRef* ref = (GLModelRef*) (intptr_t) ptr;
|
|
|
|
|
ModelRef* modelRef = (ModelRef*) (intptr_t) modelPtr;
|
|
|
|
|
|
|
|
|
@@ -1208,12 +1208,12 @@ extern "C" {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JNIEXPORT void JNICALL Java_ru_ytkab0bp_slicebeam_slic3r_Native_glmodel_1render(JNIEnv* env, jclass, jlong ptr) {
|
|
|
|
|
JNIEXPORT void JNICALL Java_com_dark98_santoku_slic3r_Native_glmodel_1render(JNIEnv* env, jclass, jlong ptr) {
|
|
|
|
|
GLModelRef* ref = (GLModelRef*) (intptr_t) ptr;
|
|
|
|
|
ref->model.render();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JNIEXPORT void JNICALL Java_ru_ytkab0bp_slicebeam_slic3r_Native_glmodel_1reset(JNIEnv* env, jclass, jlong ptr) {
|
|
|
|
|
JNIEXPORT void JNICALL Java_com_dark98_santoku_slic3r_Native_glmodel_1reset(JNIEnv* env, jclass, jlong ptr) {
|
|
|
|
|
GLModelRef* ref = (GLModelRef*) (intptr_t) ptr;
|
|
|
|
|
ref->model.reset();
|
|
|
|
|
ref->mesh.clear();
|
|
|
|
@@ -1221,28 +1221,28 @@ extern "C" {
|
|
|
|
|
ref->normals.clear();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JNIEXPORT jboolean JNICALL Java_ru_ytkab0bp_slicebeam_slic3r_Native_glmodel_1is_1initialized(JNIEnv* env, jclass, jlong ptr) {
|
|
|
|
|
JNIEXPORT jboolean JNICALL Java_com_dark98_santoku_slic3r_Native_glmodel_1is_1initialized(JNIEnv* env, jclass, jlong ptr) {
|
|
|
|
|
GLModelRef* ref = (GLModelRef*) (intptr_t) ptr;
|
|
|
|
|
return ref->model.is_initialized();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JNIEXPORT jboolean JNICALL Java_ru_ytkab0bp_slicebeam_slic3r_Native_glmodel_1is_1empty(JNIEnv* env, jclass, jlong ptr) {
|
|
|
|
|
JNIEXPORT jboolean JNICALL Java_com_dark98_santoku_slic3r_Native_glmodel_1is_1empty(JNIEnv* env, jclass, jlong ptr) {
|
|
|
|
|
GLModelRef* ref = (GLModelRef*) (intptr_t) ptr;
|
|
|
|
|
return ref->model.is_empty();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JNIEXPORT void JNICALL Java_ru_ytkab0bp_slicebeam_slic3r_Native_glmodel_1release(JNIEnv* env, jclass, jlong ptr) {
|
|
|
|
|
JNIEXPORT void JNICALL Java_com_dark98_santoku_slic3r_Native_glmodel_1release(JNIEnv* env, jclass, jlong ptr) {
|
|
|
|
|
GLModelRef* ref = (GLModelRef*) (intptr_t) ptr;
|
|
|
|
|
ref->model.reset();
|
|
|
|
|
delete ref;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JNIEXPORT jint JNICALL Java_ru_ytkab0bp_slicebeam_slic3r_Native_shader_1get_1id(JNIEnv* env, jclass, jlong ptr) {
|
|
|
|
|
JNIEXPORT jint JNICALL Java_com_dark98_santoku_slic3r_Native_shader_1get_1id(JNIEnv* env, jclass, jlong ptr) {
|
|
|
|
|
ShaderRef* shader = (ShaderRef*) (intptr_t) ptr;
|
|
|
|
|
return shader->program.get_id();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JNIEXPORT jint JNICALL Java_ru_ytkab0bp_slicebeam_slic3r_Native_shader_1get_1uniform_1location(JNIEnv* env, jclass, jlong ptr, jstring name) {
|
|
|
|
|
JNIEXPORT jint JNICALL Java_com_dark98_santoku_slic3r_Native_shader_1get_1uniform_1location(JNIEnv* env, jclass, jlong ptr, jstring name) {
|
|
|
|
|
const char* chars = env->GetStringUTFChars(name, JNI_FALSE);
|
|
|
|
|
ShaderRef* shader = (ShaderRef*) (intptr_t) ptr;
|
|
|
|
|
if (shader) {
|
|
|
|
@@ -1253,7 +1253,7 @@ extern "C" {
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JNIEXPORT jint JNICALL Java_ru_ytkab0bp_slicebeam_slic3r_Native_shader_1get_1attrib_1location(JNIEnv* env, jclass, jlong ptr, jstring name) {
|
|
|
|
|
JNIEXPORT jint JNICALL Java_com_dark98_santoku_slic3r_Native_shader_1get_1attrib_1location(JNIEnv* env, jclass, jlong ptr, jstring name) {
|
|
|
|
|
const char *chars = env->GetStringUTFChars(name, JNI_FALSE);
|
|
|
|
|
ShaderRef *shader = (ShaderRef *) (intptr_t) ptr;
|
|
|
|
|
if (shader) {
|
|
|
|
@@ -1264,22 +1264,22 @@ extern "C" {
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JNIEXPORT void JNICALL Java_ru_ytkab0bp_slicebeam_slic3r_Native_shader_1start_1using(JNIEnv* env, jclass, jlong ptr) {
|
|
|
|
|
JNIEXPORT void JNICALL Java_com_dark98_santoku_slic3r_Native_shader_1start_1using(JNIEnv* env, jclass, jlong ptr) {
|
|
|
|
|
ShaderRef* shader = (ShaderRef*) (intptr_t) ptr;
|
|
|
|
|
shader->program.start_using();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JNIEXPORT void JNICALL Java_ru_ytkab0bp_slicebeam_slic3r_Native_shader_1stop_1using(JNIEnv* env, jclass, jlong ptr) {
|
|
|
|
|
JNIEXPORT void JNICALL Java_com_dark98_santoku_slic3r_Native_shader_1stop_1using(JNIEnv* env, jclass, jlong ptr) {
|
|
|
|
|
ShaderRef* shader = (ShaderRef*) (intptr_t) ptr;
|
|
|
|
|
shader->program.stop_using();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JNIEXPORT void JNICALL Java_ru_ytkab0bp_slicebeam_slic3r_Native_shader_1release(JNIEnv* env, jclass, jlong ptr) {
|
|
|
|
|
JNIEXPORT void JNICALL Java_com_dark98_santoku_slic3r_Native_shader_1release(JNIEnv* env, jclass, jlong ptr) {
|
|
|
|
|
ShaderRef* shader = (ShaderRef*) (intptr_t) ptr;
|
|
|
|
|
delete shader;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JNIEXPORT void JNICALL Java_ru_ytkab0bp_slicebeam_slic3r_Native_utils_1calc_1view_1normal_1matrix(JNIEnv* env, jclass, jdoubleArray view_matrix, jdoubleArray world_matrix, jdoubleArray normal_matrix) {
|
|
|
|
|
JNIEXPORT void JNICALL Java_com_dark98_santoku_slic3r_Native_utils_1calc_1view_1normal_1matrix(JNIEnv* env, jclass, jdoubleArray view_matrix, jdoubleArray world_matrix, jdoubleArray normal_matrix) {
|
|
|
|
|
jdouble* viewMatrix = env->GetDoubleArrayElements(view_matrix, JNI_FALSE);
|
|
|
|
|
jdouble* worldMatrix = env->GetDoubleArrayElements(world_matrix, JNI_FALSE);
|
|
|
|
|
|
|
|
|
@@ -1293,7 +1293,7 @@ extern "C" {
|
|
|
|
|
env->ReleaseDoubleArrayElements(world_matrix, worldMatrix, JNI_ABORT);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JNIEXPORT jlong JNICALL Java_ru_ytkab0bp_slicebeam_slic3r_Native_utils_1config_1create(JNIEnv* env, jclass, jstring config) {
|
|
|
|
|
JNIEXPORT jlong JNICALL Java_com_dark98_santoku_slic3r_Native_utils_1config_1create(JNIEnv* env, jclass, jstring config) {
|
|
|
|
|
ConfigRef* ref = new ConfigRef();
|
|
|
|
|
const char* config_ini = env->GetStringUTFChars(config, JNI_FALSE);
|
|
|
|
|
ref->config.load_from_ini_string(config_ini, ForwardCompatibilitySubstitutionRule::Disable);
|
|
|
|
@@ -1306,12 +1306,12 @@ extern "C" {
|
|
|
|
|
return (jlong) (intptr_t) ref;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JNIEXPORT void JNICALL Java_ru_ytkab0bp_slicebeam_slic3r_Native_utils_1config_1release(JNIEnv* env, jclass, jlong ptr) {
|
|
|
|
|
JNIEXPORT void JNICALL Java_com_dark98_santoku_slic3r_Native_utils_1config_1release(JNIEnv* env, jclass, jlong ptr) {
|
|
|
|
|
ConfigRef* ref = (ConfigRef*) (intptr_t) ptr;
|
|
|
|
|
delete ref;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JNIEXPORT jboolean JNICALL Java_ru_ytkab0bp_slicebeam_slic3r_Native_utils_1config_1check_1compatibility(JNIEnv* env, jclass, jlong ptr, jstring cond) {
|
|
|
|
|
JNIEXPORT jboolean JNICALL Java_com_dark98_santoku_slic3r_Native_utils_1config_1check_1compatibility(JNIEnv* env, jclass, jlong ptr, jstring cond) {
|
|
|
|
|
ConfigRef* ref = (ConfigRef*) (intptr_t) ptr;
|
|
|
|
|
const char* condition = env->GetStringUTFChars(cond, JNI_FALSE);
|
|
|
|
|
|
|
|
|
@@ -1327,7 +1327,7 @@ extern "C" {
|
|
|
|
|
return value;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JNIEXPORT jstring JNICALL Java_ru_ytkab0bp_slicebeam_slic3r_Native_utils_1config_1eval(JNIEnv* env, jclass, jlong ptr, jstring cond) {
|
|
|
|
|
JNIEXPORT jstring JNICALL Java_com_dark98_santoku_slic3r_Native_utils_1config_1eval(JNIEnv* env, jclass, jlong ptr, jstring cond) {
|
|
|
|
|
ConfigRef *ref = (ConfigRef *) (intptr_t) ptr;
|
|
|
|
|
const char *condition = env->GetStringUTFChars(cond, JNI_FALSE);
|
|
|
|
|
|
|
|
|
@@ -1339,12 +1339,12 @@ extern "C" {
|
|
|
|
|
} catch (const std::runtime_error &err) {
|
|
|
|
|
env->ReleaseStringUTFChars(cond, condition);
|
|
|
|
|
|
|
|
|
|
env->ThrowNew(env->FindClass("ru/ytkab0bp/slicebeam/slic3r/Slic3rRuntimeError"), err.what());
|
|
|
|
|
env->ThrowNew(env->FindClass("com/dark98/santoku/slic3r/Slic3rRuntimeError"), err.what());
|
|
|
|
|
return nullptr;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JNIEXPORT jdoubleArray JNICALL Java_ru_ytkab0bp_slicebeam_slic3r_Native_utils_1unproject(JNIEnv* env, jclass, jdoubleArray view_matrix, jdoubleArray projection_matrix, jint screen_width, jint screen_height, jdouble screen_x, jdouble screen_y) {
|
|
|
|
|
JNIEXPORT jdoubleArray JNICALL Java_com_dark98_santoku_slic3r_Native_utils_1unproject(JNIEnv* env, jclass, jdoubleArray view_matrix, jdoubleArray projection_matrix, jint screen_width, jint screen_height, jdouble screen_x, jdouble screen_y) {
|
|
|
|
|
jdouble* viewMatrix = env->GetDoubleArrayElements(view_matrix, JNI_FALSE);
|
|
|
|
|
jdouble* projectionMatrix = env->GetDoubleArrayElements(projection_matrix, JNI_FALSE);
|
|
|
|
|
|
|
|
|
@@ -1365,7 +1365,7 @@ extern "C" {
|
|
|
|
|
return arr;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JNIEXPORT jlong JNICALL Java_ru_ytkab0bp_slicebeam_slic3r_Native_bed_1create(JNIEnv* env, jclass, jlongArray data) {
|
|
|
|
|
JNIEXPORT jlong JNICALL Java_com_dark98_santoku_slic3r_Native_bed_1create(JNIEnv* env, jclass, jlongArray data) {
|
|
|
|
|
BedRef* ref = new BedRef();
|
|
|
|
|
GLModelRef* refs = new GLModelRef[3];
|
|
|
|
|
refs[0] = GLModelRef();
|
|
|
|
@@ -1382,7 +1382,7 @@ extern "C" {
|
|
|
|
|
return (jlong) (intptr_t) ref;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JNIEXPORT void JNICALL Java_ru_ytkab0bp_slicebeam_slic3r_Native_bed_1configure(JNIEnv* env, jclass, jlong ptr, jstring config_path) {
|
|
|
|
|
JNIEXPORT void JNICALL Java_com_dark98_santoku_slic3r_Native_bed_1configure(JNIEnv* env, jclass, jlong ptr, jstring config_path) {
|
|
|
|
|
BedRef* ref = (BedRef*) (intptr_t) ptr;
|
|
|
|
|
|
|
|
|
|
const char* chars = env->GetStringUTFChars(config_path, JNI_FALSE);
|
|
|
|
@@ -1395,7 +1395,7 @@ extern "C" {
|
|
|
|
|
ref->contour = ExPolygon(Polygon::new_scale(bed_shape));
|
|
|
|
|
const BoundingBox bbox = ref->contour.contour.bounding_box();
|
|
|
|
|
if (!bbox.defined) {
|
|
|
|
|
env->ThrowNew(env->FindClass("ru/ytkab0bp/slicebeam/slic3r/Slic3rRuntimeError"), "Invalid bed shape");
|
|
|
|
|
env->ThrowNew(env->FindClass("com/dark98/santoku/slic3r/Slic3rRuntimeError"), "Invalid bed shape");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -1409,7 +1409,7 @@ extern "C" {
|
|
|
|
|
bed_util_init_contourlines(ref->contour, ref->contourlines);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JNIEXPORT void JNICALL Java_ru_ytkab0bp_slicebeam_slic3r_Native_bed_1init_1triangles_1mesh(JNIEnv* env, jclass, jlong ptr, jlong triangles_ptr) {
|
|
|
|
|
JNIEXPORT void JNICALL Java_com_dark98_santoku_slic3r_Native_bed_1init_1triangles_1mesh(JNIEnv* env, jclass, jlong ptr, jlong triangles_ptr) {
|
|
|
|
|
auto ref = reinterpret_cast<BedRef*>(ptr);
|
|
|
|
|
auto tRef = reinterpret_cast<GLModelRef*>(triangles_ptr);
|
|
|
|
|
|
|
|
|
@@ -1422,7 +1422,7 @@ extern "C" {
|
|
|
|
|
bed_util_init_triangles_its(contour, &tRef->mesh.its);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JNIEXPORT jboolean JNICALL Java_ru_ytkab0bp_slicebeam_slic3r_Native_bed_1arrange(JNIEnv* env, jclass, jlong ptr, jlong model) {
|
|
|
|
|
JNIEXPORT jboolean JNICALL Java_com_dark98_santoku_slic3r_Native_bed_1arrange(JNIEnv* env, jclass, jlong ptr, jlong model) {
|
|
|
|
|
BedRef* ref = (BedRef*) (intptr_t) ptr;
|
|
|
|
|
ModelRef* mRef = (ModelRef*) (intptr_t) model;
|
|
|
|
|
|
|
|
|
@@ -1489,7 +1489,7 @@ extern "C" {
|
|
|
|
|
return arranged;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JNIEXPORT jdoubleArray JNICALL Java_ru_ytkab0bp_slicebeam_slic3r_Native_bed_1get_1bounding_1volume(JNIEnv* env, jclass, jlong ptr) {
|
|
|
|
|
JNIEXPORT jdoubleArray JNICALL Java_com_dark98_santoku_slic3r_Native_bed_1get_1bounding_1volume(JNIEnv* env, jclass, jlong ptr) {
|
|
|
|
|
BedRef* ref = (BedRef*) (intptr_t) ptr;
|
|
|
|
|
jdoubleArray arr = env->NewDoubleArray(6);
|
|
|
|
|
jdouble* elements = new jdouble[6];
|
|
|
|
@@ -1503,22 +1503,22 @@ extern "C" {
|
|
|
|
|
return arr;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JNIEXPORT jint JNICALL Java_ru_ytkab0bp_slicebeam_slic3r_Native_bed_1get_1bounding_1volume_1max_1size(JNIEnv* env, jclass, jlong ptr) {
|
|
|
|
|
JNIEXPORT jint JNICALL Java_com_dark98_santoku_slic3r_Native_bed_1get_1bounding_1volume_1max_1size(JNIEnv* env, jclass, jlong ptr) {
|
|
|
|
|
BedRef* ref = (BedRef*) (intptr_t) ptr;
|
|
|
|
|
return ref->build_volume.bounding_volume().max_size();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JNIEXPORT void JNICALL Java_ru_ytkab0bp_slicebeam_slic3r_Native_bed_1release(JNIEnv* env, jclass, jlong ptr) {
|
|
|
|
|
JNIEXPORT void JNICALL Java_com_dark98_santoku_slic3r_Native_bed_1release(JNIEnv* env, jclass, jlong ptr) {
|
|
|
|
|
BedRef* ref = (BedRef*) (intptr_t) ptr;
|
|
|
|
|
delete ref;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JNIEXPORT jlong JNICALL Java_ru_ytkab0bp_slicebeam_slic3r_Native_vgcode_1create(JNIEnv* env, jclass) {
|
|
|
|
|
JNIEXPORT jlong JNICALL Java_com_dark98_santoku_slic3r_Native_vgcode_1create(JNIEnv* env, jclass) {
|
|
|
|
|
GCodeViewerRef* ref = new GCodeViewerRef();
|
|
|
|
|
return (jlong) (intptr_t) ref;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JNIEXPORT void JNICALL Java_ru_ytkab0bp_slicebeam_slic3r_Native_vgcode_1set_1colors(JNIEnv* env, jclass, jlong ptr, jintArray colorsArr) {
|
|
|
|
|
JNIEXPORT void JNICALL Java_com_dark98_santoku_slic3r_Native_vgcode_1set_1colors(JNIEnv* env, jclass, jlong ptr, jintArray colorsArr) {
|
|
|
|
|
GCodeViewerRef* ref = (GCodeViewerRef*) (intptr_t) ptr;
|
|
|
|
|
|
|
|
|
|
jint* colors = env->GetIntArrayElements(colorsArr, JNI_FALSE);
|
|
|
|
@@ -1532,7 +1532,7 @@ extern "C" {
|
|
|
|
|
env->ReleaseIntArrayElements(colorsArr, colors, JNI_ABORT);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JNIEXPORT void JNICALL Java_ru_ytkab0bp_slicebeam_slic3r_Native_vgcode_1render(JNIEnv* env, jclass, jlong ptr, jfloatArray viewMatrixArr, jfloatArray projectionMatrixArr) {
|
|
|
|
|
JNIEXPORT void JNICALL Java_com_dark98_santoku_slic3r_Native_vgcode_1render(JNIEnv* env, jclass, jlong ptr, jfloatArray viewMatrixArr, jfloatArray projectionMatrixArr) {
|
|
|
|
|
GCodeViewerRef* ref = (GCodeViewerRef*) (intptr_t) ptr;
|
|
|
|
|
jfloat* viewMatrix = env->GetFloatArrayElements(viewMatrixArr, JNI_FALSE);
|
|
|
|
|
jfloat* projectionMatrix = env->GetFloatArrayElements(projectionMatrixArr, JNI_FALSE);
|
|
|
|
@@ -1548,19 +1548,19 @@ extern "C" {
|
|
|
|
|
env->ReleaseFloatArrayElements(projectionMatrixArr, projectionMatrix, JNI_ABORT);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JNIEXPORT void JNICALL Java_ru_ytkab0bp_slicebeam_slic3r_Native_vgcode_1init(JNIEnv* env, jclass, jlong ptr) {
|
|
|
|
|
JNIEXPORT void JNICALL Java_com_dark98_santoku_slic3r_Native_vgcode_1init(JNIEnv* env, jclass, jlong ptr) {
|
|
|
|
|
GCodeViewerRef* ref = (GCodeViewerRef*) (intptr_t) ptr;
|
|
|
|
|
if (ref->initialized) return;
|
|
|
|
|
ref->viewer.init(reinterpret_cast<const char*>(glGetString(GL_VERSION)));
|
|
|
|
|
ref->initialized = true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JNIEXPORT jboolean JNICALL Java_ru_ytkab0bp_slicebeam_slic3r_Native_vgcode_1is_1initialized(JNIEnv* env, jclass, jlong ptr) {
|
|
|
|
|
JNIEXPORT jboolean JNICALL Java_com_dark98_santoku_slic3r_Native_vgcode_1is_1initialized(JNIEnv* env, jclass, jlong ptr) {
|
|
|
|
|
GCodeViewerRef* ref = (GCodeViewerRef*) (intptr_t) ptr;
|
|
|
|
|
return ref->initialized;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JNIEXPORT void JNICALL Java_ru_ytkab0bp_slicebeam_slic3r_Native_vgcode_1load(JNIEnv* env, jclass, jlong ptr, jlong resultPtr) {
|
|
|
|
|
JNIEXPORT void JNICALL Java_com_dark98_santoku_slic3r_Native_vgcode_1load(JNIEnv* env, jclass, jlong ptr, jlong resultPtr) {
|
|
|
|
|
GCodeViewerRef* ref = (GCodeViewerRef*) (intptr_t) ptr;
|
|
|
|
|
GCodeResultRef* resultRef = (GCodeResultRef*) (intptr_t) resultPtr;
|
|
|
|
|
|
|
|
|
@@ -1569,23 +1569,23 @@ extern "C" {
|
|
|
|
|
ref->viewer.set_time_mode(libvgcode::ETimeMode::Normal);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JNIEXPORT void JNICALL Java_ru_ytkab0bp_slicebeam_slic3r_Native_vgcode_1reset(JNIEnv* env, jclass, jlong ptr) {
|
|
|
|
|
JNIEXPORT void JNICALL Java_com_dark98_santoku_slic3r_Native_vgcode_1reset(JNIEnv* env, jclass, jlong ptr) {
|
|
|
|
|
GCodeViewerRef* ref = (GCodeViewerRef*) (intptr_t) ptr;
|
|
|
|
|
ref->viewer.reset();
|
|
|
|
|
ref->initialized = false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JNIEXPORT jlong JNICALL Java_ru_ytkab0bp_slicebeam_slic3r_Native_vgcode_1get_1layers_1count(JNIEnv* env, jclass, jlong ptr) {
|
|
|
|
|
JNIEXPORT jlong JNICALL Java_com_dark98_santoku_slic3r_Native_vgcode_1get_1layers_1count(JNIEnv* env, jclass, jlong ptr) {
|
|
|
|
|
GCodeViewerRef* ref = (GCodeViewerRef*) (intptr_t) ptr;
|
|
|
|
|
return ref->viewer.get_layers_count();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JNIEXPORT void JNICALL Java_ru_ytkab0bp_slicebeam_slic3r_Native_vgcode_1set_1layers_1view_1range(JNIEnv* env, jclass, jlong ptr, jlong min, jlong max) {
|
|
|
|
|
JNIEXPORT void JNICALL Java_com_dark98_santoku_slic3r_Native_vgcode_1set_1layers_1view_1range(JNIEnv* env, jclass, jlong ptr, jlong min, jlong max) {
|
|
|
|
|
GCodeViewerRef* ref = (GCodeViewerRef*) (intptr_t) ptr;
|
|
|
|
|
ref->viewer.set_layers_view_range(static_cast<uint32_t>(min), static_cast<uint32_t>(max));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JNIEXPORT jlongArray JNICALL Java_ru_ytkab0bp_slicebeam_slic3r_Native_vgcode_1get_1layers_1view_1range(JNIEnv* env, jclass, jlong ptr) {
|
|
|
|
|
JNIEXPORT jlongArray JNICALL Java_com_dark98_santoku_slic3r_Native_vgcode_1get_1layers_1view_1range(JNIEnv* env, jclass, jlong ptr) {
|
|
|
|
|
GCodeViewerRef* ref = (GCodeViewerRef*) (intptr_t) ptr;
|
|
|
|
|
jlongArray arr = env->NewLongArray(2);
|
|
|
|
|
auto range = ref->viewer.get_layers_view_range();
|
|
|
|
@@ -1595,13 +1595,13 @@ extern "C" {
|
|
|
|
|
return arr;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JNIEXPORT void JNICALL Java_ru_ytkab0bp_slicebeam_slic3r_Native_vgcode_1release(JNIEnv* env, jclass, jlong ptr) {
|
|
|
|
|
JNIEXPORT void JNICALL Java_com_dark98_santoku_slic3r_Native_vgcode_1release(JNIEnv* env, jclass, jlong ptr) {
|
|
|
|
|
GCodeViewerRef* ref = (GCodeViewerRef*) (intptr_t) ptr;
|
|
|
|
|
ref->viewer.shutdown();
|
|
|
|
|
delete ref;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JNIEXPORT jfloat JNICALL Java_ru_ytkab0bp_slicebeam_slic3r_Native_vgcode_1get_1estimated_1time(JNIEnv* env, jclass, jlong ptr) {
|
|
|
|
|
JNIEXPORT jfloat JNICALL Java_com_dark98_santoku_slic3r_Native_vgcode_1get_1estimated_1time(JNIEnv* env, jclass, jlong ptr) {
|
|
|
|
|
GCodeViewerRef* ref = (GCodeViewerRef*) (intptr_t) ptr;
|
|
|
|
|
return ref->viewer.get_estimated_time();
|
|
|
|
|
}
|
|
|
|
@@ -1659,17 +1659,17 @@ extern "C" {
|
|
|
|
|
return crole;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JNIEXPORT jfloat JNICALL Java_ru_ytkab0bp_slicebeam_slic3r_Native_vgcode_1get_1estimated_1time_1role(JNIEnv* env, jclass, jlong ptr, jint role) {
|
|
|
|
|
JNIEXPORT jfloat JNICALL Java_com_dark98_santoku_slic3r_Native_vgcode_1get_1estimated_1time_1role(JNIEnv* env, jclass, jlong ptr, jint role) {
|
|
|
|
|
GCodeViewerRef* ref = (GCodeViewerRef*) (intptr_t) ptr;
|
|
|
|
|
return ref->viewer.get_extrusion_role_estimated_time(mapRole(role));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JNIEXPORT jboolean JNICALL Java_ru_ytkab0bp_slicebeam_slic3r_Native_vgcode_1is_1extrusion_1role_1visible(JNIEnv* env, jclass, jlong ptr, jint role) {
|
|
|
|
|
JNIEXPORT jboolean JNICALL Java_com_dark98_santoku_slic3r_Native_vgcode_1is_1extrusion_1role_1visible(JNIEnv* env, jclass, jlong ptr, jint role) {
|
|
|
|
|
GCodeViewerRef* ref = (GCodeViewerRef*) (intptr_t) ptr;
|
|
|
|
|
return ref->viewer.is_extrusion_role_visible(mapRole(role));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JNIEXPORT void JNICALL Java_ru_ytkab0bp_slicebeam_slic3r_Native_vgcode_1toggle_1extrusion_1role_1visibility(JNIEnv* env, jclass, jlong ptr, jint role) {
|
|
|
|
|
JNIEXPORT void JNICALL Java_com_dark98_santoku_slic3r_Native_vgcode_1toggle_1extrusion_1role_1visibility(JNIEnv* env, jclass, jlong ptr, jint role) {
|
|
|
|
|
GCodeViewerRef* ref = (GCodeViewerRef*) (intptr_t) ptr;
|
|
|
|
|
ref->viewer.toggle_extrusion_role_visibility(mapRole(role));
|
|
|
|
|
}
|