diff --git a/include/user/pcloudAmbienceStencil.h b/include/user/pcloudAmbienceStencil.h index 5067d69..480a8e7 100644 --- a/include/user/pcloudAmbienceStencil.h +++ b/include/user/pcloudAmbienceStencil.h @@ -18,16 +18,6 @@ class PcloudAmbienceStencil public: typedef uint32_t PcloudAmbienceStimulusValue; - /** - * RangeDescriptor describes a contiguous range of body spots for - * point cloud ambience stencils. - */ - struct RangeDescriptor : public Stencil::RangeDescriptor - { - uint32_t bodySpot; - size_t nContiguousSpots; - }; - PcloudAmbienceStencil() = default; virtual ~PcloudAmbienceStencil() = default; }; diff --git a/include/user/stencil.h b/include/user/stencil.h index a307bd2..69af94a 100644 --- a/include/user/stencil.h +++ b/include/user/stencil.h @@ -2,6 +2,7 @@ #define _STENCIL_H #include +#include #include namespace smo { @@ -40,6 +41,8 @@ public: */ struct RangeDescriptor { + uint32_t bodySpot; + size_t nContiguousSpots; }; Stencil() = default; diff --git a/stimBuffApis/livoxGen1/CMakeLists.txt b/stimBuffApis/livoxGen1/CMakeLists.txt index fd768c1..26505af 100644 --- a/stimBuffApis/livoxGen1/CMakeLists.txt +++ b/stimBuffApis/livoxGen1/CMakeLists.txt @@ -15,7 +15,6 @@ if(ENABLE_STIMBUFFAPI_livoxGen1) add_library(livoxGen1 SHARED livoxGen1.cpp pcloudStimulusProducer.cpp - lg1PcloudAmbienceStencil.cpp ioUringAssemblyEngine.cpp openClCollatingAndMeshingEngine.cpp openClKernels.cl.S diff --git a/stimBuffApis/livoxGen1/lg1PcloudAmbienceStencil.cpp b/stimBuffApis/livoxGen1/lg1PcloudAmbienceStencil.cpp deleted file mode 100644 index 14dfbe4..0000000 --- a/stimBuffApis/livoxGen1/lg1PcloudAmbienceStencil.cpp +++ /dev/null @@ -1,19 +0,0 @@ -#include "lg1PcloudAmbienceStencil.h" -#include - -namespace smo { -namespace stim_buff { - -// Common IOEngineConstraints for LG1 ambience stencil StagingBuffer -// (used for both input and output constraints) -const StagingBuffer::IOEngineConstraints -LG1PcloudAmbienceStencil::stencilBufferConstraints( - // slotStartAlignmentByteVal, slotPadToNBytes. - sizeof(void*), - sizeof(PcloudAmbienceStencil::RangeDescriptor), - // frameStartAlignmentByteVal, framePadToNBytes. - static_cast(sysconf(_SC_PAGE_SIZE)), - static_cast(sysconf(_SC_PAGE_SIZE))); - -} // namespace stim_buff -} // namespace smo diff --git a/stimBuffApis/livoxGen1/lg1PcloudAmbienceStencil.h b/stimBuffApis/livoxGen1/lg1PcloudAmbienceStencil.h index 03ccc3a..27a8e21 100644 --- a/stimBuffApis/livoxGen1/lg1PcloudAmbienceStencil.h +++ b/stimBuffApis/livoxGen1/lg1PcloudAmbienceStencil.h @@ -3,37 +3,23 @@ #include "livoxGen1.h" #include -#include -#include +#include namespace smo { namespace stim_buff { /** * LG1PcloudAmbienceStencil represents Livox Gen1-specific stencils for - * ambience data. The StagingBuffer is sized to handle the worst-case scenario - * where every ambience body spot requires its own descriptor - * (nDgramsPerFrame slots). + * ambience data. It holds a single RangeDescriptor with bodySpot=0 and + * nContiguousSpots=1. */ class LG1PcloudAmbienceStencil : public PcloudAmbienceStencil { public: - // Common IOEngineConstraints for stencil buffer (used for both input and output) - static const StagingBuffer::IOEngineConstraints stencilBufferConstraints; - - /** - * Constructor - * @param nDgramsPerFrame Number of datagrams per frame, used to size the - * stencil buffer for worst-case scenario (one descriptor per dgram) - */ - explicit LG1PcloudAmbienceStencil(size_t nDgramsPerFrame) + explicit LG1PcloudAmbienceStencil() : PcloudAmbienceStencil(), - stencilBuffer( - stencilBufferConstraints, // Input constraints - stencilBufferConstraints, // Output constraints (same as input) - nDgramsPerFrame), - nRangeDescriptors(0) + rangeDescriptor{0, 1} {} ~LG1PcloudAmbienceStencil() = default; @@ -41,36 +27,33 @@ public: // Implement pure virtual functions from Stencil bool hasData() const override { - return nRangeDescriptors > 0; + return true; } size_t getRelevantCount() const override { - // TODO: Implement based on range descriptors - return 0; + return rangeDescriptor.nContiguousSpots; } bool isRelevant(size_t offset) const override { - // TODO: Implement based on range descriptors - (void)offset; - return false; + return (offset >= rangeDescriptor.bodySpot && + offset < rangeDescriptor.bodySpot + rangeDescriptor.nContiguousSpots); } size_t getNRangeDescriptors() const override { - return nRangeDescriptors; + return 1; } bool buildStencilMetadata() override { - // TODO: Implement stencil metadata building + // Metadata is already built (single fixed descriptor) return true; } public: - StagingBuffer stencilBuffer; - size_t nRangeDescriptors; + smo::cologex::Stencil::RangeDescriptor rangeDescriptor; }; } // namespace stim_buff diff --git a/stimBuffApis/livoxGen1/pcloudAmbienceStimulusBuffer.h b/stimBuffApis/livoxGen1/pcloudAmbienceStimulusBuffer.h index ecbc3bb..5ab8ea8 100644 --- a/stimBuffApis/livoxGen1/pcloudAmbienceStimulusBuffer.h +++ b/stimBuffApis/livoxGen1/pcloudAmbienceStimulusBuffer.h @@ -81,7 +81,7 @@ public: // Construct stencils and add to list (FIFO behavior) for (size_t i = 0; i < nStencils; ++i) { - stencils.emplace_back(nDgramsPerFrame_); + stencils.emplace_back(); } }