2 #define LOG_TAG "org.visp.utils.Converters" 5 jlongArray vector_vpColVector_to_List(JNIEnv* env,
const std::vector<vpColVector>& V)
7 jlongArray result = env->NewLongArray(V.size());
8 jlong *body = env->GetLongArrayElements(result, 0);
10 for(
size_t i = 0; i < V.size(); i++) {
14 env->ReleaseLongArrayElements(result, body, 0);
18 jlongArray vector_vpHomogeneousMatrix_to_List(JNIEnv* env,
const std::vector<vpHomogeneousMatrix>& V)
20 jlongArray result = env->NewLongArray(V.size());
21 jlong *body = env->GetLongArrayElements(result, 0);
23 for(
size_t i = 0; i < V.size(); i++) {
27 env->ReleaseLongArrayElements(result, body, 0);
31 std::vector<vpHomogeneousMatrix> List_to_vector_vpHomogeneousMatrix(JNIEnv* env, jlongArray arr)
33 jlong *body = env->GetLongArrayElements(arr, 0);
34 int len = env->GetArrayLength(arr);
36 std::vector<vpHomogeneousMatrix> V(len);
37 for(
int i = 0; i < len; i++) {
42 env->ReleaseLongArrayElements(arr, body, 0);
46 std::vector<vpCameraParameters> List_to_vector_vpCameraParameters(JNIEnv* env, jlongArray arr)
48 jlong *body = env->GetLongArrayElements(arr, 0);
49 int len = env->GetArrayLength(arr);
51 std::vector<vpCameraParameters> V(len);
52 for(
int i = 0; i < len; i++) {
57 env->ReleaseLongArrayElements(arr, body, 0);
61 std::vector<int> List_to_vector_int(JNIEnv* env, jintArray arr)
63 jint *body = env->GetIntArrayElements(arr, 0);
64 int len = env->GetArrayLength(arr);
66 std::vector<int> V(len);
67 for(
int i = 0; i < len; i++) {
71 env->ReleaseIntArrayElements(arr, body, 0);
75 std::vector<float> List_to_vector_float(JNIEnv* env, jfloatArray arr)
77 jfloat *body = env->GetFloatArrayElements(arr, 0);
78 int len = env->GetArrayLength(arr);
80 std::vector<float> V(len);
81 for(
int i = 0; i < len; i++) {
85 env->ReleaseFloatArrayElements(arr, body, 0);
89 std::vector<double> List_to_vector_double(JNIEnv* env, jdoubleArray arr)
91 jdouble *body = env->GetDoubleArrayElements(arr, 0);
92 int len = env->GetArrayLength(arr);
94 std::vector<double> V(len);
95 for(
int i = 0; i < len; i++) {
99 env->ReleaseDoubleArrayElements(arr, body, 0);
103 jobjectArray vector_vector_vpImagePoint_to_List(JNIEnv *env,
const std::vector<std::vector<vpImagePoint> >& V) {
108 size_t outerSize = V.size();
109 jobjectArray outerArray = env->NewObjectArray(outerSize, env->FindClass(
"java/lang/Object"), NULL);
111 for (
int i = 0; i < env->GetArrayLength(outerArray); i++) {
112 size_t innerSize = V[i].size();
113 jlongArray longArray = env->NewLongArray(innerSize);
114 jlong *longArrayElements = env->GetLongArrayElements(longArray, 0);
116 for (
int j = 0; j < env->GetArrayLength(longArray); j++) {
117 longArrayElements[j] = (jlong)
new vpImagePoint(V[i][j]);
120 env->ReleaseLongArrayElements(longArray, longArrayElements, 0);
121 env->SetObjectArrayElement(outerArray, i, longArray);
127 jobjectArray vector_vector_double_to_List(JNIEnv *env,
const std::vector<std::vector<double> >& V) {
132 size_t outerSize = V.size();
133 jobjectArray outerArray = env->NewObjectArray(outerSize, env->FindClass(
"java/lang/Object"), NULL);
135 for (
int i = 0; i < env->GetArrayLength(outerArray); i++) {
136 size_t innerSize = V[i].size();
137 jdoubleArray doubleArray = env->NewDoubleArray(innerSize);
138 jdouble *doubleArrayElements = env->GetDoubleArrayElements(doubleArray, 0);
140 for (
int j = 0; j < env->GetArrayLength(doubleArray); j++) {
141 doubleArrayElements[j] = (jdouble) V[i][j];
144 env->ReleaseDoubleArrayElements(doubleArray, doubleArrayElements, 0);
145 env->SetObjectArrayElement(outerArray, i, doubleArray);
151 std::string convertTo(JNIEnv *env, jstring jstr) {
152 const char *rawString = env->GetStringUTFChars(jstr, 0);
153 std::string cppString(rawString ? rawString :
"");
154 env->ReleaseStringUTFChars(jstr, rawString);
159 jstring convertTo(JNIEnv *env,
const std::string& str) {
160 return env->NewStringUTF(str.c_str());
163 jobjectArray map_string_vector_vector_double_to_array_native(JNIEnv *env,
const std::map<std::string, std::vector<std::vector<double> > > &map) {
168 size_t mapSize = map.size();
169 jobjectArray mapArray = env->NewObjectArray(mapSize, env->FindClass(
"java/lang/Object"), NULL);
172 for (std::map<std::string, std::vector<std::vector<double> > >::const_iterator it = map.begin(); it != map.end(); ++it, idx++) {
173 size_t outerSize = it->second.size();
174 jobjectArray outerArray = env->NewObjectArray(outerSize, env->FindClass(
"java/lang/Object"), NULL);
176 for (
int i = 0; i < env->GetArrayLength(outerArray); i++) {
177 size_t innerSize = it->second[i].size();
178 jdoubleArray doubleArray = env->NewDoubleArray(innerSize);
179 jdouble *doubleArrayElements = env->GetDoubleArrayElements(doubleArray, 0);
181 for (
int j = 0; j < env->GetArrayLength(doubleArray); j++) {
182 doubleArrayElements[j] = (jdouble) it->second[i][j];
185 env->ReleaseDoubleArrayElements(doubleArray, doubleArrayElements, 0);
186 env->SetObjectArrayElement(outerArray, i, doubleArray);
189 env->SetObjectArrayElement(mapArray, idx, outerArray);
195 jobjectArray vector_string_to_array_native(JNIEnv *env,
const std::vector<std::string>& V) {
200 size_t vecSize = V.size();
201 jobjectArray vec = env->NewObjectArray(vecSize, env->FindClass(
"java/lang/String"), env->NewStringUTF(
""));
202 for (
size_t i = 0; i < V.size(); i++) {
203 env->SetObjectArrayElement(vec, i, env->NewStringUTF(V[i].c_str()));
209 std::vector<std::string> array_string_to_vector(JNIEnv *env, jobjectArray arr) {
210 int size = env->GetArrayLength(arr);
212 std::vector<std::string> vec(size);
213 for (
int i = 0; i < size; i++) {
214 vec[i] = convertTo(env, (jstring)env->GetObjectArrayElement(arr, i));
Implementation of an homogeneous matrix and operations on such kind of matrices.
Generic class defining intrinsic camera parameters.
Implementation of column vector and the associated operations.
Class that defines a 2D point in an image. This class is useful for image processing and stores only ...