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
- Added .clang-format file for consistent code formatting across IDEs and agents.
- Added AGENTS.md to give some basic instructions for AI agents.
*Context*
- Reworked Context::cleanDeletedUUIDs() and Context::cleanDeletedObjectIDs() to erase invalid IDs using iterators, preventing unsigned underflow issues when vectors are empty.
- Fixed a loop in Context::loadMTL() that could cause unsigned underflow.
- Context::writeOBJ() can now maintain object groups based on the value of the primitive data "object_label".
- Context::writeOBJ() was defining normals (if enabled), but they were not being assigned to faces. This has been fixed.
- Improved stability of Tube::appendTubeSegment(), Context::addConeObject(), Context::addTubeObject(), and helios::rotatePointAboutLine() to prevent dividing by nearly zero when the vector length is very small.
- Added helios::powi() function to calculate integer powers of a number, which is more efficient than using std::pow() for integer exponents and avoids having to do "a = b*b*b*b", for example.
- Added methods Context::scaleObjectAboutOrigin() and Context::rotateObjectAboutOrigin() to scale and rotate an object about its origin, which can be set with Context::setObjectOrigin().
*Radiation*
- Added many new camera response spectra to the spectral library (spectral_data/camera_spectral_library.xml).
- The spectral labels were not correct for the default DGK colorboard (CameraCalibration::addDefaultColorboard()).
- Added the ability to create the Calibrite ColorChecker Classic in the scene. Accordingly added explicit functions CameraCalibration::addDGKColorboard() and CameraCalibration::addCalibriteColorboard() to add the two available color boards.
- Added RadiationModel::applyImageProcessingPipeline() to apply a digital camera-like processing pipeline to an image.
*Plant Architecture*
- Added capability to scale petioles of the same internode independently.
- Code style should follow the style given in .clang-format.
3
+
4
+
## Testing
5
+
- Do not try to run utilities/run_samples.sh. It will time out.
6
+
- If changes are made to docstrings or function signatures, build the documentation file `doc/Doxyfile` using doxygen. Some notes on this are given below:
7
+
- Run `doxygen doc/Doxyfile` to generate the documentation from the root directory not the `doc` directory.
8
+
- Check doxygen output for warnings. It is ok to ignore warnings of the form " warning: Member XXX is not documented."
9
+
- The main concern when changing docstrings or function signatures is the potential for breaking \ref references, which produces a warning like: warning: unable to resolve reference to XXX for \ref command".
10
+
When fixing these, don't just remove the funciton signature or use markdown `` ticks to suppress the warning. It is important to keep the signature in the reference for overloaded functions/methods. Figure out why the function signature is not matching and thus causing Doxygen to treat it as plain text.
11
+
- You tend to flag hash symbols in code blocks as erroneous and propose to add a double hash (e.g., '##include "Context.h"'). This is not needed and ends up rendering the double hash.
//! Set the origin position of the object about which it can be rotated and scaled
3574
+
/**
3575
+
* Note that this does not change the position of the object in the scene, but rather sets the origin point about which the object can later be rotated and scaled.
3576
+
*
3577
+
* \param[in] ObjID Identifier of the object.
3578
+
* \param[in] origin (x,y,z) Coordinates of the new origin point.
0 commit comments