Open3D (C++ API)  0.16.0
SlabTraits.h
Go to the documentation of this file.
1// ----------------------------------------------------------------------------
2// - Open3D: www.open3d.org -
3// ----------------------------------------------------------------------------
4// The MIT License (MIT)
5//
6// Copyright (c) 2018-2021 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// Copyright 2019 Saman Ashkiani
28//
29// Licensed under the Apache License, Version 2.0 (the "License");
30// you may not use this file except in compliance with the License.
31// You may obtain a copy of the License at
32//
33// http://www.apache.org/licenses/LICENSE-2.0
34//
35// Unless required by applicable law or agreed to in writing, software
36// distributed under the License is distributed on an "AS IS" BASIS,
37// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
38// implied. See the License for the specific language governing permissions
39// and limitations under the License.
40
41#pragma once
42#include <cstdint>
43
45
46namespace open3d {
47namespace core {
48
49struct iterator_t {
50 OPEN3D_HOST_DEVICE iterator_t() : first(nullptr), second(nullptr) {}
51 OPEN3D_HOST_DEVICE iterator_t(void* key_ptr, void* value_ptr)
52 : first(key_ptr), second(value_ptr) {}
53
54 void* first;
55 void* second;
56};
57
58template <typename First, typename Second>
59struct Pair {
60 First first;
61 Second second;
63 OPEN3D_HOST_DEVICE Pair(const First& _first, const Second& _second)
64 : first(_first), second(_second) {}
65};
66
67template <typename First, typename Second>
69 const Second& _second) {
70 return Pair<First, Second>(_first, _second);
71}
72
73} // namespace core
74} // namespace open3d
Common CUDA utilities.
#define OPEN3D_HOST_DEVICE
Definition: CUDAUtils.h:63
OPEN3D_HOST_DEVICE Pair< First, Second > make_pair(const First &_first, const Second &_second)
Definition: SlabTraits.h:68
Definition: PinholeCameraIntrinsic.cpp:35
Definition: SlabTraits.h:59
Second second
Definition: SlabTraits.h:61
First first
Definition: SlabTraits.h:60
OPEN3D_HOST_DEVICE Pair(const First &_first, const Second &_second)
Definition: SlabTraits.h:63
OPEN3D_HOST_DEVICE Pair()
Definition: SlabTraits.h:62
Definition: SlabTraits.h:49
OPEN3D_HOST_DEVICE iterator_t()
Definition: SlabTraits.h:50
void * second
Definition: SlabTraits.h:55
OPEN3D_HOST_DEVICE iterator_t(void *key_ptr, void *value_ptr)
Definition: SlabTraits.h:51
void * first
Definition: SlabTraits.h:54