1
package org.opencv.core;
3
import java.util.Arrays;
6
public class MatOfPoint3f extends Mat {
8
private static final int _depth = CvType.CV_32F;
9
private static final int _channels = 3;
11
public MatOfPoint3f() {
15
protected MatOfPoint3f(long addr) {
17
if( !empty() && checkVector(_channels, _depth) < 0 )
18
throw new IllegalArgumentException("Incompatible Mat");
19
//FIXME: do we need release() here?
22
public static MatOfPoint3f fromNativeAddr(long addr) {
23
return new MatOfPoint3f(addr);
26
public MatOfPoint3f(Mat m) {
27
super(m, Range.all());
28
if( !empty() && checkVector(_channels, _depth) < 0 )
29
throw new IllegalArgumentException("Incompatible Mat");
30
//FIXME: do we need release() here?
33
public MatOfPoint3f(Point3...a) {
38
public void alloc(int elemNumber) {
40
super.create(elemNumber, 1, CvType.makeType(_depth, _channels));
43
public void fromArray(Point3...a) {
44
if(a==null || a.length==0)
48
float buff[] = new float[num * _channels];
49
for(int i=0; i<num; i++) {
51
buff[_channels*i+0] = (float) p.x;
52
buff[_channels*i+1] = (float) p.y;
53
buff[_channels*i+2] = (float) p.z;
55
put(0, 0, buff); //TODO: check ret val!
58
public Point3[] toArray() {
59
int num = (int) total();
60
Point3[] ap = new Point3[num];
63
float buff[] = new float[num * _channels];
64
get(0, 0, buff); //TODO: check ret val!
65
for(int i=0; i<num; i++)
66
ap[i] = new Point3(buff[i*_channels], buff[i*_channels+1], buff[i*_channels+2]);
70
public void fromList(List<Point3> lp) {
71
Point3 ap[] = lp.toArray(new Point3[0]);
75
public List<Point3> toList() {
76
Point3[] ap = toArray();
77
return Arrays.asList(ap);