Commit cee436d581d447b5c880b6b35718a157dc58abac

Authored by Hu Chunming
1 parent 531d44a1

完成道路信息返回

Showing 1 changed file with 49 additions and 9 deletions
jni/VehicleNativeInterface.cpp
... ... @@ -329,6 +329,9 @@ JNIEXPORT jint JNICALL Java_com_objecteye_nativeinterface_vehicle_VehicleNativeI
329 329 // getClass
330 330 jclass cls_vehicleAnalysisResult = env->FindClass("com/objecteye/pojo/vehicle/VehicleAnalysisResultParam");
331 331 jclass cls_VehicleInfo = env->FindClass("com/objecteye/pojo/vehicle/VehicleInfoParam");
  332 + jclass cls_LineInfo = env->FindClass("com/objecteye/pojo/vehicle/LineInfoParam");
  333 + jclass cls_SegInfo = env->FindClass("com/objecteye/pojo/vehicle/SegInfoParam");
  334 +
332 335 jclass cls_VehicleDetectResult = env->FindClass("com/objecteye/pojo/vehicle/VehicleDetectResultParam");
333 336 jclass cls_VehicleColorResult = env->FindClass("com/objecteye/pojo/vehicle/VehicleColorResultParam");
334 337 jclass cls_VehicleRecgResult = env->FindClass("com/objecteye/pojo/vehicle/VehicleRecognizeResultParam");
... ... @@ -349,16 +352,16 @@ JNIEXPORT jint JNICALL Java_com_objecteye_nativeinterface_vehicle_VehicleNativeI
349 352 jclass cls_MtaDetailsParam = env->FindClass("com/objecteye/pojo/vehicle/MtaDetailsParam");
350 353 //jclass cls_StainVplateResultParam = env->FindClass("com/objecteye/pojo/vehicle/StainVplateResultParam");
351 354 jclass cls_MannedResultParam = env->FindClass("com/objecteye/pojo/vehicle/MannedResultParam");
352   - //jclass cls_SyPoint = env->FindClass("com/objecteye/pojo/common/SyPointParam");//wh20210601������pose���
  355 +
353 356 //jclass cls_VehiclePoseResultParam = env->FindClass("com/objecteye/pojo/vehicle/VehiclePoseResultParam");//wh20210601������pose���
354 357  
355   - //cout << "1111111111111111111" << endl;
  358 + jclass cls_SyPoint = env->FindClass("com/objecteye/pojo/common/SyPointParam");
356 359  
357 360  
358 361 //getmethodId
359   - jmethodID mid_vehicleAnalysisResult = env->GetMethodID(cls_vehicleAnalysisResult, "<init>", "([Lcom/objecteye/pojo/vehicle/VehicleInfoParam;I)V");
  362 + jmethodID mid_vehicleAnalysisResult = env->GetMethodID(cls_vehicleAnalysisResult, "<init>", "([Lcom/objecteye/pojo/vehicle/VehicleInfoParam;com/objecteye/pojo/vehicle/LineInfoParam;com/objecteye/pojo/vehicle/SegInfoParam;I)V");
360 363  
361   - jmethodID mid_VehicleInfo = env->GetMethodID(cls_VehicleInfo, "<init>", "(Lcom/objecteye/pojo/vehicle/VehicleDetectResultParam;Lcom/objecteye/pojo/vehicle/VehicleDetectResultParam;Lcom/objecteye/pojo/vehicle/VehicleDetectResultParam;Lcom/objecteye/pojo/vehicle/VehicleColorResultParam;Lcom/objecteye/pojo/vehicle/VehicleRecognizeResultParam;Lcom/objecteye/pojo/vehicle/VehiclePlateResultParam;Lcom/objecteye/pojo/vehicle/VehiclePendantDetectResultParam;Lcom/objecteye/pojo/vehicle/VehicleIllegalDetectResultParam;Lcom/objecteye/pojo/vehicle/VehicleFeatureResultParam;Lcom/objecteye/pojo/vehicle/MtaResultParam;Lcom/objecteye/pojo/vehicle/MannedResultParam;I)V");
  364 + jmethodID mid_VehicleInfo = env->GetMethodID(cls_VehicleInfo, "<init>", "(Lcom/objecteye/pojo/vehicle/VehicleDetectResultParam;Lcom/objecteye/pojo/vehicle/VehicleDetectResultParam;Lcom/objecteye/pojo/vehicle/VehicleDetectResultParam;Lcom/objecteye/pojo/vehicle/VehicleColorResultParam;Lcom/objecteye/pojo/vehicle/VehicleRecognizeResultParam;Lcom/objecteye/pojo/vehicle/VehiclePlateResultParam;Lcom/objecteye/pojo/vehicle/VehiclePendantDetectResultParam;Lcom/objecteye/pojo/vehicle/VehicleIllegalDetectResultParam;Lcom/objecteye/pojo/vehicle/VehicleFeatureResultParam;Lcom/objecteye/pojo/vehicle/MtaResultParam;Lcom/objecteye/pojo/vehicle/MannedResultParam;I;I;I;I;I;I;I;I;I;I;I)V");
362 365  
363 366 jmethodID mid_VehicleDetectResult = env->GetMethodID(cls_VehicleDetectResult, "<init>", "(Lcom/objecteye/pojo/common/SyRectParam;F)V");
364 367 jmethodID mid_VehicleColorResult = env->GetMethodID(cls_VehicleColorResult, "<init>", "(FI)V");
... ... @@ -382,17 +385,18 @@ JNIEXPORT jint JNICALL Java_com_objecteye_nativeinterface_vehicle_VehicleNativeI
382 385 //jmethodID mid_StainVplateResultParam = env->GetMethodID(cls_StainVplateResultParam, "<init>", "(FI)V");
383 386 //jmethodID mid_MucktruckcoverResult = env->GetMethodID(cls_MucktruckcoverResult, "<init>", "(IF)V");
384 387 jmethodID mid_MannedResult = env->GetMethodID(cls_MannedResultParam, "<init>", "([Lcom/objecteye/pojo/vehicle/VehicleDetectResultParam;I)V");//wh20220222
385   - //jmethodID mid_SyPoint = env->GetMethodID(cls_SyPoint, "<init>", "(II)V");//wh20210601������pose���
  388 + jmethodID mid_SyPoint = env->GetMethodID(cls_SyPoint, "<init>", "(II)V");//wh20210601������pose���
386 389 //jmethodID mid_VehiclePoseResult = env->GetMethodID(cls_VehiclePoseResultParam, "<init>", "([Lcom/objecteye/pojo/common/SyPointParam;[F[FDDD)V");
387   -
388   - //cout << "2222222222222222222" << endl;
  390 +
  391 + jmethodID mid_LineInfo = env->GetMethodID(cls_LineInfo, "<init>", "(Lcom/objecteye/pojo/vehicle/SyPointParam;I)V");
  392 + jmethodID mid_SegInfo = env->GetMethodID(cls_SegInfo, "<init>", "(Lcom/objecteye/pojo/vehicle/SyPointParam;I)V");
  393 +
389 394 //set value to param
390 395  
391 396  
392 397 for (size_t i = 0; i < batchSize; i++)
393 398 {
394 399 jobjectArray vehicleInfoArray = env->NewObjectArray(vec_result[i].info.size(), cls_VehicleInfo, NULL);
395   -
396 400 for (int j = 0; j < vec_result[i].info.size(); j++)
397 401 { //vehicleDetectRes
398 402 auto vehicle_info = vec_result[i].info[j];
... ... @@ -546,7 +550,43 @@ JNIEXPORT jint JNICALL Java_com_objecteye_nativeinterface_vehicle_VehicleNativeI
546 550 env->SetObjectArrayElement(vehicleInfoArray, j, vehicleInfo);
547 551 }
548 552  
549   - jobject vehicleAnalysisResult = env->NewObject(cls_vehicleAnalysisResult, mid_vehicleAnalysisResult, vehicleInfoArray, vec_result[i].info.size());
  553 + // 道路标志线
  554 + jobjectArray LineInfoArray = env->NewObjectArray(vec_result[i].vec_line.size(), cls_LineInfo, NULL);
  555 + for (int j = 0; j < vec_result[i].vec_line.size(); j++)
  556 + {
  557 + auto line_info = vec_result[i].vec_line[j];
  558 + jobjectArray ptArray = env->NewObjectArray(line_info.vec_pt.size(), cls_LineInfo, NULL);
  559 + for (int k = 0; k < line_info.vec_pt.size(); k++)
  560 + {
  561 + auto pt = line_info.vec_pt[k];
  562 + jobject line_info_point = env->NewObject(cls_SyPoint, mid_SyPoint, pt.x_, pt.y_);
  563 + env->SetObjectArrayElement(ptArray, k, line_info_point);
  564 + }
  565 +
  566 + jobject one_line_info = env->NewObject(cls_LineInfo, mid_LineInfo, ptArray, line_info.line_type);
  567 +
  568 + env->SetObjectArrayElement(LineInfoArray, j, one_line_info);
  569 + }
  570 +
  571 + // 道路
  572 + jobjectArray RoadInfoArray = env->NewObjectArray(vec_result[i].vec_road.size(), cls_SegInfo, NULL);
  573 + for (int j = 0; j < vec_result[i].vec_road.size(); j++)
  574 + {
  575 + auto road_info = vec_result[i].vec_road[j];
  576 + jobjectArray ptArray = env->NewObjectArray(road_info.vec_pt.size(), cls_SyPoint, NULL);
  577 + for (int k = 0; k < road_info.vec_pt.size(); k++)
  578 + {
  579 + auto pt = road_info.vec_pt[k];
  580 + jobject road_info_point = env->NewObject(cls_SyPoint, mid_SyPoint, pt.x_, pt.y_);
  581 + env->SetObjectArrayElement(ptArray, k, road_info_point);
  582 + }
  583 +
  584 + jobject one_road_info = env->NewObject(cls_SegInfo, mid_SegInfo, ptArray, road_info.seg_type);
  585 +
  586 + env->SetObjectArrayElement(RoadInfoArray, j, one_road_info);
  587 + }
  588 +
  589 + jobject vehicleAnalysisResult = env->NewObject(cls_vehicleAnalysisResult, mid_vehicleAnalysisResult, vehicleInfoArray, LineInfoArray, RoadInfoArray, vec_result[i].info.size());
550 590 env->SetObjectArrayElement(vehicleAnalysisResultParams, i, vehicleAnalysisResult);
551 591 }
552 592  
... ...