1# ---------------------------------------------------------------------------- 2# - Open3D: www.open3d.org - 3# ---------------------------------------------------------------------------- 4# Copyright (c) 2018-2024 www.open3d.org 5# SPDX-License-Identifier: MIT 6# ---------------------------------------------------------------------------- 7 8importcopy 9importnumpyasnp10importopen3daso3d1112if__name__=="__main__":1314print("Testing vector in open3d ...")1516print("")17print("Testing o3d.utility.IntVector ...")18vi=o3d.utility.IntVector([1,2,3,4,5])# made from python list19vi1=o3d.utility.IntVector(np.asarray(20[1,2,3,4,5],dtype=np.int32))# made from numpy array21vi2=copy.copy(vi)# valid copy22vi3=copy.deepcopy(vi)# valid copy23vi4=vi[:]# valid copy24print(vi)25print(np.asarray(vi))26vi[0]=1027np.asarray(vi)[1]=2228vi1[0]*=529vi2[0]+=130vi3[0:2]=o3d.utility.IntVector([40,50])31print(vi)32print(vi1)33print(vi2)34print(vi3)35print(vi4)3637print("")38print("Testing o3d.utility.DoubleVector ...")39vd=o3d.utility.DoubleVector([1,2,3])40vd1=o3d.utility.DoubleVector([1.1,1.2])41vd2=o3d.utility.DoubleVector(np.asarray([0.1,0.2]))42print(vd)43print(vd1)44print(vd2)45vd1.append(1.3)46vd1.extend(vd2)47print(vd1)4849print("")50print("Testing o3d.utility.Vector3dVector ...")51vv3d=o3d.utility.Vector3dVector([[1,2,3],[0.1,0.2,0.3]])52vv3d1=o3d.utility.Vector3dVector(vv3d)53vv3d2=o3d.utility.Vector3dVector(np.asarray(vv3d))54vv3d3=copy.deepcopy(vv3d)55print(vv3d)56print(np.asarray(vv3d))57vv3d[0]=[4,5,6]58print(np.asarray(vv3d))59# bad practice, the second [] will not support slice60vv3d[0][0]=-161print(np.asarray(vv3d))62# good practice, use [] after converting to numpy.array63np.asarray(vv3d)[0][0]=064print(np.asarray(vv3d))65np.asarray(vv3d1)[:2,:2]=[[10,11],[12,13]]66print(np.asarray(vv3d1))67vv3d2.append([30,31,32])68print(np.asarray(vv3d2))69vv3d3.extend(vv3d)70print(np.asarray(vv3d3))7172print("")73print("Testing o3d.utility.Vector3iVector ...")74vv3i=o3d.utility.Vector3iVector([[1,2,3],[4,5,6]])75print(vv3i)76print(np.asarray(vv3i))7778print("")