Open3D C++ API Map#
Open3D v0.20.0.
This file does not list class members — the installed headers do that, with signatures and Doxygen comments, always matching the binary you link against:
O3D=/path/to/open3d-devel-.../include
grep -n "" "$O3D/open3d/t/geometry/PointCloud.h" | less # or open it in your editor
grep -rn "VoxelDownSample" "$O3D/open3d/t/geometry/"
What follows is what grep cannot tell you: which namespace and header own a task, which of many similarly-named methods is the right one, what is current versus legacy, and which behaviors will surprise you.
Namespace and Header Routing#
You want to… |
Namespace |
Header |
|---|---|---|
Numeric arrays, devices, linear algebra |
|
|
Neighbor search |
|
|
Point clouds, meshes, images, ray casting, TSDF |
|
|
Read/write geometry and images |
|
|
ICP and registration |
|
|
RGB-D odometry |
|
|
Dense SLAM |
|
|
Fragment pose refinement |
|
|
Show something on screen |
|
|
Build a custom 3D app |
|
|
Sample data |
|
|
Logging |
|
|
Legacy Eigen equivalents (fallback only) |
|
|
Umbrella header: open3d/Open3D.h — includes everything public.
Task → API#
Point clouds#
Task |
Call |
|---|---|
Load / save |
|
Reduce point count |
|
Normals |
|
Denoise |
|
Take a subset |
|
Find planes / clusters |
|
Smooth |
|
Move / colorize |
|
From RGB-D |
|
Back to 2D |
|
Compare two clouds |
|
Access attributes |
|
Meshes#
Task |
Call |
|---|---|
Load / save |
|
Primitives |
|
Normals |
|
Reduce triangles |
|
Repair |
|
CSG |
|
Cut |
|
Mesh → points |
|
UVs and textures |
|
Surface from a point cloud |
legacy only — |
Registration#
Task |
Call |
|---|---|
Refine a roughly-aligned pair |
|
Pick the error metric |
|
Downweight outliers |
|
Coarse / global alignment |
|
Score an alignment |
|
Covariance for a pose graph |
|
Optimize many fragments jointly |
legacy only — |
Reconstruction#
Task |
Call |
|---|---|
Fuse RGB-D frames |
|
Get the surface out |
|
Frame-to-frame camera pose |
|
Online dense SLAM |
|
Refine fragment poses |
|
Queries and search#
Task |
Call |
|---|---|
k nearest neighbors |
|
All neighbors within a radius |
|
A different radius per query |
|
k neighbors capped by a radius |
|
Ray/mesh intersection |
|
Distance to a surface |
|
Inside/outside test |
|
Closest point on a surface |
|
Visibility / counting hits |
|
KDTreeFlann is legacy — always use core::nns instead.
Visualization#
Task |
Call |
|---|---|
Just look at it |
|
Several named, toggleable objects |
|
An image file, no window |
|
Custom app with widgets |
|
Control appearance |
|
Tensor ↔ Legacy#
Same class name, different namespace: PointCloud, TriangleMesh, LineSet,
Image, RGBDImage, AxisAlignedBoundingBox, OrientedBoundingBox, and the
Read* / Write* IO functions (io::X → t::io::X).
Renamed or restructured:
Legacy |
Tensor |
|---|---|
|
|
|
|
|
|
|
|
Eigen matrices in public APIs |
|
|
|
Tensor geometry types provide static FromLegacy(...) and member ToLegacy().
Legacy-only — a fallback here is justified#
camera::* · geometry::Octree · geometry::TetraMesh ·
geometry::HalfEdgeTriangleMesh · pipelines::integration::* ·
pose graphs and GlobalOptimization · RANSAC and FGR global registration ·
pipelines::color_map::* · surface reconstruction from point clouds ·
legacy OpenGL Visualizer subclasses
Tensor-only — no legacy equivalent#
core::Tensor and explicit device placement · core::HashMap ·
core::nns::NearestNeighborSearch · RaycastingScene · VoxelBlockGrid ·
custom attributes via TensorMap · SLAC and SLAM · Doppler ICP
Non-Obvious Behavior#
Things that cost debugging time and are not visible in a signature.
API |
What to know |
|---|---|
naming |
C++ is |
dtype constants |
Capitalized in C++ ( |
|
Shallow by default — use |
|
Defaults to |
|
Returns |
any registration result |
|
|
|
|
CPU and SYCL only, never CUDA; device is a constructor argument. (The class comment in the header still says CPU-only — the binding docs and implementation are correct.) |
|
The sign is only meaningful for watertight meshes |
|
Ragged output: values plus row-split offsets |
|
Orientation is arbitrary; follow with an |
index tensors |
Must be |
|
|
device mixing |
All inputs to a tensor pipeline must share a device; |
|
Two overloads — intrinsic/extrinsic matrices, or fov/center/eye/up |
|
Downloads on first use; requires network access |
|
|
CUDA / SYCL |
A property of the binary you downloaded — check |
Sample Data#
open3d::data classes download on construction; read GetPath(), GetPaths(),
or type-specific accessors (GetDepthPaths(), GetColorPaths()).
Need |
Use |
|---|---|
A point cloud |
|
A mesh |
|
Two clouds to register |
|
An RGB-D sequence |
|
A textured model |
|
A full indoor scene |
|
Full list: grep -n "^class" "$O3D/open3d/data/Dataset.h"