You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- Split tutorials into separate files for better organization.
- `detect_GPU_compute.cmake` script updated to fix some issues on Windows systems.
🚨+ NEW PLUG-IN + 🚨
- Added a new `collisiondetection` plug-in for efficiently calculating primitive and object collisions.
# Context
- `Context::generateColormap()` is now public. An error with the "cool" colormap was also fixed.
# LiDAR
- Added tutorials for several LiDAR application examples.
- `LiDARcloud::addGridWireframeToVisualizer()` now has an optional argument to specify the line width.
- All of the file exporting methods now try to create the output directory if it does not exist.
- Updated error throwing to use `helios_runtime_error()`.
- Added `LiDARcloud::loadTreeQSM()` and `LiDARcloud::loadTreeQSMColormap()` methods to load a TreeQSM output file and build it in the Context using tube objects.
- Made `LiDARcloud::loadASCIIFile()` public, and modified it to take a file name rather than a parameters structure.
- Added overloaded `LiDARcloud::addHitsToVisualizer()` that allows specification of the point color.
# Visualizer
- Added option to `Visualizer::addLine()` to be able to specify the line width.
- Added option to `Visualizer::addPoint()` to be able to specify the point size.
- Refactored how points are visualized to add automatic culling that speeds up rendering of large point clouds.
- Broke `Visualizer.cpp` into four different files, as it was getting huge.
- Fixed an issue introduced in v1.3.40 causing images to be written up-side down when using the `Visualizer::printWindow()` method.
- Fixed an issue that could cause `Visualizer::printWindow()` to write black images on Linux.
# Plant Architecture
- Added `PlantArchitecture::writeQSMCylinderFile()` method to export the plant geometry as a TreeQSM cylinder file.
- Added collision detection capabilities within the plant architecture plug-in. This is in the intial testing phase for now, and will be further developed in future versions.
# Radiation
- Added `RadiationModel::writeImageSegmentationMasks()` and `RadiationModel::writeImageSegmentationMasks_ObjectData()` to directly write COCO JSON segmentation masks for objects in the scene.
- Moved camera-related code to separate file `RadiationCamera.cpp` to improve organization.
- Many modifications to `CMakeLists.txt` file to fix an issue on Windows systems introduced in v1.3.40.
- Fixed an error checking issue with camera processing pipeline functions to allow cameras with more than 3 channels.
# Aerial LiDAR, LiDAR, Energy Balance, and Voxel Intersection
- Some modifications to `CMakeLists.txt` to allow building with the project builder on Windows systems.
Copy file name to clipboardExpand all lines: AGENTS.md
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,6 +8,7 @@
8
8
- Standard C++ library include headers are listed in the file `core/include/global.h`. Check these includes to make sure you do not add unnecessary includes.
9
9
- Prefer descriptive variable names that 'self-document' the code.
10
10
- Prefer clearer code over clever optimized code that provides only marginal performance improvements.
11
+
- When implementing new function/method definitions, be aware of the organization of the source file. Don't just automatically add them at the end of the file, but keep them grouped with similar definitions if possible.
11
12
12
13
## Code Structure
13
14
- The code is organized into a core library and plugins. The core library contains the main functionality, while plugins provide additional features.
@@ -39,6 +40,7 @@
39
40
2.**Running Tests**:
40
41
- For core tests: `./context_tests` (from context_selftest/build/)
41
42
- For plugin tests: `./{plugin_name}_selftest` or `./{plugin_name}_tests`
43
+
- If you need to run custom test code from a new .cpp file, add it to the `CMakeLists.txt` in the appropriate sample directory and rebuild.
42
44
43
45
3.**Common Build Issues**:
44
46
- Always check compilation errors carefully for missing includes or function signature mismatches
//! Generates texture files by applying a colormap to an input texture image.
6187
+
/**
6188
+
* This function reads an existing texture file and modifies its colors based
6189
+
* on a provided colormap. A new set of texture files is created, one for each
6190
+
* color in the colormap. Each texture file reflects the applied color from
6191
+
* the colormap while preserving the texture's original alpha values.
6192
+
*
6193
+
* \param[in] texturefile The path to the input texture file that will be used as the base for generating new textures.
6194
+
* \param[in] colormap_data A vector containing the RGB colors that will be applied to the texture file. Each color in the colormap results in the generation of one texture file.
6195
+
* \return A vector of strings, where each string is the filename of a newly generated texture file.
//! Generates a colormap of interpolated colors based on input color table and fractions.
6208
+
/**
6209
+
* \param[in] ctable A vector of RGB colors defining the input color points for interpolation.
6210
+
* \param[in] cfrac A vector of fractional values corresponding to each color in the color table, must match the size of ctable.
6211
+
* \param[in] Ncolors Desired number of output colors in the generated colormap. Must be greater than 0.
6212
+
* \return A vector of RGB colors representing the generated colormap.
6213
+
* \note The input vectors ctable and cfrac must have the same size, and neither can be empty. If the requested Ncolors exceeds the internal limit, it will be truncated to 9999, with a warning issued.
0 commit comments