All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.opencv.features2d.DescriptorMatcher Maven / Gradle / Ivy


//
// This file is auto-generated. Please don't modify it!
//
package org.opencv.features2d;

import java.lang.String;
import java.util.ArrayList;
import java.util.List;
import org.opencv.core.Mat;
import org.opencv.core.MatOfDMatch;
import org.opencv.utils.Converters;

// C++: class javaDescriptorMatcher
/**
 * 

Abstract base class for matching keypoint descriptors. It has two groups of * match methods: for matching descriptors of an image with another image or * with an image set.

* *

class DescriptorMatcher

* *

// C++ code:

* * *

public:

* *

virtual ~DescriptorMatcher();

* *

virtual void add(const vector& descriptors);

* *

const vector& getTrainDescriptors() const;

* *

virtual void clear();

* *

bool empty() const;

* *

virtual bool isMaskSupported() const = 0;

* *

virtual void train();

* *

/ *

*
    *
  • Group of methods to match descriptors from an image pair. *
  • / *
* *

void match(const Mat& queryDescriptors, const Mat& trainDescriptors,

* *

vector& matches, const Mat& mask=Mat()) const;

* *

void knnMatch(const Mat& queryDescriptors, const Mat& trainDescriptors,

* *

vector >& matches, int k,

* *

const Mat& mask=Mat(), bool compactResult=false) const;

* *

void radiusMatch(const Mat& queryDescriptors, const Mat& trainDescriptors,

* *

vector >& matches, float maxDistance,

* *

const Mat& mask=Mat(), bool compactResult=false) const;

* *

/ *

*
    *
  • Group of methods to match descriptors from one image to an image set. *
  • / *
* *

void match(const Mat& queryDescriptors, vector& matches,

* *

const vector& masks=vector());

* *

void knnMatch(const Mat& queryDescriptors, vector >& matches,

* *

int k, const vector& masks=vector(),

* *

bool compactResult=false);

* *

void radiusMatch(const Mat& queryDescriptors, vector >& * matches,

* *

float maxDistance, const vector& masks=vector(),

* *

bool compactResult=false);

* *

virtual void read(const FileNode&);

* *

virtual void write(FileStorage&) const;

* *

virtual Ptr clone(bool emptyTrainData=false) const = 0;

* *

static Ptr create(const string& descriptorMatcherType);

* *

protected:

* *

vector trainDescCollection;...

* *

};

* * @see org.opencv.features2d.DescriptorMatcher : public Algorithm */ public class DescriptorMatcher { protected final long nativeObj; protected DescriptorMatcher(long addr) { nativeObj = addr; } public static final int FLANNBASED = 1, BRUTEFORCE = 2, BRUTEFORCE_L1 = 3, BRUTEFORCE_HAMMING = 4, BRUTEFORCE_HAMMINGLUT = 5, BRUTEFORCE_SL2 = 6; // // C++: void javaDescriptorMatcher::add(vector_Mat descriptors) // /** *

Adds descriptors to train a descriptor collection. If the collection * trainDescCollectionis is not empty, the new descriptors are * added to existing train descriptors.

* * @param descriptors Descriptors to add. Each descriptors[i] is a * set of descriptors from the same train image. * * @see org.opencv.features2d.DescriptorMatcher.add */ public void add(List descriptors) { Mat descriptors_mat = Converters.vector_Mat_to_Mat(descriptors); add_0(nativeObj, descriptors_mat.nativeObj); return; } // // C++: void javaDescriptorMatcher::clear() // /** *

Clears the train descriptor collection.

* * @see org.opencv.features2d.DescriptorMatcher.clear */ public void clear() { clear_0(nativeObj); return; } // // C++: javaDescriptorMatcher* javaDescriptorMatcher::jclone(bool emptyTrainData = false) // public DescriptorMatcher clone(boolean emptyTrainData) { DescriptorMatcher retVal = new DescriptorMatcher(clone_0(nativeObj, emptyTrainData)); return retVal; } public DescriptorMatcher clone() { DescriptorMatcher retVal = new DescriptorMatcher(clone_1(nativeObj)); return retVal; } // // C++: static javaDescriptorMatcher* javaDescriptorMatcher::create(int matcherType) // /** *

Creates a descriptor matcher of a given type with the default parameters * (using default constructor).

* * @param matcherType a matcherType * * @see org.opencv.features2d.DescriptorMatcher.create */ public static DescriptorMatcher create(int matcherType) { DescriptorMatcher retVal = new DescriptorMatcher(create_0(matcherType)); return retVal; } // // C++: bool javaDescriptorMatcher::empty() // /** *

Returns true if there are no train descriptors in the collection.

* * @see org.opencv.features2d.DescriptorMatcher.empty */ public boolean empty() { boolean retVal = empty_0(nativeObj); return retVal; } // // C++: vector_Mat javaDescriptorMatcher::getTrainDescriptors() // /** *

Returns a constant link to the train descriptor collection trainDescCollection.

* * @see org.opencv.features2d.DescriptorMatcher.getTrainDescriptors */ public List getTrainDescriptors() { List retVal = new ArrayList(); Mat retValMat = new Mat(getTrainDescriptors_0(nativeObj)); Converters.Mat_to_vector_Mat(retValMat, retVal); return retVal; } // // C++: bool javaDescriptorMatcher::isMaskSupported() // /** *

Returns true if the descriptor matcher supports masking permissible matches.

* * @see org.opencv.features2d.DescriptorMatcher.isMaskSupported */ public boolean isMaskSupported() { boolean retVal = isMaskSupported_0(nativeObj); return retVal; } // // C++: void javaDescriptorMatcher::knnMatch(Mat queryDescriptors, Mat trainDescriptors, vector_vector_DMatch& matches, int k, Mat mask = Mat(), bool compactResult = false) // /** *

Finds the k best matches for each descriptor from a query set.

* *

These extended variants of "DescriptorMatcher.match" methods find several * best matches for each query descriptor. The matches are returned in the * distance increasing order. See "DescriptorMatcher.match" for the details * about query and train descriptors.

* * @param queryDescriptors Query set of descriptors. * @param trainDescriptors Train set of descriptors. This set is not added to * the train descriptors collection stored in the class object. * @param matches Matches. Each matches[i] is k or less matches for * the same query descriptor. * @param k Count of best matches found per each query descriptor or less if a * query descriptor has less than k possible matches in total. * @param mask Mask specifying permissible matches between an input query and * train matrices of descriptors. * @param compactResult Parameter used when the mask (or masks) is not empty. If * compactResult is false, the matches vector has the * same size as queryDescriptors rows. If compactResult * is true, the matches vector does not contain matches for fully * masked-out query descriptors. * * @see org.opencv.features2d.DescriptorMatcher.knnMatch */ public void knnMatch(Mat queryDescriptors, Mat trainDescriptors, List matches, int k, Mat mask, boolean compactResult) { Mat matches_mat = new Mat(); knnMatch_0(nativeObj, queryDescriptors.nativeObj, trainDescriptors.nativeObj, matches_mat.nativeObj, k, mask.nativeObj, compactResult); Converters.Mat_to_vector_vector_DMatch(matches_mat, matches); return; } /** *

Finds the k best matches for each descriptor from a query set.

* *

These extended variants of "DescriptorMatcher.match" methods find several * best matches for each query descriptor. The matches are returned in the * distance increasing order. See "DescriptorMatcher.match" for the details * about query and train descriptors.

* * @param queryDescriptors Query set of descriptors. * @param trainDescriptors Train set of descriptors. This set is not added to * the train descriptors collection stored in the class object. * @param matches Matches. Each matches[i] is k or less matches for * the same query descriptor. * @param k Count of best matches found per each query descriptor or less if a * query descriptor has less than k possible matches in total. * * @see org.opencv.features2d.DescriptorMatcher.knnMatch */ public void knnMatch(Mat queryDescriptors, Mat trainDescriptors, List matches, int k) { Mat matches_mat = new Mat(); knnMatch_1(nativeObj, queryDescriptors.nativeObj, trainDescriptors.nativeObj, matches_mat.nativeObj, k); Converters.Mat_to_vector_vector_DMatch(matches_mat, matches); return; } // // C++: void javaDescriptorMatcher::knnMatch(Mat queryDescriptors, vector_vector_DMatch& matches, int k, vector_Mat masks = vector(), bool compactResult = false) // /** *

Finds the k best matches for each descriptor from a query set.

* *

These extended variants of "DescriptorMatcher.match" methods find several * best matches for each query descriptor. The matches are returned in the * distance increasing order. See "DescriptorMatcher.match" for the details * about query and train descriptors.

* * @param queryDescriptors Query set of descriptors. * @param matches Matches. Each matches[i] is k or less matches for * the same query descriptor. * @param k Count of best matches found per each query descriptor or less if a * query descriptor has less than k possible matches in total. * @param masks Set of masks. Each masks[i] specifies permissible * matches between the input query descriptors and stored train descriptors from * the i-th image trainDescCollection[i]. * @param compactResult Parameter used when the mask (or masks) is not empty. If * compactResult is false, the matches vector has the * same size as queryDescriptors rows. If compactResult * is true, the matches vector does not contain matches for fully * masked-out query descriptors. * * @see org.opencv.features2d.DescriptorMatcher.knnMatch */ public void knnMatch(Mat queryDescriptors, List matches, int k, List masks, boolean compactResult) { Mat matches_mat = new Mat(); Mat masks_mat = Converters.vector_Mat_to_Mat(masks); knnMatch_2(nativeObj, queryDescriptors.nativeObj, matches_mat.nativeObj, k, masks_mat.nativeObj, compactResult); Converters.Mat_to_vector_vector_DMatch(matches_mat, matches); return; } /** *

Finds the k best matches for each descriptor from a query set.

* *

These extended variants of "DescriptorMatcher.match" methods find several * best matches for each query descriptor. The matches are returned in the * distance increasing order. See "DescriptorMatcher.match" for the details * about query and train descriptors.

* * @param queryDescriptors Query set of descriptors. * @param matches Matches. Each matches[i] is k or less matches for * the same query descriptor. * @param k Count of best matches found per each query descriptor or less if a * query descriptor has less than k possible matches in total. * * @see org.opencv.features2d.DescriptorMatcher.knnMatch */ public void knnMatch(Mat queryDescriptors, List matches, int k) { Mat matches_mat = new Mat(); knnMatch_3(nativeObj, queryDescriptors.nativeObj, matches_mat.nativeObj, k); Converters.Mat_to_vector_vector_DMatch(matches_mat, matches); return; } // // C++: void javaDescriptorMatcher::match(Mat queryDescriptors, Mat trainDescriptors, vector_DMatch& matches, Mat mask = Mat()) // /** *

Finds the best match for each descriptor from a query set.

* *

In the first variant of this method, the train descriptors are passed as an * input argument. In the second variant of the method, train descriptors * collection that was set by DescriptorMatcher.add is used. * Optional mask (or masks) can be passed to specify which query and training * descriptors can be matched. Namely, queryDescriptors[i] can be * matched with trainDescriptors[j] only if mask.at(i,j) * is non-zero.

* * @param queryDescriptors Query set of descriptors. * @param trainDescriptors Train set of descriptors. This set is not added to * the train descriptors collection stored in the class object. * @param matches Matches. If a query descriptor is masked out in * mask, no match is added for this descriptor. So, * matches size may be smaller than the query descriptors count. * @param mask Mask specifying permissible matches between an input query and * train matrices of descriptors. * * @see org.opencv.features2d.DescriptorMatcher.match */ public void match(Mat queryDescriptors, Mat trainDescriptors, MatOfDMatch matches, Mat mask) { Mat matches_mat = matches; match_0(nativeObj, queryDescriptors.nativeObj, trainDescriptors.nativeObj, matches_mat.nativeObj, mask.nativeObj); return; } /** *

Finds the best match for each descriptor from a query set.

* *

In the first variant of this method, the train descriptors are passed as an * input argument. In the second variant of the method, train descriptors * collection that was set by DescriptorMatcher.add is used. * Optional mask (or masks) can be passed to specify which query and training * descriptors can be matched. Namely, queryDescriptors[i] can be * matched with trainDescriptors[j] only if mask.at(i,j) * is non-zero.

* * @param queryDescriptors Query set of descriptors. * @param trainDescriptors Train set of descriptors. This set is not added to * the train descriptors collection stored in the class object. * @param matches Matches. If a query descriptor is masked out in * mask, no match is added for this descriptor. So, * matches size may be smaller than the query descriptors count. * * @see org.opencv.features2d.DescriptorMatcher.match */ public void match(Mat queryDescriptors, Mat trainDescriptors, MatOfDMatch matches) { Mat matches_mat = matches; match_1(nativeObj, queryDescriptors.nativeObj, trainDescriptors.nativeObj, matches_mat.nativeObj); return; } // // C++: void javaDescriptorMatcher::match(Mat queryDescriptors, vector_DMatch& matches, vector_Mat masks = vector()) // /** *

Finds the best match for each descriptor from a query set.

* *

In the first variant of this method, the train descriptors are passed as an * input argument. In the second variant of the method, train descriptors * collection that was set by DescriptorMatcher.add is used. * Optional mask (or masks) can be passed to specify which query and training * descriptors can be matched. Namely, queryDescriptors[i] can be * matched with trainDescriptors[j] only if mask.at(i,j) * is non-zero.

* * @param queryDescriptors Query set of descriptors. * @param matches Matches. If a query descriptor is masked out in * mask, no match is added for this descriptor. So, * matches size may be smaller than the query descriptors count. * @param masks Set of masks. Each masks[i] specifies permissible * matches between the input query descriptors and stored train descriptors from * the i-th image trainDescCollection[i]. * * @see org.opencv.features2d.DescriptorMatcher.match */ public void match(Mat queryDescriptors, MatOfDMatch matches, List masks) { Mat matches_mat = matches; Mat masks_mat = Converters.vector_Mat_to_Mat(masks); match_2(nativeObj, queryDescriptors.nativeObj, matches_mat.nativeObj, masks_mat.nativeObj); return; } /** *

Finds the best match for each descriptor from a query set.

* *

In the first variant of this method, the train descriptors are passed as an * input argument. In the second variant of the method, train descriptors * collection that was set by DescriptorMatcher.add is used. * Optional mask (or masks) can be passed to specify which query and training * descriptors can be matched. Namely, queryDescriptors[i] can be * matched with trainDescriptors[j] only if mask.at(i,j) * is non-zero.

* * @param queryDescriptors Query set of descriptors. * @param matches Matches. If a query descriptor is masked out in * mask, no match is added for this descriptor. So, * matches size may be smaller than the query descriptors count. * * @see org.opencv.features2d.DescriptorMatcher.match */ public void match(Mat queryDescriptors, MatOfDMatch matches) { Mat matches_mat = matches; match_3(nativeObj, queryDescriptors.nativeObj, matches_mat.nativeObj); return; } // // C++: void javaDescriptorMatcher::radiusMatch(Mat queryDescriptors, Mat trainDescriptors, vector_vector_DMatch& matches, float maxDistance, Mat mask = Mat(), bool compactResult = false) // /** *

For each query descriptor, finds the training descriptors not farther than * the specified distance.

* *

For each query descriptor, the methods find such training descriptors that * the distance between the query descriptor and the training descriptor is * equal or smaller than maxDistance. Found matches are returned in * the distance increasing order.

* * @param queryDescriptors Query set of descriptors. * @param trainDescriptors Train set of descriptors. This set is not added to * the train descriptors collection stored in the class object. * @param matches Found matches. * @param maxDistance Threshold for the distance between matched descriptors. * Distance means here metric distance (e.g. Hamming distance), not the distance * between coordinates (which is measured in Pixels)! * @param mask Mask specifying permissible matches between an input query and * train matrices of descriptors. * @param compactResult Parameter used when the mask (or masks) is not empty. If * compactResult is false, the matches vector has the * same size as queryDescriptors rows. If compactResult * is true, the matches vector does not contain matches for fully * masked-out query descriptors. * * @see org.opencv.features2d.DescriptorMatcher.radiusMatch */ public void radiusMatch(Mat queryDescriptors, Mat trainDescriptors, List matches, float maxDistance, Mat mask, boolean compactResult) { Mat matches_mat = new Mat(); radiusMatch_0(nativeObj, queryDescriptors.nativeObj, trainDescriptors.nativeObj, matches_mat.nativeObj, maxDistance, mask.nativeObj, compactResult); Converters.Mat_to_vector_vector_DMatch(matches_mat, matches); return; } /** *

For each query descriptor, finds the training descriptors not farther than * the specified distance.

* *

For each query descriptor, the methods find such training descriptors that * the distance between the query descriptor and the training descriptor is * equal or smaller than maxDistance. Found matches are returned in * the distance increasing order.

* * @param queryDescriptors Query set of descriptors. * @param trainDescriptors Train set of descriptors. This set is not added to * the train descriptors collection stored in the class object. * @param matches Found matches. * @param maxDistance Threshold for the distance between matched descriptors. * Distance means here metric distance (e.g. Hamming distance), not the distance * between coordinates (which is measured in Pixels)! * * @see org.opencv.features2d.DescriptorMatcher.radiusMatch */ public void radiusMatch(Mat queryDescriptors, Mat trainDescriptors, List matches, float maxDistance) { Mat matches_mat = new Mat(); radiusMatch_1(nativeObj, queryDescriptors.nativeObj, trainDescriptors.nativeObj, matches_mat.nativeObj, maxDistance); Converters.Mat_to_vector_vector_DMatch(matches_mat, matches); return; } // // C++: void javaDescriptorMatcher::radiusMatch(Mat queryDescriptors, vector_vector_DMatch& matches, float maxDistance, vector_Mat masks = vector(), bool compactResult = false) // /** *

For each query descriptor, finds the training descriptors not farther than * the specified distance.

* *

For each query descriptor, the methods find such training descriptors that * the distance between the query descriptor and the training descriptor is * equal or smaller than maxDistance. Found matches are returned in * the distance increasing order.

* * @param queryDescriptors Query set of descriptors. * @param matches Found matches. * @param maxDistance Threshold for the distance between matched descriptors. * Distance means here metric distance (e.g. Hamming distance), not the distance * between coordinates (which is measured in Pixels)! * @param masks Set of masks. Each masks[i] specifies permissible * matches between the input query descriptors and stored train descriptors from * the i-th image trainDescCollection[i]. * @param compactResult Parameter used when the mask (or masks) is not empty. If * compactResult is false, the matches vector has the * same size as queryDescriptors rows. If compactResult * is true, the matches vector does not contain matches for fully * masked-out query descriptors. * * @see org.opencv.features2d.DescriptorMatcher.radiusMatch */ public void radiusMatch(Mat queryDescriptors, List matches, float maxDistance, List masks, boolean compactResult) { Mat matches_mat = new Mat(); Mat masks_mat = Converters.vector_Mat_to_Mat(masks); radiusMatch_2(nativeObj, queryDescriptors.nativeObj, matches_mat.nativeObj, maxDistance, masks_mat.nativeObj, compactResult); Converters.Mat_to_vector_vector_DMatch(matches_mat, matches); return; } /** *

For each query descriptor, finds the training descriptors not farther than * the specified distance.

* *

For each query descriptor, the methods find such training descriptors that * the distance between the query descriptor and the training descriptor is * equal or smaller than maxDistance. Found matches are returned in * the distance increasing order.

* * @param queryDescriptors Query set of descriptors. * @param matches Found matches. * @param maxDistance Threshold for the distance between matched descriptors. * Distance means here metric distance (e.g. Hamming distance), not the distance * between coordinates (which is measured in Pixels)! * * @see org.opencv.features2d.DescriptorMatcher.radiusMatch */ public void radiusMatch(Mat queryDescriptors, List matches, float maxDistance) { Mat matches_mat = new Mat(); radiusMatch_3(nativeObj, queryDescriptors.nativeObj, matches_mat.nativeObj, maxDistance); Converters.Mat_to_vector_vector_DMatch(matches_mat, matches); return; } // // C++: void javaDescriptorMatcher::read(string fileName) // public void read(String fileName) { read_0(nativeObj, fileName); return; } // // C++: void javaDescriptorMatcher::train() // /** *

Trains a descriptor matcher

* *

Trains a descriptor matcher (for example, the flann index). In all methods to * match, the method train() is run every time before matching. * Some descriptor matchers (for example, BruteForceMatcher) have * an empty implementation of this method. Other matchers really train their * inner structures (for example, FlannBasedMatcher trains * flann.Index).

* * @see org.opencv.features2d.DescriptorMatcher.train */ public void train() { train_0(nativeObj); return; } // // C++: void javaDescriptorMatcher::write(string fileName) // public void write(String fileName) { write_0(nativeObj, fileName); return; } @Override protected void finalize() throws Throwable { delete(nativeObj); } // C++: void javaDescriptorMatcher::add(vector_Mat descriptors) private static native void add_0(long nativeObj, long descriptors_mat_nativeObj); // C++: void javaDescriptorMatcher::clear() private static native void clear_0(long nativeObj); // C++: javaDescriptorMatcher* javaDescriptorMatcher::jclone(bool emptyTrainData = false) private static native long clone_0(long nativeObj, boolean emptyTrainData); private static native long clone_1(long nativeObj); // C++: static javaDescriptorMatcher* javaDescriptorMatcher::create(int matcherType) private static native long create_0(int matcherType); // C++: bool javaDescriptorMatcher::empty() private static native boolean empty_0(long nativeObj); // C++: vector_Mat javaDescriptorMatcher::getTrainDescriptors() private static native long getTrainDescriptors_0(long nativeObj); // C++: bool javaDescriptorMatcher::isMaskSupported() private static native boolean isMaskSupported_0(long nativeObj); // C++: void javaDescriptorMatcher::knnMatch(Mat queryDescriptors, Mat trainDescriptors, vector_vector_DMatch& matches, int k, Mat mask = Mat(), bool compactResult = false) private static native void knnMatch_0(long nativeObj, long queryDescriptors_nativeObj, long trainDescriptors_nativeObj, long matches_mat_nativeObj, int k, long mask_nativeObj, boolean compactResult); private static native void knnMatch_1(long nativeObj, long queryDescriptors_nativeObj, long trainDescriptors_nativeObj, long matches_mat_nativeObj, int k); // C++: void javaDescriptorMatcher::knnMatch(Mat queryDescriptors, vector_vector_DMatch& matches, int k, vector_Mat masks = vector(), bool compactResult = false) private static native void knnMatch_2(long nativeObj, long queryDescriptors_nativeObj, long matches_mat_nativeObj, int k, long masks_mat_nativeObj, boolean compactResult); private static native void knnMatch_3(long nativeObj, long queryDescriptors_nativeObj, long matches_mat_nativeObj, int k); // C++: void javaDescriptorMatcher::match(Mat queryDescriptors, Mat trainDescriptors, vector_DMatch& matches, Mat mask = Mat()) private static native void match_0(long nativeObj, long queryDescriptors_nativeObj, long trainDescriptors_nativeObj, long matches_mat_nativeObj, long mask_nativeObj); private static native void match_1(long nativeObj, long queryDescriptors_nativeObj, long trainDescriptors_nativeObj, long matches_mat_nativeObj); // C++: void javaDescriptorMatcher::match(Mat queryDescriptors, vector_DMatch& matches, vector_Mat masks = vector()) private static native void match_2(long nativeObj, long queryDescriptors_nativeObj, long matches_mat_nativeObj, long masks_mat_nativeObj); private static native void match_3(long nativeObj, long queryDescriptors_nativeObj, long matches_mat_nativeObj); // C++: void javaDescriptorMatcher::radiusMatch(Mat queryDescriptors, Mat trainDescriptors, vector_vector_DMatch& matches, float maxDistance, Mat mask = Mat(), bool compactResult = false) private static native void radiusMatch_0(long nativeObj, long queryDescriptors_nativeObj, long trainDescriptors_nativeObj, long matches_mat_nativeObj, float maxDistance, long mask_nativeObj, boolean compactResult); private static native void radiusMatch_1(long nativeObj, long queryDescriptors_nativeObj, long trainDescriptors_nativeObj, long matches_mat_nativeObj, float maxDistance); // C++: void javaDescriptorMatcher::radiusMatch(Mat queryDescriptors, vector_vector_DMatch& matches, float maxDistance, vector_Mat masks = vector(), bool compactResult = false) private static native void radiusMatch_2(long nativeObj, long queryDescriptors_nativeObj, long matches_mat_nativeObj, float maxDistance, long masks_mat_nativeObj, boolean compactResult); private static native void radiusMatch_3(long nativeObj, long queryDescriptors_nativeObj, long matches_mat_nativeObj, float maxDistance); // C++: void javaDescriptorMatcher::read(string fileName) private static native void read_0(long nativeObj, String fileName); // C++: void javaDescriptorMatcher::train() private static native void train_0(long nativeObj); // C++: void javaDescriptorMatcher::write(string fileName) private static native void write_0(long nativeObj, String fileName); // native support for java finalize() private static native void delete(long nativeObj); }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy