trx-cpp
Getting Started
Introduction
Features
Where to go next
Quick Start
Prerequisites
Install trx-cpp
Write a first program
Next steps
Building
Dependencies
Installing dependencies
Building to use in other projects
Building for testing
Building documentation:
User Guide
Core Concepts
The TRX format
Positions array
Offsets and the sentinel
Data per vertex (DPV)
Data per streamline (DPS)
Groups
Data per group (DPG)
Header
API Layers
AnyTrxFile — runtime-typed
TrxFile<DT> — compile-time typed
TrxReader<DT> — RAII lifetime management
Summary
Reading TRX Files
Load and inspect
Access positions and offsets
Access DPV and DPS
Access groups
Typed access via TrxFile<DT>
Iterating streamlines without copying
Chunk-based iteration (AnyTrxFile)
Writing TRX Files
Create and save a TRX file
Modify and re-save a loaded file
Save as a directory
Streaming Writes
Single-threaded streaming
Multi-threaded producer / single writer
MRtrix-style write kernel
Process-based sharding
Spatial Queries
Query by bounding box
Precompute the AABB cache
Subset by streamline IDs
NIfTI Header Support
Attach a NIfTI affine to a TRX file
Notes
Enable at build time
Integration Guide
Integration Guide
MRtrix3
DSI Studio
nibrary / dmriTrekker
MITK Diffusion
SlicerDMRI
ITK-SNAP
Performance
Benchmarks
Data
TRX size vs streamline count
Translate + stream write throughput
Spatial slab query latency
Running the benchmarks
RSS measurement
TRX Format
TRX Format Specification
General layout
Header
Arrays
Accepted dtypes
Example structure
Contributing
Linting and Style Checks
Prerequisites
clang-format (bulk formatting)
check_syntax (style rules)
clang-tidy
API Reference
API Reference
Class Hierarchy
File Hierarchy
Full API
Namespaces
Classes and Structs
Enums
Functions
Variables
Typedefs
trx-cpp
API Reference
Namespace std
View page source
Namespace std