Open3D (C++ API)  0.12.0
ContinuousConvHelper.h
Go to the documentation of this file.
1 // ----------------------------------------------------------------------------
2 // - Open3D: www.open3d.org -
3 // ----------------------------------------------------------------------------
4 // The MIT License (MIT)
5 //
6 // Copyright (c) 2020 www.open3d.org
7 //
8 // Permission is hereby granted, free of charge, to any person obtaining a copy
9 // of this software and associated documentation files (the "Software"), to deal
10 // in the Software without restriction, including without limitation the rights
11 // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
12 // copies of the Software, and to permit persons to whom the Software is
13 // furnished to do so, subject to the following conditions:
14 //
15 // The above copyright notice and this permission notice shall be included in
16 // all copies or substantial portions of the Software.
17 //
18 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
21 // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
23 // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
24 // IN THE SOFTWARE.
25 // ----------------------------------------------------------------------------
26 //
27 #pragma once
28 
29 #include <string>
30 
32 #include "torch/script.h"
33 
34 //
35 // helper functions for parsing arguments
36 //
37 
39  const std::string& str) {
41  CoordinateMapping coordinate_mapping =
42  CoordinateMapping::BALL_TO_CUBE_RADIAL;
43  if (str == "ball_to_cube_radial") {
44  coordinate_mapping = CoordinateMapping::BALL_TO_CUBE_RADIAL;
45  } else if (str == "ball_to_cube_volume_preserving") {
46  coordinate_mapping = CoordinateMapping::BALL_TO_CUBE_VOLUME_PRESERVING;
47  } else if (str == "identity") {
48  coordinate_mapping = CoordinateMapping::IDENTITY;
49  } else {
50  TORCH_CHECK(false,
51  "coordinate_mapping must be one of ('ball_to_cube_radial', "
52  "'ball_to_cube_volume_preserving', 'identity') but got " +
53  str);
54  }
55  return coordinate_mapping;
56 }
57 
59  const std::string& str) {
61  InterpolationMode interpolation = InterpolationMode::LINEAR;
62  if (str == "linear") {
63  interpolation = InterpolationMode::LINEAR;
64  } else if (str == "linear_border") {
65  interpolation = InterpolationMode::LINEAR_BORDER;
66  } else if (str == "nearest_neighbor") {
68  } else {
69  TORCH_CHECK(false,
70  "interpolation must be one of ('linear', "
71  "'linear_border', 'nearest_neighbor') but got " +
72  str);
73  }
74  return interpolation;
75 }
Definition: VoxelPooling.h:40
InterpolationMode
Definition: ContinuousConvTypes.h:37
CoordinateMapping
Definition: ContinuousConvTypes.h:45
open3d::ml::impl::CoordinateMapping ParseCoordinateMappingStr(const std::string &str)
Definition: ContinuousConvHelper.h:38
open3d::ml::impl::InterpolationMode ParseInterpolationStr(const std::string &str)
Definition: ContinuousConvHelper.h:58