def __init__()

in models/trunks/pointnet.py [0:0]


    def __init__(self, input_feature_dim=0, scale=1, use_mlp=False, mlp_dim=None):
        super().__init__()

        self.use_mlp = use_mlp
        self.sa1 = PointnetSAModuleVotes(
                npoint=2048,
                radius=0.2,
                nsample=64,
                mlp=[input_feature_dim, 64*scale, 64*scale, 128*scale],
                use_xyz=True,
                normalize_xyz=True
            )

        self.sa2 = PointnetSAModuleVotes(
                npoint=1024,
                radius=0.4,
                nsample=32,
                mlp=[128*scale, 128*scale, 128*scale, 256*scale],
                use_xyz=True,
                normalize_xyz=True
            )

        self.sa3 = PointnetSAModuleVotes(
                npoint=512,
                radius=0.8,
                nsample=16,
                mlp=[256*scale, 128*scale, 128*scale, 256*scale],
                use_xyz=True,
                normalize_xyz=True
            )

        self.sa4 = PointnetSAModuleVotes(
                npoint=256,
                radius=1.2,
                nsample=16,
                mlp=[256*scale, 128*scale, 128*scale, 256*scale],
                use_xyz=True,
                normalize_xyz=True
            )

        if scale == 1:
            self.fp1 = PointnetFPModule(mlp=[256+256,512,512])
            self.fp2 = PointnetFPModule(mlp=[512+256,512,512])
        else:
            self.fp1 = PointnetFPModule(mlp=[256*scale+256*scale,256*scale,256*scale])
            self.fp2 = PointnetFPModule(mlp=[256*scale+256*scale,256*scale,256*scale])

        if use_mlp:
            self.head = MLP(mlp_dim)
            
        self.all_feat_names = [
            "sa1",
            "sa2",
            "sa3",
            "sa4",
            "fp1",
            "fp2",
        ]