Path: blob/master/thirdparty/metal-cpp/Metal/MTL4AccelerationStructure.hpp
21066 views
//-------------------------------------------------------------------------------------------------------------------------------------------------------------1//2// Metal/MTL4AccelerationStructure.hpp3//4// Copyright 2020-2025 Apple Inc.5//6// Licensed under the Apache License, Version 2.0 (the "License");7// you may not use this file except in compliance with the License.8// You may obtain a copy of the License at9//10// http://www.apache.org/licenses/LICENSE-2.011//12// Unless required by applicable law or agreed to in writing, software13// distributed under the License is distributed on an "AS IS" BASIS,14// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.15// See the License for the specific language governing permissions and16// limitations under the License.17//18//-------------------------------------------------------------------------------------------------------------------------------------------------------------1920#pragma once2122#include "../Foundation/Foundation.hpp"23#include "MTLAccelerationStructure.hpp"24#include "MTLAccelerationStructureTypes.hpp"25#include "MTLArgument.hpp"26#include "MTLDefines.hpp"27#include "MTLHeaderBridge.hpp"28#include "MTLPrivate.hpp"29#include "MTLStageInputOutputDescriptor.hpp"3031namespace MTL432{33class AccelerationStructureBoundingBoxGeometryDescriptor;34class AccelerationStructureCurveGeometryDescriptor;35class AccelerationStructureDescriptor;36class AccelerationStructureGeometryDescriptor;37class AccelerationStructureMotionBoundingBoxGeometryDescriptor;38class AccelerationStructureMotionCurveGeometryDescriptor;39class AccelerationStructureMotionTriangleGeometryDescriptor;40class AccelerationStructureTriangleGeometryDescriptor;41class IndirectInstanceAccelerationStructureDescriptor;42class InstanceAccelerationStructureDescriptor;43class PrimitiveAccelerationStructureDescriptor;4445class AccelerationStructureDescriptor : public NS::Copying<AccelerationStructureDescriptor, MTL::AccelerationStructureDescriptor>46{47public:48static AccelerationStructureDescriptor* alloc();4950AccelerationStructureDescriptor* init();51};52class AccelerationStructureGeometryDescriptor : public NS::Copying<AccelerationStructureGeometryDescriptor>53{54public:55static AccelerationStructureGeometryDescriptor* alloc();5657bool allowDuplicateIntersectionFunctionInvocation() const;5859AccelerationStructureGeometryDescriptor* init();6061NS::UInteger intersectionFunctionTableOffset() const;6263NS::String* label() const;6465bool opaque() const;6667BufferRange primitiveDataBuffer() const;6869NS::UInteger primitiveDataElementSize() const;7071NS::UInteger primitiveDataStride() const;7273void setAllowDuplicateIntersectionFunctionInvocation(bool allowDuplicateIntersectionFunctionInvocation);7475void setIntersectionFunctionTableOffset(NS::UInteger intersectionFunctionTableOffset);7677void setLabel(const NS::String* label);7879void setOpaque(bool opaque);8081void setPrimitiveDataBuffer(const MTL4::BufferRange primitiveDataBuffer);8283void setPrimitiveDataElementSize(NS::UInteger primitiveDataElementSize);8485void setPrimitiveDataStride(NS::UInteger primitiveDataStride);86};87class PrimitiveAccelerationStructureDescriptor : public NS::Copying<PrimitiveAccelerationStructureDescriptor, AccelerationStructureDescriptor>88{89public:90static PrimitiveAccelerationStructureDescriptor* alloc();9192NS::Array* geometryDescriptors() const;9394PrimitiveAccelerationStructureDescriptor* init();9596MTL::MotionBorderMode motionEndBorderMode() const;9798float motionEndTime() const;99100NS::UInteger motionKeyframeCount() const;101102MTL::MotionBorderMode motionStartBorderMode() const;103104float motionStartTime() const;105106void setGeometryDescriptors(const NS::Array* geometryDescriptors);107108void setMotionEndBorderMode(MTL::MotionBorderMode motionEndBorderMode);109110void setMotionEndTime(float motionEndTime);111112void setMotionKeyframeCount(NS::UInteger motionKeyframeCount);113114void setMotionStartBorderMode(MTL::MotionBorderMode motionStartBorderMode);115116void setMotionStartTime(float motionStartTime);117};118class AccelerationStructureTriangleGeometryDescriptor : public NS::Copying<AccelerationStructureTriangleGeometryDescriptor, AccelerationStructureGeometryDescriptor>119{120public:121static AccelerationStructureTriangleGeometryDescriptor* alloc();122123BufferRange indexBuffer() const;124125MTL::IndexType indexType() const;126127AccelerationStructureTriangleGeometryDescriptor* init();128129void setIndexBuffer(const MTL4::BufferRange indexBuffer);130131void setIndexType(MTL::IndexType indexType);132133void setTransformationMatrixBuffer(const MTL4::BufferRange transformationMatrixBuffer);134135void setTransformationMatrixLayout(MTL::MatrixLayout transformationMatrixLayout);136137void setTriangleCount(NS::UInteger triangleCount);138139void setVertexBuffer(const MTL4::BufferRange vertexBuffer);140141void setVertexFormat(MTL::AttributeFormat vertexFormat);142143void setVertexStride(NS::UInteger vertexStride);144145BufferRange transformationMatrixBuffer() const;146147MTL::MatrixLayout transformationMatrixLayout() const;148149NS::UInteger triangleCount() const;150151BufferRange vertexBuffer() const;152153MTL::AttributeFormat vertexFormat() const;154155NS::UInteger vertexStride() const;156};157class AccelerationStructureBoundingBoxGeometryDescriptor : public NS::Copying<AccelerationStructureBoundingBoxGeometryDescriptor, AccelerationStructureGeometryDescriptor>158{159public:160static AccelerationStructureBoundingBoxGeometryDescriptor* alloc();161162BufferRange boundingBoxBuffer() const;163164NS::UInteger boundingBoxCount() const;165166NS::UInteger boundingBoxStride() const;167168AccelerationStructureBoundingBoxGeometryDescriptor* init();169170void setBoundingBoxBuffer(const MTL4::BufferRange boundingBoxBuffer);171172void setBoundingBoxCount(NS::UInteger boundingBoxCount);173174void setBoundingBoxStride(NS::UInteger boundingBoxStride);175};176class AccelerationStructureMotionTriangleGeometryDescriptor : public NS::Copying<AccelerationStructureMotionTriangleGeometryDescriptor, AccelerationStructureGeometryDescriptor>177{178public:179static AccelerationStructureMotionTriangleGeometryDescriptor* alloc();180181BufferRange indexBuffer() const;182183MTL::IndexType indexType() const;184185AccelerationStructureMotionTriangleGeometryDescriptor* init();186187void setIndexBuffer(const MTL4::BufferRange indexBuffer);188189void setIndexType(MTL::IndexType indexType);190191void setTransformationMatrixBuffer(const MTL4::BufferRange transformationMatrixBuffer);192193void setTransformationMatrixLayout(MTL::MatrixLayout transformationMatrixLayout);194195void setTriangleCount(NS::UInteger triangleCount);196197void setVertexBuffers(const MTL4::BufferRange vertexBuffers);198199void setVertexFormat(MTL::AttributeFormat vertexFormat);200201void setVertexStride(NS::UInteger vertexStride);202203BufferRange transformationMatrixBuffer() const;204205MTL::MatrixLayout transformationMatrixLayout() const;206207NS::UInteger triangleCount() const;208209BufferRange vertexBuffers() const;210211MTL::AttributeFormat vertexFormat() const;212213NS::UInteger vertexStride() const;214};215class AccelerationStructureMotionBoundingBoxGeometryDescriptor : public NS::Copying<AccelerationStructureMotionBoundingBoxGeometryDescriptor, AccelerationStructureGeometryDescriptor>216{217public:218static AccelerationStructureMotionBoundingBoxGeometryDescriptor* alloc();219220BufferRange boundingBoxBuffers() const;221222NS::UInteger boundingBoxCount() const;223224NS::UInteger boundingBoxStride() const;225226AccelerationStructureMotionBoundingBoxGeometryDescriptor* init();227228void setBoundingBoxBuffers(const MTL4::BufferRange boundingBoxBuffers);229230void setBoundingBoxCount(NS::UInteger boundingBoxCount);231232void setBoundingBoxStride(NS::UInteger boundingBoxStride);233};234class AccelerationStructureCurveGeometryDescriptor : public NS::Copying<AccelerationStructureCurveGeometryDescriptor, AccelerationStructureGeometryDescriptor>235{236public:237static AccelerationStructureCurveGeometryDescriptor* alloc();238239BufferRange controlPointBuffer() const;240241NS::UInteger controlPointCount() const;242243MTL::AttributeFormat controlPointFormat() const;244245NS::UInteger controlPointStride() const;246247MTL::CurveBasis curveBasis() const;248249MTL::CurveEndCaps curveEndCaps() const;250251MTL::CurveType curveType() const;252253BufferRange indexBuffer() const;254255MTL::IndexType indexType() const;256257AccelerationStructureCurveGeometryDescriptor* init();258259BufferRange radiusBuffer() const;260261MTL::AttributeFormat radiusFormat() const;262263NS::UInteger radiusStride() const;264265NS::UInteger segmentControlPointCount() const;266267NS::UInteger segmentCount() const;268269void setControlPointBuffer(const MTL4::BufferRange controlPointBuffer);270271void setControlPointCount(NS::UInteger controlPointCount);272273void setControlPointFormat(MTL::AttributeFormat controlPointFormat);274275void setControlPointStride(NS::UInteger controlPointStride);276277void setCurveBasis(MTL::CurveBasis curveBasis);278279void setCurveEndCaps(MTL::CurveEndCaps curveEndCaps);280281void setCurveType(MTL::CurveType curveType);282283void setIndexBuffer(const MTL4::BufferRange indexBuffer);284285void setIndexType(MTL::IndexType indexType);286287void setRadiusBuffer(const MTL4::BufferRange radiusBuffer);288289void setRadiusFormat(MTL::AttributeFormat radiusFormat);290291void setRadiusStride(NS::UInteger radiusStride);292293void setSegmentControlPointCount(NS::UInteger segmentControlPointCount);294295void setSegmentCount(NS::UInteger segmentCount);296};297class AccelerationStructureMotionCurveGeometryDescriptor : public NS::Copying<AccelerationStructureMotionCurveGeometryDescriptor, AccelerationStructureGeometryDescriptor>298{299public:300static AccelerationStructureMotionCurveGeometryDescriptor* alloc();301302BufferRange controlPointBuffers() const;303304NS::UInteger controlPointCount() const;305306MTL::AttributeFormat controlPointFormat() const;307308NS::UInteger controlPointStride() const;309310MTL::CurveBasis curveBasis() const;311312MTL::CurveEndCaps curveEndCaps() const;313314MTL::CurveType curveType() const;315316BufferRange indexBuffer() const;317318MTL::IndexType indexType() const;319320AccelerationStructureMotionCurveGeometryDescriptor* init();321322BufferRange radiusBuffers() const;323324MTL::AttributeFormat radiusFormat() const;325326NS::UInteger radiusStride() const;327328NS::UInteger segmentControlPointCount() const;329330NS::UInteger segmentCount() const;331332void setControlPointBuffers(const MTL4::BufferRange controlPointBuffers);333334void setControlPointCount(NS::UInteger controlPointCount);335336void setControlPointFormat(MTL::AttributeFormat controlPointFormat);337338void setControlPointStride(NS::UInteger controlPointStride);339340void setCurveBasis(MTL::CurveBasis curveBasis);341342void setCurveEndCaps(MTL::CurveEndCaps curveEndCaps);343344void setCurveType(MTL::CurveType curveType);345346void setIndexBuffer(const MTL4::BufferRange indexBuffer);347348void setIndexType(MTL::IndexType indexType);349350void setRadiusBuffers(const MTL4::BufferRange radiusBuffers);351352void setRadiusFormat(MTL::AttributeFormat radiusFormat);353354void setRadiusStride(NS::UInteger radiusStride);355356void setSegmentControlPointCount(NS::UInteger segmentControlPointCount);357358void setSegmentCount(NS::UInteger segmentCount);359};360class InstanceAccelerationStructureDescriptor : public NS::Copying<InstanceAccelerationStructureDescriptor, AccelerationStructureDescriptor>361{362public:363static InstanceAccelerationStructureDescriptor* alloc();364365InstanceAccelerationStructureDescriptor* init();366367NS::UInteger instanceCount() const;368369BufferRange instanceDescriptorBuffer() const;370371NS::UInteger instanceDescriptorStride() const;372373MTL::AccelerationStructureInstanceDescriptorType instanceDescriptorType() const;374375MTL::MatrixLayout instanceTransformationMatrixLayout() const;376377BufferRange motionTransformBuffer() const;378379NS::UInteger motionTransformCount() const;380381NS::UInteger motionTransformStride() const;382383MTL::TransformType motionTransformType() const;384385void setInstanceCount(NS::UInteger instanceCount);386387void setInstanceDescriptorBuffer(const MTL4::BufferRange instanceDescriptorBuffer);388389void setInstanceDescriptorStride(NS::UInteger instanceDescriptorStride);390391void setInstanceDescriptorType(MTL::AccelerationStructureInstanceDescriptorType instanceDescriptorType);392393void setInstanceTransformationMatrixLayout(MTL::MatrixLayout instanceTransformationMatrixLayout);394395void setMotionTransformBuffer(const MTL4::BufferRange motionTransformBuffer);396397void setMotionTransformCount(NS::UInteger motionTransformCount);398399void setMotionTransformStride(NS::UInteger motionTransformStride);400401void setMotionTransformType(MTL::TransformType motionTransformType);402};403class IndirectInstanceAccelerationStructureDescriptor : public NS::Copying<IndirectInstanceAccelerationStructureDescriptor, AccelerationStructureDescriptor>404{405public:406static IndirectInstanceAccelerationStructureDescriptor* alloc();407408IndirectInstanceAccelerationStructureDescriptor* init();409410BufferRange instanceCountBuffer() const;411412BufferRange instanceDescriptorBuffer() const;413414NS::UInteger instanceDescriptorStride() const;415416MTL::AccelerationStructureInstanceDescriptorType instanceDescriptorType() const;417418MTL::MatrixLayout instanceTransformationMatrixLayout() const;419420NS::UInteger maxInstanceCount() const;421422NS::UInteger maxMotionTransformCount() const;423424BufferRange motionTransformBuffer() const;425426BufferRange motionTransformCountBuffer() const;427428NS::UInteger motionTransformStride() const;429430MTL::TransformType motionTransformType() const;431432void setInstanceCountBuffer(const MTL4::BufferRange instanceCountBuffer);433434void setInstanceDescriptorBuffer(const MTL4::BufferRange instanceDescriptorBuffer);435436void setInstanceDescriptorStride(NS::UInteger instanceDescriptorStride);437438void setInstanceDescriptorType(MTL::AccelerationStructureInstanceDescriptorType instanceDescriptorType);439440void setInstanceTransformationMatrixLayout(MTL::MatrixLayout instanceTransformationMatrixLayout);441442void setMaxInstanceCount(NS::UInteger maxInstanceCount);443444void setMaxMotionTransformCount(NS::UInteger maxMotionTransformCount);445446void setMotionTransformBuffer(const MTL4::BufferRange motionTransformBuffer);447448void setMotionTransformCountBuffer(const MTL4::BufferRange motionTransformCountBuffer);449450void setMotionTransformStride(NS::UInteger motionTransformStride);451452void setMotionTransformType(MTL::TransformType motionTransformType);453};454455}456_MTL_INLINE MTL4::AccelerationStructureDescriptor* MTL4::AccelerationStructureDescriptor::alloc()457{458return NS::Object::alloc<MTL4::AccelerationStructureDescriptor>(_MTL_PRIVATE_CLS(MTL4AccelerationStructureDescriptor));459}460461_MTL_INLINE MTL4::AccelerationStructureDescriptor* MTL4::AccelerationStructureDescriptor::init()462{463return NS::Object::init<MTL4::AccelerationStructureDescriptor>();464}465466_MTL_INLINE MTL4::AccelerationStructureGeometryDescriptor* MTL4::AccelerationStructureGeometryDescriptor::alloc()467{468return NS::Object::alloc<MTL4::AccelerationStructureGeometryDescriptor>(_MTL_PRIVATE_CLS(MTL4AccelerationStructureGeometryDescriptor));469}470471_MTL_INLINE bool MTL4::AccelerationStructureGeometryDescriptor::allowDuplicateIntersectionFunctionInvocation() const472{473return Object::sendMessage<bool>(this, _MTL_PRIVATE_SEL(allowDuplicateIntersectionFunctionInvocation));474}475476_MTL_INLINE MTL4::AccelerationStructureGeometryDescriptor* MTL4::AccelerationStructureGeometryDescriptor::init()477{478return NS::Object::init<MTL4::AccelerationStructureGeometryDescriptor>();479}480481_MTL_INLINE NS::UInteger MTL4::AccelerationStructureGeometryDescriptor::intersectionFunctionTableOffset() const482{483return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(intersectionFunctionTableOffset));484}485486_MTL_INLINE NS::String* MTL4::AccelerationStructureGeometryDescriptor::label() const487{488return Object::sendMessage<NS::String*>(this, _MTL_PRIVATE_SEL(label));489}490491_MTL_INLINE bool MTL4::AccelerationStructureGeometryDescriptor::opaque() const492{493return Object::sendMessage<bool>(this, _MTL_PRIVATE_SEL(opaque));494}495496_MTL_INLINE MTL4::BufferRange MTL4::AccelerationStructureGeometryDescriptor::primitiveDataBuffer() const497{498return Object::sendMessage<MTL4::BufferRange>(this, _MTL_PRIVATE_SEL(primitiveDataBuffer));499}500501_MTL_INLINE NS::UInteger MTL4::AccelerationStructureGeometryDescriptor::primitiveDataElementSize() const502{503return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(primitiveDataElementSize));504}505506_MTL_INLINE NS::UInteger MTL4::AccelerationStructureGeometryDescriptor::primitiveDataStride() const507{508return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(primitiveDataStride));509}510511_MTL_INLINE void MTL4::AccelerationStructureGeometryDescriptor::setAllowDuplicateIntersectionFunctionInvocation(bool allowDuplicateIntersectionFunctionInvocation)512{513Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setAllowDuplicateIntersectionFunctionInvocation_), allowDuplicateIntersectionFunctionInvocation);514}515516_MTL_INLINE void MTL4::AccelerationStructureGeometryDescriptor::setIntersectionFunctionTableOffset(NS::UInteger intersectionFunctionTableOffset)517{518Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setIntersectionFunctionTableOffset_), intersectionFunctionTableOffset);519}520521_MTL_INLINE void MTL4::AccelerationStructureGeometryDescriptor::setLabel(const NS::String* label)522{523Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setLabel_), label);524}525526_MTL_INLINE void MTL4::AccelerationStructureGeometryDescriptor::setOpaque(bool opaque)527{528Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setOpaque_), opaque);529}530531_MTL_INLINE void MTL4::AccelerationStructureGeometryDescriptor::setPrimitiveDataBuffer(const MTL4::BufferRange primitiveDataBuffer)532{533Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setPrimitiveDataBuffer_), primitiveDataBuffer);534}535536_MTL_INLINE void MTL4::AccelerationStructureGeometryDescriptor::setPrimitiveDataElementSize(NS::UInteger primitiveDataElementSize)537{538Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setPrimitiveDataElementSize_), primitiveDataElementSize);539}540541_MTL_INLINE void MTL4::AccelerationStructureGeometryDescriptor::setPrimitiveDataStride(NS::UInteger primitiveDataStride)542{543Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setPrimitiveDataStride_), primitiveDataStride);544}545546_MTL_INLINE MTL4::PrimitiveAccelerationStructureDescriptor* MTL4::PrimitiveAccelerationStructureDescriptor::alloc()547{548return NS::Object::alloc<MTL4::PrimitiveAccelerationStructureDescriptor>(_MTL_PRIVATE_CLS(MTL4PrimitiveAccelerationStructureDescriptor));549}550551_MTL_INLINE NS::Array* MTL4::PrimitiveAccelerationStructureDescriptor::geometryDescriptors() const552{553return Object::sendMessage<NS::Array*>(this, _MTL_PRIVATE_SEL(geometryDescriptors));554}555556_MTL_INLINE MTL4::PrimitiveAccelerationStructureDescriptor* MTL4::PrimitiveAccelerationStructureDescriptor::init()557{558return NS::Object::init<MTL4::PrimitiveAccelerationStructureDescriptor>();559}560561_MTL_INLINE MTL::MotionBorderMode MTL4::PrimitiveAccelerationStructureDescriptor::motionEndBorderMode() const562{563return Object::sendMessage<MTL::MotionBorderMode>(this, _MTL_PRIVATE_SEL(motionEndBorderMode));564}565566_MTL_INLINE float MTL4::PrimitiveAccelerationStructureDescriptor::motionEndTime() const567{568return Object::sendMessage<float>(this, _MTL_PRIVATE_SEL(motionEndTime));569}570571_MTL_INLINE NS::UInteger MTL4::PrimitiveAccelerationStructureDescriptor::motionKeyframeCount() const572{573return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(motionKeyframeCount));574}575576_MTL_INLINE MTL::MotionBorderMode MTL4::PrimitiveAccelerationStructureDescriptor::motionStartBorderMode() const577{578return Object::sendMessage<MTL::MotionBorderMode>(this, _MTL_PRIVATE_SEL(motionStartBorderMode));579}580581_MTL_INLINE float MTL4::PrimitiveAccelerationStructureDescriptor::motionStartTime() const582{583return Object::sendMessage<float>(this, _MTL_PRIVATE_SEL(motionStartTime));584}585586_MTL_INLINE void MTL4::PrimitiveAccelerationStructureDescriptor::setGeometryDescriptors(const NS::Array* geometryDescriptors)587{588Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setGeometryDescriptors_), geometryDescriptors);589}590591_MTL_INLINE void MTL4::PrimitiveAccelerationStructureDescriptor::setMotionEndBorderMode(MTL::MotionBorderMode motionEndBorderMode)592{593Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setMotionEndBorderMode_), motionEndBorderMode);594}595596_MTL_INLINE void MTL4::PrimitiveAccelerationStructureDescriptor::setMotionEndTime(float motionEndTime)597{598Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setMotionEndTime_), motionEndTime);599}600601_MTL_INLINE void MTL4::PrimitiveAccelerationStructureDescriptor::setMotionKeyframeCount(NS::UInteger motionKeyframeCount)602{603Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setMotionKeyframeCount_), motionKeyframeCount);604}605606_MTL_INLINE void MTL4::PrimitiveAccelerationStructureDescriptor::setMotionStartBorderMode(MTL::MotionBorderMode motionStartBorderMode)607{608Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setMotionStartBorderMode_), motionStartBorderMode);609}610611_MTL_INLINE void MTL4::PrimitiveAccelerationStructureDescriptor::setMotionStartTime(float motionStartTime)612{613Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setMotionStartTime_), motionStartTime);614}615616_MTL_INLINE MTL4::AccelerationStructureTriangleGeometryDescriptor* MTL4::AccelerationStructureTriangleGeometryDescriptor::alloc()617{618return NS::Object::alloc<MTL4::AccelerationStructureTriangleGeometryDescriptor>(_MTL_PRIVATE_CLS(MTL4AccelerationStructureTriangleGeometryDescriptor));619}620621_MTL_INLINE MTL4::BufferRange MTL4::AccelerationStructureTriangleGeometryDescriptor::indexBuffer() const622{623return Object::sendMessage<MTL4::BufferRange>(this, _MTL_PRIVATE_SEL(indexBuffer));624}625626_MTL_INLINE MTL::IndexType MTL4::AccelerationStructureTriangleGeometryDescriptor::indexType() const627{628return Object::sendMessage<MTL::IndexType>(this, _MTL_PRIVATE_SEL(indexType));629}630631_MTL_INLINE MTL4::AccelerationStructureTriangleGeometryDescriptor* MTL4::AccelerationStructureTriangleGeometryDescriptor::init()632{633return NS::Object::init<MTL4::AccelerationStructureTriangleGeometryDescriptor>();634}635636_MTL_INLINE void MTL4::AccelerationStructureTriangleGeometryDescriptor::setIndexBuffer(const MTL4::BufferRange indexBuffer)637{638Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setIndexBuffer_), indexBuffer);639}640641_MTL_INLINE void MTL4::AccelerationStructureTriangleGeometryDescriptor::setIndexType(MTL::IndexType indexType)642{643Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setIndexType_), indexType);644}645646_MTL_INLINE void MTL4::AccelerationStructureTriangleGeometryDescriptor::setTransformationMatrixBuffer(const MTL4::BufferRange transformationMatrixBuffer)647{648Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setTransformationMatrixBuffer_), transformationMatrixBuffer);649}650651_MTL_INLINE void MTL4::AccelerationStructureTriangleGeometryDescriptor::setTransformationMatrixLayout(MTL::MatrixLayout transformationMatrixLayout)652{653Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setTransformationMatrixLayout_), transformationMatrixLayout);654}655656_MTL_INLINE void MTL4::AccelerationStructureTriangleGeometryDescriptor::setTriangleCount(NS::UInteger triangleCount)657{658Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setTriangleCount_), triangleCount);659}660661_MTL_INLINE void MTL4::AccelerationStructureTriangleGeometryDescriptor::setVertexBuffer(const MTL4::BufferRange vertexBuffer)662{663Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setVertexBuffer_), vertexBuffer);664}665666_MTL_INLINE void MTL4::AccelerationStructureTriangleGeometryDescriptor::setVertexFormat(MTL::AttributeFormat vertexFormat)667{668Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setVertexFormat_), vertexFormat);669}670671_MTL_INLINE void MTL4::AccelerationStructureTriangleGeometryDescriptor::setVertexStride(NS::UInteger vertexStride)672{673Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setVertexStride_), vertexStride);674}675676_MTL_INLINE MTL4::BufferRange MTL4::AccelerationStructureTriangleGeometryDescriptor::transformationMatrixBuffer() const677{678return Object::sendMessage<MTL4::BufferRange>(this, _MTL_PRIVATE_SEL(transformationMatrixBuffer));679}680681_MTL_INLINE MTL::MatrixLayout MTL4::AccelerationStructureTriangleGeometryDescriptor::transformationMatrixLayout() const682{683return Object::sendMessage<MTL::MatrixLayout>(this, _MTL_PRIVATE_SEL(transformationMatrixLayout));684}685686_MTL_INLINE NS::UInteger MTL4::AccelerationStructureTriangleGeometryDescriptor::triangleCount() const687{688return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(triangleCount));689}690691_MTL_INLINE MTL4::BufferRange MTL4::AccelerationStructureTriangleGeometryDescriptor::vertexBuffer() const692{693return Object::sendMessage<MTL4::BufferRange>(this, _MTL_PRIVATE_SEL(vertexBuffer));694}695696_MTL_INLINE MTL::AttributeFormat MTL4::AccelerationStructureTriangleGeometryDescriptor::vertexFormat() const697{698return Object::sendMessage<MTL::AttributeFormat>(this, _MTL_PRIVATE_SEL(vertexFormat));699}700701_MTL_INLINE NS::UInteger MTL4::AccelerationStructureTriangleGeometryDescriptor::vertexStride() const702{703return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(vertexStride));704}705706_MTL_INLINE MTL4::AccelerationStructureBoundingBoxGeometryDescriptor* MTL4::AccelerationStructureBoundingBoxGeometryDescriptor::alloc()707{708return NS::Object::alloc<MTL4::AccelerationStructureBoundingBoxGeometryDescriptor>(_MTL_PRIVATE_CLS(MTL4AccelerationStructureBoundingBoxGeometryDescriptor));709}710711_MTL_INLINE MTL4::BufferRange MTL4::AccelerationStructureBoundingBoxGeometryDescriptor::boundingBoxBuffer() const712{713return Object::sendMessage<MTL4::BufferRange>(this, _MTL_PRIVATE_SEL(boundingBoxBuffer));714}715716_MTL_INLINE NS::UInteger MTL4::AccelerationStructureBoundingBoxGeometryDescriptor::boundingBoxCount() const717{718return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(boundingBoxCount));719}720721_MTL_INLINE NS::UInteger MTL4::AccelerationStructureBoundingBoxGeometryDescriptor::boundingBoxStride() const722{723return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(boundingBoxStride));724}725726_MTL_INLINE MTL4::AccelerationStructureBoundingBoxGeometryDescriptor* MTL4::AccelerationStructureBoundingBoxGeometryDescriptor::init()727{728return NS::Object::init<MTL4::AccelerationStructureBoundingBoxGeometryDescriptor>();729}730731_MTL_INLINE void MTL4::AccelerationStructureBoundingBoxGeometryDescriptor::setBoundingBoxBuffer(const MTL4::BufferRange boundingBoxBuffer)732{733Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setBoundingBoxBuffer_), boundingBoxBuffer);734}735736_MTL_INLINE void MTL4::AccelerationStructureBoundingBoxGeometryDescriptor::setBoundingBoxCount(NS::UInteger boundingBoxCount)737{738Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setBoundingBoxCount_), boundingBoxCount);739}740741_MTL_INLINE void MTL4::AccelerationStructureBoundingBoxGeometryDescriptor::setBoundingBoxStride(NS::UInteger boundingBoxStride)742{743Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setBoundingBoxStride_), boundingBoxStride);744}745746_MTL_INLINE MTL4::AccelerationStructureMotionTriangleGeometryDescriptor* MTL4::AccelerationStructureMotionTriangleGeometryDescriptor::alloc()747{748return NS::Object::alloc<MTL4::AccelerationStructureMotionTriangleGeometryDescriptor>(_MTL_PRIVATE_CLS(MTL4AccelerationStructureMotionTriangleGeometryDescriptor));749}750751_MTL_INLINE MTL4::BufferRange MTL4::AccelerationStructureMotionTriangleGeometryDescriptor::indexBuffer() const752{753return Object::sendMessage<MTL4::BufferRange>(this, _MTL_PRIVATE_SEL(indexBuffer));754}755756_MTL_INLINE MTL::IndexType MTL4::AccelerationStructureMotionTriangleGeometryDescriptor::indexType() const757{758return Object::sendMessage<MTL::IndexType>(this, _MTL_PRIVATE_SEL(indexType));759}760761_MTL_INLINE MTL4::AccelerationStructureMotionTriangleGeometryDescriptor* MTL4::AccelerationStructureMotionTriangleGeometryDescriptor::init()762{763return NS::Object::init<MTL4::AccelerationStructureMotionTriangleGeometryDescriptor>();764}765766_MTL_INLINE void MTL4::AccelerationStructureMotionTriangleGeometryDescriptor::setIndexBuffer(const MTL4::BufferRange indexBuffer)767{768Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setIndexBuffer_), indexBuffer);769}770771_MTL_INLINE void MTL4::AccelerationStructureMotionTriangleGeometryDescriptor::setIndexType(MTL::IndexType indexType)772{773Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setIndexType_), indexType);774}775776_MTL_INLINE void MTL4::AccelerationStructureMotionTriangleGeometryDescriptor::setTransformationMatrixBuffer(const MTL4::BufferRange transformationMatrixBuffer)777{778Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setTransformationMatrixBuffer_), transformationMatrixBuffer);779}780781_MTL_INLINE void MTL4::AccelerationStructureMotionTriangleGeometryDescriptor::setTransformationMatrixLayout(MTL::MatrixLayout transformationMatrixLayout)782{783Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setTransformationMatrixLayout_), transformationMatrixLayout);784}785786_MTL_INLINE void MTL4::AccelerationStructureMotionTriangleGeometryDescriptor::setTriangleCount(NS::UInteger triangleCount)787{788Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setTriangleCount_), triangleCount);789}790791_MTL_INLINE void MTL4::AccelerationStructureMotionTriangleGeometryDescriptor::setVertexBuffers(const MTL4::BufferRange vertexBuffers)792{793Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setVertexBuffers_), vertexBuffers);794}795796_MTL_INLINE void MTL4::AccelerationStructureMotionTriangleGeometryDescriptor::setVertexFormat(MTL::AttributeFormat vertexFormat)797{798Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setVertexFormat_), vertexFormat);799}800801_MTL_INLINE void MTL4::AccelerationStructureMotionTriangleGeometryDescriptor::setVertexStride(NS::UInteger vertexStride)802{803Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setVertexStride_), vertexStride);804}805806_MTL_INLINE MTL4::BufferRange MTL4::AccelerationStructureMotionTriangleGeometryDescriptor::transformationMatrixBuffer() const807{808return Object::sendMessage<MTL4::BufferRange>(this, _MTL_PRIVATE_SEL(transformationMatrixBuffer));809}810811_MTL_INLINE MTL::MatrixLayout MTL4::AccelerationStructureMotionTriangleGeometryDescriptor::transformationMatrixLayout() const812{813return Object::sendMessage<MTL::MatrixLayout>(this, _MTL_PRIVATE_SEL(transformationMatrixLayout));814}815816_MTL_INLINE NS::UInteger MTL4::AccelerationStructureMotionTriangleGeometryDescriptor::triangleCount() const817{818return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(triangleCount));819}820821_MTL_INLINE MTL4::BufferRange MTL4::AccelerationStructureMotionTriangleGeometryDescriptor::vertexBuffers() const822{823return Object::sendMessage<MTL4::BufferRange>(this, _MTL_PRIVATE_SEL(vertexBuffers));824}825826_MTL_INLINE MTL::AttributeFormat MTL4::AccelerationStructureMotionTriangleGeometryDescriptor::vertexFormat() const827{828return Object::sendMessage<MTL::AttributeFormat>(this, _MTL_PRIVATE_SEL(vertexFormat));829}830831_MTL_INLINE NS::UInteger MTL4::AccelerationStructureMotionTriangleGeometryDescriptor::vertexStride() const832{833return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(vertexStride));834}835836_MTL_INLINE MTL4::AccelerationStructureMotionBoundingBoxGeometryDescriptor* MTL4::AccelerationStructureMotionBoundingBoxGeometryDescriptor::alloc()837{838return NS::Object::alloc<MTL4::AccelerationStructureMotionBoundingBoxGeometryDescriptor>(_MTL_PRIVATE_CLS(MTL4AccelerationStructureMotionBoundingBoxGeometryDescriptor));839}840841_MTL_INLINE MTL4::BufferRange MTL4::AccelerationStructureMotionBoundingBoxGeometryDescriptor::boundingBoxBuffers() const842{843return Object::sendMessage<MTL4::BufferRange>(this, _MTL_PRIVATE_SEL(boundingBoxBuffers));844}845846_MTL_INLINE NS::UInteger MTL4::AccelerationStructureMotionBoundingBoxGeometryDescriptor::boundingBoxCount() const847{848return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(boundingBoxCount));849}850851_MTL_INLINE NS::UInteger MTL4::AccelerationStructureMotionBoundingBoxGeometryDescriptor::boundingBoxStride() const852{853return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(boundingBoxStride));854}855856_MTL_INLINE MTL4::AccelerationStructureMotionBoundingBoxGeometryDescriptor* MTL4::AccelerationStructureMotionBoundingBoxGeometryDescriptor::init()857{858return NS::Object::init<MTL4::AccelerationStructureMotionBoundingBoxGeometryDescriptor>();859}860861_MTL_INLINE void MTL4::AccelerationStructureMotionBoundingBoxGeometryDescriptor::setBoundingBoxBuffers(const MTL4::BufferRange boundingBoxBuffers)862{863Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setBoundingBoxBuffers_), boundingBoxBuffers);864}865866_MTL_INLINE void MTL4::AccelerationStructureMotionBoundingBoxGeometryDescriptor::setBoundingBoxCount(NS::UInteger boundingBoxCount)867{868Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setBoundingBoxCount_), boundingBoxCount);869}870871_MTL_INLINE void MTL4::AccelerationStructureMotionBoundingBoxGeometryDescriptor::setBoundingBoxStride(NS::UInteger boundingBoxStride)872{873Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setBoundingBoxStride_), boundingBoxStride);874}875876_MTL_INLINE MTL4::AccelerationStructureCurveGeometryDescriptor* MTL4::AccelerationStructureCurveGeometryDescriptor::alloc()877{878return NS::Object::alloc<MTL4::AccelerationStructureCurveGeometryDescriptor>(_MTL_PRIVATE_CLS(MTL4AccelerationStructureCurveGeometryDescriptor));879}880881_MTL_INLINE MTL4::BufferRange MTL4::AccelerationStructureCurveGeometryDescriptor::controlPointBuffer() const882{883return Object::sendMessage<MTL4::BufferRange>(this, _MTL_PRIVATE_SEL(controlPointBuffer));884}885886_MTL_INLINE NS::UInteger MTL4::AccelerationStructureCurveGeometryDescriptor::controlPointCount() const887{888return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(controlPointCount));889}890891_MTL_INLINE MTL::AttributeFormat MTL4::AccelerationStructureCurveGeometryDescriptor::controlPointFormat() const892{893return Object::sendMessage<MTL::AttributeFormat>(this, _MTL_PRIVATE_SEL(controlPointFormat));894}895896_MTL_INLINE NS::UInteger MTL4::AccelerationStructureCurveGeometryDescriptor::controlPointStride() const897{898return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(controlPointStride));899}900901_MTL_INLINE MTL::CurveBasis MTL4::AccelerationStructureCurveGeometryDescriptor::curveBasis() const902{903return Object::sendMessage<MTL::CurveBasis>(this, _MTL_PRIVATE_SEL(curveBasis));904}905906_MTL_INLINE MTL::CurveEndCaps MTL4::AccelerationStructureCurveGeometryDescriptor::curveEndCaps() const907{908return Object::sendMessage<MTL::CurveEndCaps>(this, _MTL_PRIVATE_SEL(curveEndCaps));909}910911_MTL_INLINE MTL::CurveType MTL4::AccelerationStructureCurveGeometryDescriptor::curveType() const912{913return Object::sendMessage<MTL::CurveType>(this, _MTL_PRIVATE_SEL(curveType));914}915916_MTL_INLINE MTL4::BufferRange MTL4::AccelerationStructureCurveGeometryDescriptor::indexBuffer() const917{918return Object::sendMessage<MTL4::BufferRange>(this, _MTL_PRIVATE_SEL(indexBuffer));919}920921_MTL_INLINE MTL::IndexType MTL4::AccelerationStructureCurveGeometryDescriptor::indexType() const922{923return Object::sendMessage<MTL::IndexType>(this, _MTL_PRIVATE_SEL(indexType));924}925926_MTL_INLINE MTL4::AccelerationStructureCurveGeometryDescriptor* MTL4::AccelerationStructureCurveGeometryDescriptor::init()927{928return NS::Object::init<MTL4::AccelerationStructureCurveGeometryDescriptor>();929}930931_MTL_INLINE MTL4::BufferRange MTL4::AccelerationStructureCurveGeometryDescriptor::radiusBuffer() const932{933return Object::sendMessage<MTL4::BufferRange>(this, _MTL_PRIVATE_SEL(radiusBuffer));934}935936_MTL_INLINE MTL::AttributeFormat MTL4::AccelerationStructureCurveGeometryDescriptor::radiusFormat() const937{938return Object::sendMessage<MTL::AttributeFormat>(this, _MTL_PRIVATE_SEL(radiusFormat));939}940941_MTL_INLINE NS::UInteger MTL4::AccelerationStructureCurveGeometryDescriptor::radiusStride() const942{943return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(radiusStride));944}945946_MTL_INLINE NS::UInteger MTL4::AccelerationStructureCurveGeometryDescriptor::segmentControlPointCount() const947{948return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(segmentControlPointCount));949}950951_MTL_INLINE NS::UInteger MTL4::AccelerationStructureCurveGeometryDescriptor::segmentCount() const952{953return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(segmentCount));954}955956_MTL_INLINE void MTL4::AccelerationStructureCurveGeometryDescriptor::setControlPointBuffer(const MTL4::BufferRange controlPointBuffer)957{958Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setControlPointBuffer_), controlPointBuffer);959}960961_MTL_INLINE void MTL4::AccelerationStructureCurveGeometryDescriptor::setControlPointCount(NS::UInteger controlPointCount)962{963Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setControlPointCount_), controlPointCount);964}965966_MTL_INLINE void MTL4::AccelerationStructureCurveGeometryDescriptor::setControlPointFormat(MTL::AttributeFormat controlPointFormat)967{968Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setControlPointFormat_), controlPointFormat);969}970971_MTL_INLINE void MTL4::AccelerationStructureCurveGeometryDescriptor::setControlPointStride(NS::UInteger controlPointStride)972{973Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setControlPointStride_), controlPointStride);974}975976_MTL_INLINE void MTL4::AccelerationStructureCurveGeometryDescriptor::setCurveBasis(MTL::CurveBasis curveBasis)977{978Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setCurveBasis_), curveBasis);979}980981_MTL_INLINE void MTL4::AccelerationStructureCurveGeometryDescriptor::setCurveEndCaps(MTL::CurveEndCaps curveEndCaps)982{983Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setCurveEndCaps_), curveEndCaps);984}985986_MTL_INLINE void MTL4::AccelerationStructureCurveGeometryDescriptor::setCurveType(MTL::CurveType curveType)987{988Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setCurveType_), curveType);989}990991_MTL_INLINE void MTL4::AccelerationStructureCurveGeometryDescriptor::setIndexBuffer(const MTL4::BufferRange indexBuffer)992{993Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setIndexBuffer_), indexBuffer);994}995996_MTL_INLINE void MTL4::AccelerationStructureCurveGeometryDescriptor::setIndexType(MTL::IndexType indexType)997{998Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setIndexType_), indexType);999}10001001_MTL_INLINE void MTL4::AccelerationStructureCurveGeometryDescriptor::setRadiusBuffer(const MTL4::BufferRange radiusBuffer)1002{1003Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setRadiusBuffer_), radiusBuffer);1004}10051006_MTL_INLINE void MTL4::AccelerationStructureCurveGeometryDescriptor::setRadiusFormat(MTL::AttributeFormat radiusFormat)1007{1008Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setRadiusFormat_), radiusFormat);1009}10101011_MTL_INLINE void MTL4::AccelerationStructureCurveGeometryDescriptor::setRadiusStride(NS::UInteger radiusStride)1012{1013Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setRadiusStride_), radiusStride);1014}10151016_MTL_INLINE void MTL4::AccelerationStructureCurveGeometryDescriptor::setSegmentControlPointCount(NS::UInteger segmentControlPointCount)1017{1018Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setSegmentControlPointCount_), segmentControlPointCount);1019}10201021_MTL_INLINE void MTL4::AccelerationStructureCurveGeometryDescriptor::setSegmentCount(NS::UInteger segmentCount)1022{1023Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setSegmentCount_), segmentCount);1024}10251026_MTL_INLINE MTL4::AccelerationStructureMotionCurveGeometryDescriptor* MTL4::AccelerationStructureMotionCurveGeometryDescriptor::alloc()1027{1028return NS::Object::alloc<MTL4::AccelerationStructureMotionCurveGeometryDescriptor>(_MTL_PRIVATE_CLS(MTL4AccelerationStructureMotionCurveGeometryDescriptor));1029}10301031_MTL_INLINE MTL4::BufferRange MTL4::AccelerationStructureMotionCurveGeometryDescriptor::controlPointBuffers() const1032{1033return Object::sendMessage<MTL4::BufferRange>(this, _MTL_PRIVATE_SEL(controlPointBuffers));1034}10351036_MTL_INLINE NS::UInteger MTL4::AccelerationStructureMotionCurveGeometryDescriptor::controlPointCount() const1037{1038return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(controlPointCount));1039}10401041_MTL_INLINE MTL::AttributeFormat MTL4::AccelerationStructureMotionCurveGeometryDescriptor::controlPointFormat() const1042{1043return Object::sendMessage<MTL::AttributeFormat>(this, _MTL_PRIVATE_SEL(controlPointFormat));1044}10451046_MTL_INLINE NS::UInteger MTL4::AccelerationStructureMotionCurveGeometryDescriptor::controlPointStride() const1047{1048return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(controlPointStride));1049}10501051_MTL_INLINE MTL::CurveBasis MTL4::AccelerationStructureMotionCurveGeometryDescriptor::curveBasis() const1052{1053return Object::sendMessage<MTL::CurveBasis>(this, _MTL_PRIVATE_SEL(curveBasis));1054}10551056_MTL_INLINE MTL::CurveEndCaps MTL4::AccelerationStructureMotionCurveGeometryDescriptor::curveEndCaps() const1057{1058return Object::sendMessage<MTL::CurveEndCaps>(this, _MTL_PRIVATE_SEL(curveEndCaps));1059}10601061_MTL_INLINE MTL::CurveType MTL4::AccelerationStructureMotionCurveGeometryDescriptor::curveType() const1062{1063return Object::sendMessage<MTL::CurveType>(this, _MTL_PRIVATE_SEL(curveType));1064}10651066_MTL_INLINE MTL4::BufferRange MTL4::AccelerationStructureMotionCurveGeometryDescriptor::indexBuffer() const1067{1068return Object::sendMessage<MTL4::BufferRange>(this, _MTL_PRIVATE_SEL(indexBuffer));1069}10701071_MTL_INLINE MTL::IndexType MTL4::AccelerationStructureMotionCurveGeometryDescriptor::indexType() const1072{1073return Object::sendMessage<MTL::IndexType>(this, _MTL_PRIVATE_SEL(indexType));1074}10751076_MTL_INLINE MTL4::AccelerationStructureMotionCurveGeometryDescriptor* MTL4::AccelerationStructureMotionCurveGeometryDescriptor::init()1077{1078return NS::Object::init<MTL4::AccelerationStructureMotionCurveGeometryDescriptor>();1079}10801081_MTL_INLINE MTL4::BufferRange MTL4::AccelerationStructureMotionCurveGeometryDescriptor::radiusBuffers() const1082{1083return Object::sendMessage<MTL4::BufferRange>(this, _MTL_PRIVATE_SEL(radiusBuffers));1084}10851086_MTL_INLINE MTL::AttributeFormat MTL4::AccelerationStructureMotionCurveGeometryDescriptor::radiusFormat() const1087{1088return Object::sendMessage<MTL::AttributeFormat>(this, _MTL_PRIVATE_SEL(radiusFormat));1089}10901091_MTL_INLINE NS::UInteger MTL4::AccelerationStructureMotionCurveGeometryDescriptor::radiusStride() const1092{1093return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(radiusStride));1094}10951096_MTL_INLINE NS::UInteger MTL4::AccelerationStructureMotionCurveGeometryDescriptor::segmentControlPointCount() const1097{1098return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(segmentControlPointCount));1099}11001101_MTL_INLINE NS::UInteger MTL4::AccelerationStructureMotionCurveGeometryDescriptor::segmentCount() const1102{1103return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(segmentCount));1104}11051106_MTL_INLINE void MTL4::AccelerationStructureMotionCurveGeometryDescriptor::setControlPointBuffers(const MTL4::BufferRange controlPointBuffers)1107{1108Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setControlPointBuffers_), controlPointBuffers);1109}11101111_MTL_INLINE void MTL4::AccelerationStructureMotionCurveGeometryDescriptor::setControlPointCount(NS::UInteger controlPointCount)1112{1113Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setControlPointCount_), controlPointCount);1114}11151116_MTL_INLINE void MTL4::AccelerationStructureMotionCurveGeometryDescriptor::setControlPointFormat(MTL::AttributeFormat controlPointFormat)1117{1118Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setControlPointFormat_), controlPointFormat);1119}11201121_MTL_INLINE void MTL4::AccelerationStructureMotionCurveGeometryDescriptor::setControlPointStride(NS::UInteger controlPointStride)1122{1123Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setControlPointStride_), controlPointStride);1124}11251126_MTL_INLINE void MTL4::AccelerationStructureMotionCurveGeometryDescriptor::setCurveBasis(MTL::CurveBasis curveBasis)1127{1128Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setCurveBasis_), curveBasis);1129}11301131_MTL_INLINE void MTL4::AccelerationStructureMotionCurveGeometryDescriptor::setCurveEndCaps(MTL::CurveEndCaps curveEndCaps)1132{1133Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setCurveEndCaps_), curveEndCaps);1134}11351136_MTL_INLINE void MTL4::AccelerationStructureMotionCurveGeometryDescriptor::setCurveType(MTL::CurveType curveType)1137{1138Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setCurveType_), curveType);1139}11401141_MTL_INLINE void MTL4::AccelerationStructureMotionCurveGeometryDescriptor::setIndexBuffer(const MTL4::BufferRange indexBuffer)1142{1143Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setIndexBuffer_), indexBuffer);1144}11451146_MTL_INLINE void MTL4::AccelerationStructureMotionCurveGeometryDescriptor::setIndexType(MTL::IndexType indexType)1147{1148Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setIndexType_), indexType);1149}11501151_MTL_INLINE void MTL4::AccelerationStructureMotionCurveGeometryDescriptor::setRadiusBuffers(const MTL4::BufferRange radiusBuffers)1152{1153Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setRadiusBuffers_), radiusBuffers);1154}11551156_MTL_INLINE void MTL4::AccelerationStructureMotionCurveGeometryDescriptor::setRadiusFormat(MTL::AttributeFormat radiusFormat)1157{1158Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setRadiusFormat_), radiusFormat);1159}11601161_MTL_INLINE void MTL4::AccelerationStructureMotionCurveGeometryDescriptor::setRadiusStride(NS::UInteger radiusStride)1162{1163Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setRadiusStride_), radiusStride);1164}11651166_MTL_INLINE void MTL4::AccelerationStructureMotionCurveGeometryDescriptor::setSegmentControlPointCount(NS::UInteger segmentControlPointCount)1167{1168Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setSegmentControlPointCount_), segmentControlPointCount);1169}11701171_MTL_INLINE void MTL4::AccelerationStructureMotionCurveGeometryDescriptor::setSegmentCount(NS::UInteger segmentCount)1172{1173Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setSegmentCount_), segmentCount);1174}11751176_MTL_INLINE MTL4::InstanceAccelerationStructureDescriptor* MTL4::InstanceAccelerationStructureDescriptor::alloc()1177{1178return NS::Object::alloc<MTL4::InstanceAccelerationStructureDescriptor>(_MTL_PRIVATE_CLS(MTL4InstanceAccelerationStructureDescriptor));1179}11801181_MTL_INLINE MTL4::InstanceAccelerationStructureDescriptor* MTL4::InstanceAccelerationStructureDescriptor::init()1182{1183return NS::Object::init<MTL4::InstanceAccelerationStructureDescriptor>();1184}11851186_MTL_INLINE NS::UInteger MTL4::InstanceAccelerationStructureDescriptor::instanceCount() const1187{1188return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(instanceCount));1189}11901191_MTL_INLINE MTL4::BufferRange MTL4::InstanceAccelerationStructureDescriptor::instanceDescriptorBuffer() const1192{1193return Object::sendMessage<MTL4::BufferRange>(this, _MTL_PRIVATE_SEL(instanceDescriptorBuffer));1194}11951196_MTL_INLINE NS::UInteger MTL4::InstanceAccelerationStructureDescriptor::instanceDescriptorStride() const1197{1198return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(instanceDescriptorStride));1199}12001201_MTL_INLINE MTL::AccelerationStructureInstanceDescriptorType MTL4::InstanceAccelerationStructureDescriptor::instanceDescriptorType() const1202{1203return Object::sendMessage<MTL::AccelerationStructureInstanceDescriptorType>(this, _MTL_PRIVATE_SEL(instanceDescriptorType));1204}12051206_MTL_INLINE MTL::MatrixLayout MTL4::InstanceAccelerationStructureDescriptor::instanceTransformationMatrixLayout() const1207{1208return Object::sendMessage<MTL::MatrixLayout>(this, _MTL_PRIVATE_SEL(instanceTransformationMatrixLayout));1209}12101211_MTL_INLINE MTL4::BufferRange MTL4::InstanceAccelerationStructureDescriptor::motionTransformBuffer() const1212{1213return Object::sendMessage<MTL4::BufferRange>(this, _MTL_PRIVATE_SEL(motionTransformBuffer));1214}12151216_MTL_INLINE NS::UInteger MTL4::InstanceAccelerationStructureDescriptor::motionTransformCount() const1217{1218return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(motionTransformCount));1219}12201221_MTL_INLINE NS::UInteger MTL4::InstanceAccelerationStructureDescriptor::motionTransformStride() const1222{1223return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(motionTransformStride));1224}12251226_MTL_INLINE MTL::TransformType MTL4::InstanceAccelerationStructureDescriptor::motionTransformType() const1227{1228return Object::sendMessage<MTL::TransformType>(this, _MTL_PRIVATE_SEL(motionTransformType));1229}12301231_MTL_INLINE void MTL4::InstanceAccelerationStructureDescriptor::setInstanceCount(NS::UInteger instanceCount)1232{1233Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setInstanceCount_), instanceCount);1234}12351236_MTL_INLINE void MTL4::InstanceAccelerationStructureDescriptor::setInstanceDescriptorBuffer(const MTL4::BufferRange instanceDescriptorBuffer)1237{1238Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setInstanceDescriptorBuffer_), instanceDescriptorBuffer);1239}12401241_MTL_INLINE void MTL4::InstanceAccelerationStructureDescriptor::setInstanceDescriptorStride(NS::UInteger instanceDescriptorStride)1242{1243Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setInstanceDescriptorStride_), instanceDescriptorStride);1244}12451246_MTL_INLINE void MTL4::InstanceAccelerationStructureDescriptor::setInstanceDescriptorType(MTL::AccelerationStructureInstanceDescriptorType instanceDescriptorType)1247{1248Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setInstanceDescriptorType_), instanceDescriptorType);1249}12501251_MTL_INLINE void MTL4::InstanceAccelerationStructureDescriptor::setInstanceTransformationMatrixLayout(MTL::MatrixLayout instanceTransformationMatrixLayout)1252{1253Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setInstanceTransformationMatrixLayout_), instanceTransformationMatrixLayout);1254}12551256_MTL_INLINE void MTL4::InstanceAccelerationStructureDescriptor::setMotionTransformBuffer(const MTL4::BufferRange motionTransformBuffer)1257{1258Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setMotionTransformBuffer_), motionTransformBuffer);1259}12601261_MTL_INLINE void MTL4::InstanceAccelerationStructureDescriptor::setMotionTransformCount(NS::UInteger motionTransformCount)1262{1263Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setMotionTransformCount_), motionTransformCount);1264}12651266_MTL_INLINE void MTL4::InstanceAccelerationStructureDescriptor::setMotionTransformStride(NS::UInteger motionTransformStride)1267{1268Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setMotionTransformStride_), motionTransformStride);1269}12701271_MTL_INLINE void MTL4::InstanceAccelerationStructureDescriptor::setMotionTransformType(MTL::TransformType motionTransformType)1272{1273Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setMotionTransformType_), motionTransformType);1274}12751276_MTL_INLINE MTL4::IndirectInstanceAccelerationStructureDescriptor* MTL4::IndirectInstanceAccelerationStructureDescriptor::alloc()1277{1278return NS::Object::alloc<MTL4::IndirectInstanceAccelerationStructureDescriptor>(_MTL_PRIVATE_CLS(MTL4IndirectInstanceAccelerationStructureDescriptor));1279}12801281_MTL_INLINE MTL4::IndirectInstanceAccelerationStructureDescriptor* MTL4::IndirectInstanceAccelerationStructureDescriptor::init()1282{1283return NS::Object::init<MTL4::IndirectInstanceAccelerationStructureDescriptor>();1284}12851286_MTL_INLINE MTL4::BufferRange MTL4::IndirectInstanceAccelerationStructureDescriptor::instanceCountBuffer() const1287{1288return Object::sendMessage<MTL4::BufferRange>(this, _MTL_PRIVATE_SEL(instanceCountBuffer));1289}12901291_MTL_INLINE MTL4::BufferRange MTL4::IndirectInstanceAccelerationStructureDescriptor::instanceDescriptorBuffer() const1292{1293return Object::sendMessage<MTL4::BufferRange>(this, _MTL_PRIVATE_SEL(instanceDescriptorBuffer));1294}12951296_MTL_INLINE NS::UInteger MTL4::IndirectInstanceAccelerationStructureDescriptor::instanceDescriptorStride() const1297{1298return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(instanceDescriptorStride));1299}13001301_MTL_INLINE MTL::AccelerationStructureInstanceDescriptorType MTL4::IndirectInstanceAccelerationStructureDescriptor::instanceDescriptorType() const1302{1303return Object::sendMessage<MTL::AccelerationStructureInstanceDescriptorType>(this, _MTL_PRIVATE_SEL(instanceDescriptorType));1304}13051306_MTL_INLINE MTL::MatrixLayout MTL4::IndirectInstanceAccelerationStructureDescriptor::instanceTransformationMatrixLayout() const1307{1308return Object::sendMessage<MTL::MatrixLayout>(this, _MTL_PRIVATE_SEL(instanceTransformationMatrixLayout));1309}13101311_MTL_INLINE NS::UInteger MTL4::IndirectInstanceAccelerationStructureDescriptor::maxInstanceCount() const1312{1313return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(maxInstanceCount));1314}13151316_MTL_INLINE NS::UInteger MTL4::IndirectInstanceAccelerationStructureDescriptor::maxMotionTransformCount() const1317{1318return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(maxMotionTransformCount));1319}13201321_MTL_INLINE MTL4::BufferRange MTL4::IndirectInstanceAccelerationStructureDescriptor::motionTransformBuffer() const1322{1323return Object::sendMessage<MTL4::BufferRange>(this, _MTL_PRIVATE_SEL(motionTransformBuffer));1324}13251326_MTL_INLINE MTL4::BufferRange MTL4::IndirectInstanceAccelerationStructureDescriptor::motionTransformCountBuffer() const1327{1328return Object::sendMessage<MTL4::BufferRange>(this, _MTL_PRIVATE_SEL(motionTransformCountBuffer));1329}13301331_MTL_INLINE NS::UInteger MTL4::IndirectInstanceAccelerationStructureDescriptor::motionTransformStride() const1332{1333return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(motionTransformStride));1334}13351336_MTL_INLINE MTL::TransformType MTL4::IndirectInstanceAccelerationStructureDescriptor::motionTransformType() const1337{1338return Object::sendMessage<MTL::TransformType>(this, _MTL_PRIVATE_SEL(motionTransformType));1339}13401341_MTL_INLINE void MTL4::IndirectInstanceAccelerationStructureDescriptor::setInstanceCountBuffer(const MTL4::BufferRange instanceCountBuffer)1342{1343Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setInstanceCountBuffer_), instanceCountBuffer);1344}13451346_MTL_INLINE void MTL4::IndirectInstanceAccelerationStructureDescriptor::setInstanceDescriptorBuffer(const MTL4::BufferRange instanceDescriptorBuffer)1347{1348Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setInstanceDescriptorBuffer_), instanceDescriptorBuffer);1349}13501351_MTL_INLINE void MTL4::IndirectInstanceAccelerationStructureDescriptor::setInstanceDescriptorStride(NS::UInteger instanceDescriptorStride)1352{1353Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setInstanceDescriptorStride_), instanceDescriptorStride);1354}13551356_MTL_INLINE void MTL4::IndirectInstanceAccelerationStructureDescriptor::setInstanceDescriptorType(MTL::AccelerationStructureInstanceDescriptorType instanceDescriptorType)1357{1358Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setInstanceDescriptorType_), instanceDescriptorType);1359}13601361_MTL_INLINE void MTL4::IndirectInstanceAccelerationStructureDescriptor::setInstanceTransformationMatrixLayout(MTL::MatrixLayout instanceTransformationMatrixLayout)1362{1363Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setInstanceTransformationMatrixLayout_), instanceTransformationMatrixLayout);1364}13651366_MTL_INLINE void MTL4::IndirectInstanceAccelerationStructureDescriptor::setMaxInstanceCount(NS::UInteger maxInstanceCount)1367{1368Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setMaxInstanceCount_), maxInstanceCount);1369}13701371_MTL_INLINE void MTL4::IndirectInstanceAccelerationStructureDescriptor::setMaxMotionTransformCount(NS::UInteger maxMotionTransformCount)1372{1373Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setMaxMotionTransformCount_), maxMotionTransformCount);1374}13751376_MTL_INLINE void MTL4::IndirectInstanceAccelerationStructureDescriptor::setMotionTransformBuffer(const MTL4::BufferRange motionTransformBuffer)1377{1378Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setMotionTransformBuffer_), motionTransformBuffer);1379}13801381_MTL_INLINE void MTL4::IndirectInstanceAccelerationStructureDescriptor::setMotionTransformCountBuffer(const MTL4::BufferRange motionTransformCountBuffer)1382{1383Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setMotionTransformCountBuffer_), motionTransformCountBuffer);1384}13851386_MTL_INLINE void MTL4::IndirectInstanceAccelerationStructureDescriptor::setMotionTransformStride(NS::UInteger motionTransformStride)1387{1388Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setMotionTransformStride_), motionTransformStride);1389}13901391_MTL_INLINE void MTL4::IndirectInstanceAccelerationStructureDescriptor::setMotionTransformType(MTL::TransformType motionTransformType)1392{1393Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setMotionTransformType_), motionTransformType);1394}139513961397