rasterizePolyhedron
This function generates discrete 3D grid points that approximate the surface of a polyhedron.
It returns a unique set of integer coordinates stored in a RowVector3iSet, including corner-based cell expansions around each voxel on the polyhedron’s surface.
Function Signatures
RowVector3iSet rasterizePolyhedron(
    const Eigen::MatrixX3d& polyhedronVertices
);
polyhedronVertices (Eigen::MatrixX3d): A matrix containing the 3D coordinates of the polyhedron's vertices.
- Returns: A 
RowVector3iSetthat includes all surface voxels and their eight surrounding corner offsets. 
Example Usage
#include "RasterizeTool.h"
int main() {
    Eigen::Matrix<double, 8, 3> polyhedronVertices; 
    polyhedronVertices << 748674.4539194419, 2564739.5306861168, 49,
           748694.4635618832, 2564739.3775614789, 49,
           748694.42507040221, 2564734.3476669602, 49,
           748674.41542796092, 2564734.5007915981, 49,
           748674.4539194419, 2564739.5306861168, 81,
           748694.4635618832, 2564739.3775614789, 81,
           748694.42507040221, 2564734.3476669602, 81,
           748674.41542796092, 2564734.5007915981, 81;
    RowVector3iSet polyhedronPointsSet = rasterizePolyhedron(polyhedronVertices);
    return 0;
}
Below is a visualization of the rasterized polyhedron surface: