class_docstr: the ModelNet Dataset from the `"3D ShapeNets: A Deep
  Representation for Volumetric Shapes"
  <https://people.csail.mit.edu/khosla/papers/cvpr2015_wu.pdf>`_ paper,
  containing sampled CAD models of 40 categories. Each sample contains 10,000
  points uniformly sampled with their normal vector.
  
  But applied for registration.
  Only the self supervised mode is supported
class_docstr_tok: ["the","ModelNet","Dataset","from","the","`","``","3D","ShapeNets",":","A","Deep","Representation","for","Volumetric","Shapes","''","<","https",":","\/\/people.csail.mit.edu\/khosla\/papers\/cvpr2015_wu.pdf",">","`","_","paper",",","containing","sampled","CAD","models","of","40","categories",".","Each","sample","contains","10,000","points","uniformly","sampled","with","their","normal","vector",".","But","applied","for","registration",".","Only","the","self","supervised","mode","is","supported"]
code: def download(self):
      super().download()
  
imports: import numpy
  import random
  from itertools import repeat, product
  import os
  import os.path
  import torch
  from torch_geometric.data import Data
  from torch_points_kernels.points_cpu import ball_query
  from torch_points3d.datasets.classification.modelnet import SampledModelNet
  from torch_points3d.datasets.registration.base_siamese_dataset import BaseSiameseDataset
  from torch_points3d.datasets.registration.base_siamese_dataset import GeneralFragment
  from torch_points3d.metrics.registration_tracker import FragmentRegistrationTracker
  from torch_points3d.datasets.registration.pair import Pair, MultiScalePair
  from torch_points3d.datasets.registration.utils import tracked_matches
  from torch_points3d.datasets.registration.utils import compute_overlap_and_matches
label_desc: Use image node_id 7 for calling the SiameseModelNet obj's underlying member method code with example usage: obj.download() without return types