Helios++
Helios software for LiDAR simulations
Class List
Here are the classes, structs, unions and interfaces with brief descriptions:
[detail level 1234]
 Nfluxionum
 Nhelios
 NHeliosDemos
 NHeliosTests
 Npyhelios
 Nrigidmotion
 NSurfaceInspector
 Nvisualhelios
 CAABBClass representing an Axis Aligned Bounding Box (AABB)
 CAbstractBeamDeflectorBase abstract class for beam deflectors
 CAbstractDetectorBase abstract class for detectors
 CAbstractGeometryFilterAbstract class defining asset loading filters common behavior
 CAbstractPulseRunnableBase abstract class for pulse runnables
 CArgumentsParserParser for helios-plusplus invocation arguments
 CAssetBase class for all assets
 CAxisSAHKDTreeFactoryClass providing building methods for k-dimensional trees with surface area heuristic and greedy selection of best partition axis
 CAxisSAHKDTreeGeometricStrategyClass providing a strategy for geometry-level parallelization of Axis SAH KDTree building. The geometry-level parallelization is the one to be applied on upper tree nodes, where multiple threads work on the building of the same node
 CBasicDynGroveBasic implementation of a DynGrove which extends BasicStaticGrove to provided dynamic funcionalities
 CBasicDynGroveSubjectInterface defining the behaviors that must be supported by any object that can notify to a basic dynamic grove
 CBasicStaticGroveBasic implementation of a StaticGrove
 CBinaryTreeBreadthIteratorLike fast breadth first iterator but wrapping tree nodes inside a IterableTreeNode instance
 CBinaryTreeDepthIteratorLike fast depth first iterator but wrapping tree nodes inside a IterableTreeNode instance
 CBinaryTreeFastBreadthIteratorFast breadth first iterator for binary tree like nodes
 CBinaryTreeFastDepthIteratorFast depth first iterator for binary tree like nodes
 CBlockAllocatorClass to handle allocation of multiple instances of the same class by blocks. It is useful to reduce the number of new calls that, when too high, might cause a performance bottleneck
 CBuddingScanningPulseProcessClass implementing a scanning pulse process which works with a pulse task dropper based on budding task dropper and a pulse thread pool based on an asynchronous resource thread pool
 CBuddingTaskDropperThe budding task dropper is a task dropper which implements the logic for its own reproduction so buds (children) are modified depending on the difference between last idle time length and current idle time length
 CColor4fClass representing a color with 4 float components: RGBA
 CConicBeamDeflectorClass representing a conic beam deflector
 CDateTimeUtilsClass providing util static methods for dealing with date and time operations
 CDesignTrajectoryFunctionClass representing a trajectory function that comes from interpolating a TemporalDesignMatrix using its corresponding DiffDesignMatrix
 CDetailedVoxelClass which extends Voxel to support AMAPVox format with extra features
 CDetailedVoxelLoaderLoader for deatiled voxel geometries
 CDirectionsCoordinate system convention
 CDiscreteTimeClass to handle discrete time. It supports transforming from continuous time to discrete time and also transforming from discrete time to continuous time. It also supports cyclic (normalized period) and periodic (for any given period scale, which matches normalized when it is \(1\)) transforms
 CDynFullWaveformPulseRunnableDerived class extending FullWaveFormPulseRunnable to handle dynamic moving objects
 CDynGroveA DynGrove is an interface which declares observer-like functionality so dynamic subjects can notify to the grove their updates, which acts like a proxy for observer trees
 CDynMotionClass which wraps the RigidMotion class to implement extra features such as the self mode control mechanism and computation of normal counterparts
 CDynMotionEngineAdapter which wraps a rigid motion engine to make it fit the dynamic Helios context
 CDynMovingObjectImplementation of a dynamic object which supports dynamic motions (extended rigid motions)
 CDynObjectDynamic object base implementation
 CDynSceneDynamic scene base implementation
 CDynSequenceDynamic sequence is a set of elements that must be applied during dynamic simulations to provide dynamic behavior to dynamic objects
 CDynSequencerDynamic sequencer handles dynamic sequences in a sequential fashion
 CDynSequentiableMovingObjectImplementation of a dynamic object which supports sequentiable dynamic motions
 CEggAssetAn EggAsset is an asset that can hatch to its full class
 CEnergyMathsSome common mathematical operations concerning energy
 Cenum_hasher
 CFastSAHKDTreeFactoryClass providing building methods for k-dimensional trees with a fast strategy to approximate Surface Area Heuristic (SAH)
 CFastSAHKDTreeGeometricStrategyClass providing a strategy for geometry-level parallelization of Fast SAH KDTree building. The geometry-level parallelization is the one to be applied on upper tree nodes, where multiple threads work on the building of the same node
 CFastSAHKDTreeRecountSubTask
 CFiberArrayBeamDeflectorClass representing a fiber array beam deflector
 Cfile_loggerClass representing a logger capable of writing to files
 CFileUtilsClass with util functions to work with files
 Cfull_loggerClass representing a logger capable of writing to files and, at the same time, to standard out
 CFullWaveformClass representing a full waveform
 CFullWaveformPulseDetectorConcrete implementation of abstract detector to compute full waveform pulses
 CFullWaveformPulseRunnableConcrete implementation of abstract pulse runnable to compute full waveform pulses
 CFullWaveformYielderYield a set of full waveforms from single full waveform data so it is written when buffer size has been reached or, alternatively, when yielder is directly forced to yield
 CFWFSettingsFull Waveform settings
 CGeoTiffFileLoaderLoader for tiff files
 CGroundVehiclePlatformClass representing a ground vehicle platform
 CGroveKDTreeRaycasterGrove KDTree Raycaster extends KDTreeRaycaster to make it compatible with groves by implementing the RaycasterGroveTree interface
 CGroveTreeWrapperWrapper for trees belonging to a StaticGrove so for-each loop can be used
 CHelicopterPlatformClass representing a helicopter platform
 CHeliosExceptionBase class for Helios exceptions
 CIBinaryTreeNodeBinary tree node interface that must be implemented by any class providing binary tree node based functionalities
 CIExprTreeNodeInterface extending the Binary Tree node definition to become a Expression Tree node. Any class providing expression tree node based functionalities must implement the IExprTreeNode, which implies it must also implement the IBinaryTreeNode interface
 CIExprTreeNodeStringFactoryInterface defining the functions that must be provided by any concrete implementation of a factory that builds expression trees from a given string
 CInterpolatedMovingPlatformClass representing a MovingPlatform which position is defined by a function interpolated from a DesignMatrix
 CInterpolatedMovingPlatformEggEgg class that can hatch to a full InterpolatedMovingPlatform class
 CIntersectionHandlingResultOutput class for intersection handling methods
 CIterableTreeNodeClass representing an iterable tree node. It is a wrapper for a given tree node type which handles some extra features that can be useful during iteration such as depth level
 CITreeIteratorInterface defining core mechanisms that must be provided by any tree iterator
 CKDGroveGrove of KDTrees. It supports both static and dynamic KDTrees, handling each accordingly
 CKDGroveFactory
 CKDGroveRaycasterClass representing a KDGrove ray caster
 CKDGroveStatsData structure class containing statistics for KDGrove
 CKDGroveSubjectInterface defining the behaviors that must be supported by any object that can notify to a KDGrove
 CKDTreeBuildTypeBuild type to wrap data required for recursive building of KDTree nodes when using a KDTreeFactory based thread pool
 CKDTreeFactoryClass that must be extended by any class which provides factory methods for k-dimensional trees. Notice all KDTrees should be instantiated through corresponding factories
 CKDTreeFactoryMakerCollection of static methods to simplify making of different KDTree factories
 CKDTreeFactoryThreadPoolClass implementing a thread pool to deal with multi thread KDTree building process
 CKDTreeNodeClass representing a KDTree node
 CKDTreeNodeRootClass representing the root node of a KDTree
 CKDTreePrimitiveComparatorKDTree primitive comparator
 CKDTreeRaycasterClass representing a KDTree ray caster
 CLadLutLeaf Angle Distribution Look-Up Table
 CLadLutLoaderLoader for Leaf Angle Distribution Look Up Tables
 CLasSpecificationClass representing LAS specification Classes from 0 to 63 are defined by the specification Classes from 64 to 255 are user definable
 CLegClass representing a survey leg
 CLightKDTreeNodeClass representing a light KDTree node. It is, the basic representation of a KDTree node with uses least possible data
 CLightKDTreeNodeBlockAllocatorBlock allocator for LightKDTreeNode instances
 CLinearPathPlatformClass representing a linear path platform
 CLinearVoidStepLoopClass extending VoidStepLoop to support a continous linear step loop without cyclic behavior
 CloggerClass providing the base for any logger
 Clogger_factoryLogger factory class can be used to build loggers
 CMarquardtFitterClass to compute Marquardt fitter
 CMaterialClass representing a material specification
 CMaterialsFileReaderClass to read materials files
 CMathConverter
 CMDThreadPoolAbstract class extending basic thread pool implementation to provide a basis layer to handle tasks with associated data
 CMeasurementClass representing a measurement
 CMovingPlatformClass representing a moving platform
 CMultiScannerClass representing a multi scanner. It is, a scanner that can emit more than one pulse per time instant
 CMultiThreadKDTreeFactoryDecorator for any KDTree factory which provides support for multi thread KDTree building
 CMultiThreadSAHKDTreeFactoryDecorator for any SAH KDTree which provides support for multi thread KDTree building
 CNoiseSourceClass to handle a noise source
 CNonVoidStepLoopClass extending StepLoop to support functions with non void return
 CNormalNoiseSourceClass for normal noise handling
 COscillatingMirrorBeamDeflectorClass representing an oscillating mirror beam deflector
 CPlaneFitterHandle plane fitting operations
 CPlatformClass representing a platform asset
 CPlatformSettingsClass representing platform settings
 CPointcloudYielderYield a point cloud from measurements so it is written when buffer size has been reached or, alternatively, when yielder is directly forced to yield
 CPointerVectorWrapper to have a vector of pointers such that when it is destroyed, all the pointers are deleted
 CPolygonMirrorBeamDeflectorClass representing a polygon mirror beam deflector
 CPrimitiveAbstract class defining the common behavior for all primitives
 CPulseClass representing a laser pulse
 CPulseTaskPulse task interface
 CPulseTaskDropperClass implementing a task dropper to deal with pulse tasks
 CPulseTaskFactoryFactory to make the adequate pulse task depending on the simulation
 CPulseThreadPoolClass implementing a thread pool to deal with pulse tasks
 CPulseThreadPoolFactoryFactory to build different types of pulse thread pools
 CPulseThreadPoolInterfaceInterface for thread pools supporting pulse tasks
 CPulseWarehouseThreadPoolClass implementing a warehouse thread pool to deal with pulse tasks
 CRandomnessGeneratorClass to generate random numbers
 CRandomNoiseSourceAbstract class for random noise handling
 CRaycasterRaycaster interface declaring raycasting operations
 CRaycasterGroveTreeDefine a Raycaster derived interface to make it compatible with groves
 CRaySceneIntersectionClass representing a the intersection of a ray over a scene made of primitives
 CRayUtilsClass with util functions to work with rays
 CResThreadPoolAbstract class extending basic thread pool implementation to provide a basis layer to handle thread associated resources
 CRisleyBeamDeflectorClass representing a risley prisms beam deflector
 CRotateFilterRotate transform filter
 CRotation
 CRotationOrder
 CSAHKDTreeComputeLossNodesSubTaskShared sub-task to compute loss nodes when finding the split position during SAH KDTree building. It is meant to be used at geometry-level parallelization context and only for right child nodes
 CSAHKDTreeFactoryClass providing building methods for k-dimensional trees with surface area heuristic (SAH)
 CSAHKDTreeGeometricStrategyClass providing a strategy for geometry-level parallelization of SAH KDTree building. The geometry-level parallelization is the one to be applied on upper tree nodes, where multiple threads work on the building of the same node
 CScaleFilterScale transform filter
 CScannerClass representing a scanner asset
 CScannerHead
 CScannerSettingsScanner settings class
 CScanningDeviceClass representing a scanning device. Any scanner needs to be composed of at least one scanning device to be computable
 CScanningPulseProcessClass defining the scanning pulse process interface
 CScanningStripA scanning strip is a set of legs which belong to the same strip. Thus, it is an abstract group of legs
 CSceneClass representing a scene asset
 CSceneLoadingSpecificationManually specify scene transformation filters to apply when loading a scene
 CScenePartClass representing a scene part
 CSerialIOUtils for Input/Output operations of serializable objects
 CSerialSceneWrapperWrapper for scenes which assists read and write serialization operations depending on the type of scene (Scene, StaticScene, DynScene)
 CSharedSubTaskA shared task is said to be a collection of shared sub-tasks. Each shared sub-task can be computed in parallel with respect to its siblings
 CSharedSubTaskCompletionHandlerInterface declaring behaviors that must be implemented by any class capable of handling completion of shared sub-tasks
 CSharedTaskSequencerClass providing core implementation of a shared task sequencer. It is a sequencer which launches shared sub-tasks belonging to the same shared task
 CSimpleKDTreeBuildChildrenNodesSubTaskShared sub-task to build children nodes when building a Simple KDTree on all geometry-level depths except for the last one
 CSimpleKDTreeComputeRootNodeBoundariesSubTaskShared sub-task to compute root node boundaries when building a Simple KDTree. It is meant to be used at geometry-level parallelization context and only for root node
 CSimpleKDTreeFactoryClass providing building methods for simple k-dimensional trees
 CSimpleKDTreeGeometricStrategyClass providing a strategy for geometry-level parallelization of Simple KDTree building. The geometry-level parallelization is the one to be applied on upper tree nodes, where multiple threads work on the building of the same node
 CSimpleKDTreePopulateSplitsSubTaskShared sub-task to populate splits when building a Simple KDTree. It is meant to be used at geometry-level parallelization context and only for right child nodes
 CSimplePhysicsPlatformClass representing a simple phyiscs platform
 CSimpleThreadPoolAbstract class providing implementation of a simple thread pool which assigns tasks to threads
 CSimulatedPulseClass representing a simulated laser pulse
 CSimulationClass representing a simulation
 CSimulationCycleCallbackAbstract class to handle simulation cycle callbacks
 CSimulationReporterClass to handle reports related to simulation
 CSimulationStepLoopClass extending LinearVoidStepLoop to support main simulation loop
 CSingleScannerClass representing a single scanner. It is, a scanner that can only emit one pulse per time instant
 CSmartSharedFunctorContainerFunctor container can be used to wrap any element so its functor () is called while having a shared pointer to the contained element
 CSpectralLibraryClass representing the spectral library
 CStaticGroveA StaticGrove is an abstract class which declares methods to handle a set of trees
 CStaticSceneStatic scene basic implementation
 Cstd_out_loggerClass representing a logger capable of writing to standard out stream
 CStepLoopAbstract class providing the basics to handle loops inside simulation time, which is discrete because it is based on simulation steps
 CstringVisitorStringVisitor defines a different string building behavior for different printable objects
 CSurveyClass representing a Helios++ survey
 CSurveyPlaybackSurvey playback class, used to extend simulation functionalities so it can be controlled
 CTaskDropperClass which handles tasks dropping. It is, executing and then removing each task when dropping
 CTaskWarehouseClass implementing a warehouse to store and retrieve tasks in a thread safe fashion
 CTest
 CThreadPoolBase class providing core implementation of a thread pool to deal with multi threading tasks
 CTimedPulseClass representing a time aware laser pulse
 CTimeWatcherA time watcher can be used to perform and report time measures
 CTrajectoryClass representing a concrete trajectory definition
 CTrajectoryFunctionAbstract class representing a trajectory function \(f: \mathbb{R} \to \mathbb{R}^{n}\)
 CTrajectorySettingsClass representing trajectory settings
 CTranslateFilterTranslate transform filter
 CTriangleClass representing triangle primitive
 CUniformNoiseSourceClass for uniform noise handling
 CUnivarExprTreeNodeClass implementing a Univariate Expression Tree Node
 CUnivarExprTreeStringFactoryClass implementing a factory that makes univariate expression trees from expressions given as strings
 CVectorialClass to perform util vector operations
 CVertexClass representing a vertex
 CVertexKeyEqualStruct to compare vertex when using unordered set
 CVertexKeyHashStruct to obtain vertex hash when using unordered set
 CVoidStepLoopClass extending StepLoop to support functions with no return
 CVoxelClass representing a voxel primitive
 CVoxelFileParserClass for parsing voxel files
 CVoxelGridCellVoxelGridCell is used to build and fill all necessary voxels to represent input point cloud
 CWarehouseScanningPulseProcessClass implementing a scanning pulse process which works with a pulse task dropper based on budding task dropper and a pulse warehouse thread pool based on an asynchronous warehouse thread pool
 CWarehouseThreadPoolThread pool which starts thread so they are always waiting for new tasks to be posted to the warehouse to compute them
 CWavefrontObjClass representing a .obj loaded file
 CWavefrontObjCache
 CWavefrontObjFileLoaderOBJ file loader filter
 CWaveMathsSome common mathematical operatiosn concerning the full waveform
 CWriteYielderAbstract class representing a write yielder. It is, a yielder which can use the FMSWriteFacade to write its output
 CXmlAssetsLoaderClass for asset loading from XML file
 CXmlSceneLoaderClass for scene loading from XML file
 CXmlSurveyLoaderSurvey loader from XML
 CXmlUtilsCommon utils for XML handling
 CXYZPointCloudFileLoaderImport point cloud files abstracting them to a set of voxels
 CYielderAbstract class representing a yielder. It is, an object which can be used to accumulate inputs until either a yield is explicitly deleted or the yield condition is triggered, probably after a push request