File: RangeImagePlanar.pxi

package info (click to toggle)
python-pcl 0.3.0~rc1%2Bdfsg-9
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 31,388 kB
  • sloc: python: 3,102; cpp: 283; makefile: 181; sh: 24; ansic: 12
file content (87 lines) | stat: -rw-r--r-- 3,439 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
# -*- coding: utf-8 -*-
from _pcl cimport PointCloud
from _pcl cimport PointCloud_PointWithViewpoint
cimport pcl_defs as cpp
cimport pcl_range_image as pcl_r_img

cimport eigen as eigen3
from boost_shared_ptr cimport sp_assign

from cython.operator cimport dereference as deref, preincrement as inc

cdef class RangeImagePlanar:
    """
    RangeImagePlanar
    """

    def __cinit__(self):
        # self.me = new pcl_r_img.RangeImagePlanar_t()
        sp_assign(self.thisptr_shared, new pcl_r_img.RangeImagePlanar_t())
        pass

    def __cinit__(self, PointCloud pc not None):
        # self.me = new pcl_r_img.RangeImagePlanar_t()
        # self.point = pc.thisptr_shared
        sp_assign(self.thisptr_shared,  new pcl_r_img.RangeImagePlanar_t())
        self.thisptr().setInputCloud(pc.thisptr_shared)

    def CreateFromPointCloud(self, PointCloud cloud, float angular_resolution, float max_angle_width, float max_angle_height, 
        pcl_r_img.CoordinateFrame2 coordinate_frame, float noise_level, float min_range, int border_size):
        
        print('CreateFromPointCloud enter')
        
        # cdef cpp.PointCloudPtr_t point
        # point = cloud.thisptr_shared
        # Eigen::Translation3f
        cdef eigen3.Affine3f sensor_pose
        cdef float *data = sensor_pose.data()
        # print('sensor_pose size = ' + str( len(data) ) )
        # cdef eigen3.Translation3f data(0.0, 0.0, 0.0)
        # data[0] = 0.0
        # data[1] = 0.0
        # data[2] = 0.0
        # data[3] = 0.0
        # print('sensor_pose = ' + data)
        # (Eigen::Affine3f)Eigen::Translation3f(0.0f, 0.0f, 0.0f);  
        sensor_pose = <eigen3.Affine3f>eigen3.Translation3f(0.0, 0.0, 0.0)
        
        print('angular_resolution = ' + str(angular_resolution) )
        print('max_angle_width = ' + str(max_angle_width) )
        print('max_angle_height = ' + str(max_angle_height) )
        print('noise_level = ' + str(noise_level) )
        print('min_range = ' + str(min_range) )
        print('border_size = ' + str(border_size) )
        
        print('cloud.size = ' + str(cloud.size) )
        print('cloud.width = ' + str(cloud.width) )
        print('cloud.height = ' + str(cloud.height) )
        
        print('call createFromPointCloud')
        
        self.thisptr().createFromPointCloud(
            cloud.thisptr()[0],
            angular_resolution,
            max_angle_width,
            max_angle_height,
            sensor_pose, 
            coordinate_frame, 
            noise_level, 
            min_range, 
            border_size)
    
    def SetAngularResolution(self, float angular_resolution_x, float angular_resolution_y):
        self.thisptr()[0].setAngularResolution(angular_resolution_x, angular_resolution_y)
    
    def IntegrateFarRanges(self, PointCloud_PointWithViewpoint viewpoint):
        # cdef pcl_r_img.RangeImage_t *user
        # (<pcl_r_img.RangeImage *> self.thisptr()).integrateFarRanges(<cpp.PointCloud_PointWithViewpoint_t&> viewpoint.thisptr()[0])
        self.thisptr().integrateFarRanges(<cpp.PointCloud_PointWithViewpoint_t&> viewpoint.thisptr()[0])
        # self.thisprt()[0].integrateFarRanges(<cpp.PointCloud_PointWithViewpoint_t&> viewpoint.thisptr()[0])
        # self.me.integrateFarRanges(<cpp.PointCloud_PointWithViewpoint_t&> deref(viewpoint.thisptr()))
    
    def SetUnseenToMaxRange(self):
        self.thisptr()[0].setUnseenToMaxRange()


###