Introduction
The NDEVR SDK is a cross-platform C++/Qt framework for 3D visualization, hardware integration, design object management, and file I/O. It targets Windows, Android, and Web (WASM/Emscripten) platforms.
The API is organized into modular DLLs, each providing a focused set of functionality. All public types reside in the NDEVR namespace.
Topic Guide
Browse the API by topic:
| Category | Topics | Description |
| Core | Design Core, Database, Threading | Design objects, table storage, concurrency |
| Data Types | Math, Color Types, Strings, Buffers | Vectors, colors, strings, containers |
| Design | Custom Models, Geometry, Design Commands | Model subclasses, geometry ops, undo/redo |
| Visualization | Graphics, Selection, Units and Projections | Rendering, selection, coordinate systems |
| Hardware | Devices, Scanners, Connections, Deployments | Sensors, scanners, communication, drill holes |
| File I/O | IO Factories, File IO | Format handlers, file access, serialization |
| UI | Widgets, Input | Qt widgets, keyboard/mouse controllers |
| Services | Software Services, Log Streams | Runtime services, logging |
Architecture Overview
The SDK follows a layered architecture:
- Base provides fundamental types: String, Buffer, Vector, Matrix, Angle, File, Thread, UUID, and the module system.
- Database implements a columnar table storage engine with typed columns (TableColumn, Table).
- Design builds the scene graph on top of Database: DesignObject, Model, Geometry, Material, Effect, and Camera.
- Hardware abstracts physical devices: sensors (OrientationSensor, PositionSensor, RangeSensor), scanners (Scanner3D), and connections (SerialPort, Bluetooth, Network).
- IOFactory provides a plugin-based file I/O system supporting 40+ formats (NDV, E57, LAS, DXF, KML, SHP, etc.).
- Widgets extends Qt with NDEVR-specific controls: Button, QCustomComboBox, QCustomLineEdit, Ribbon, and dock management.
- Graphics renders the scene via Vulkan or OpenGL ES backends.
Getting Started
- Run SetupEnvironment.bat from the repo root to set required environment variables.
- Open VS/NDEVR.sln in Visual Studio with Qt 6.0+ integrated.
- Build the solution. All modules compile as DLLs.
Key entry points:
- DesignObjectLookup – Central registry for all design objects in a project.
- ModelFactory – Reads and writes files via registered IOFactory plugins.
- Camera – Manages 3D viewport state (position, orientation, projection).
- Model – Base class for all scene graph nodes; subclassed by 60+ specialized types.
Namespace
All API types are in the NDEVR namespace:
Model model = lookup->getModel(
id);
String name = model.getProperty<
String>(DesignParameterAccumulator::e_name);
A core class that represents a node on model hierarchy.
Represents a color in the RGB space with optional alpha transparency.
The core String class for the NDEVR API.
The primary namespace for the NDEVR SDK.
- See also
- Design Core for the foundational design classes.
-
Custom Models for the full list of Model subclasses.
-
IO Factories for supported file formats.