NDEVR
API Documentation
NDEVR API Documentation

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

  1. Run SetupEnvironment.bat from the repo root to set required environment variables.
  2. Open VS/NDEVR.sln in Visual Studio with Qt 6.0+ integrated.
  3. 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:

using namespace NDEVR;
Model model = lookup->getModel(id);
RGBColor color(255, 0, 0);
String name = model.getProperty<String>(DesignParameterAccumulator::e_name);
A core class that represents a node on model hierarchy.
Definition Model.h:292
Represents a color in the RGB space with optional alpha transparency.
Definition RGBColor.h:57
The core String class for the NDEVR API.
Definition String.h:95
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.