Path: blob/master/thirdparty/metal-cpp/Metal/MTLAccelerationStructure.hpp
21066 views
//-------------------------------------------------------------------------------------------------------------------------------------------------------------1//2// Metal/MTLAccelerationStructure.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 "MTLAccelerationStructureTypes.hpp"24#include "MTLArgument.hpp"25#include "MTLDefines.hpp"26#include "MTLHeaderBridge.hpp"27#include "MTLPrivate.hpp"28#include "MTLResource.hpp"29#include "MTLStageInputOutputDescriptor.hpp"30#include "MTLTypes.hpp"31#include <cstdint>3233namespace MTL34{35class AccelerationStructureBoundingBoxGeometryDescriptor;36class AccelerationStructureCurveGeometryDescriptor;37class AccelerationStructureDescriptor;38class AccelerationStructureGeometryDescriptor;39class AccelerationStructureMotionBoundingBoxGeometryDescriptor;40class AccelerationStructureMotionCurveGeometryDescriptor;41class AccelerationStructureMotionTriangleGeometryDescriptor;42class AccelerationStructureTriangleGeometryDescriptor;43class Buffer;44class IndirectInstanceAccelerationStructureDescriptor;45class InstanceAccelerationStructureDescriptor;46class MotionKeyframeData;47class PrimitiveAccelerationStructureDescriptor;48}4950namespace MTL51{52_MTL_ENUM(NS::Integer, MatrixLayout) {53MatrixLayoutColumnMajor = 0,54MatrixLayoutRowMajor = 1,55};5657_MTL_ENUM(uint32_t, MotionBorderMode) {58MotionBorderModeClamp = 0,59MotionBorderModeVanish = 1,60};6162_MTL_ENUM(NS::Integer, CurveType) {63CurveTypeRound = 0,64CurveTypeFlat = 1,65};6667_MTL_ENUM(NS::Integer, CurveBasis) {68CurveBasisBSpline = 0,69CurveBasisCatmullRom = 1,70CurveBasisLinear = 2,71CurveBasisBezier = 3,72};7374_MTL_ENUM(NS::Integer, CurveEndCaps) {75CurveEndCapsNone = 0,76CurveEndCapsDisk = 1,77CurveEndCapsSphere = 2,78};7980_MTL_ENUM(NS::UInteger, AccelerationStructureInstanceDescriptorType) {81AccelerationStructureInstanceDescriptorTypeDefault = 0,82AccelerationStructureInstanceDescriptorTypeUserID = 1,83AccelerationStructureInstanceDescriptorTypeMotion = 2,84AccelerationStructureInstanceDescriptorTypeIndirect = 3,85AccelerationStructureInstanceDescriptorTypeIndirectMotion = 4,86};8788_MTL_ENUM(NS::Integer, TransformType) {89TransformTypePackedFloat4x3 = 0,90TransformTypeComponent = 1,91};9293_MTL_OPTIONS(NS::UInteger, AccelerationStructureRefitOptions) {94AccelerationStructureRefitOptionVertexData = 1,95AccelerationStructureRefitOptionPerPrimitiveData = 1 << 1,96};9798_MTL_OPTIONS(NS::UInteger, AccelerationStructureUsage) {99AccelerationStructureUsageNone = 0,100AccelerationStructureUsageRefit = 1,101AccelerationStructureUsagePreferFastBuild = 1 << 1,102AccelerationStructureUsageExtendedLimits = 1 << 2,103AccelerationStructureUsagePreferFastIntersection = 1 << 4,104AccelerationStructureUsageMinimizeMemory = 1 << 5,105};106107_MTL_OPTIONS(uint32_t, AccelerationStructureInstanceOptions) {108AccelerationStructureInstanceOptionNone = 0,109AccelerationStructureInstanceOptionDisableTriangleCulling = 1,110AccelerationStructureInstanceOptionTriangleFrontFacingWindingCounterClockwise = 1 << 1,111AccelerationStructureInstanceOptionOpaque = 1 << 2,112AccelerationStructureInstanceOptionNonOpaque = 1 << 3,113};114115struct AccelerationStructureInstanceDescriptor116{117MTL::PackedFloat4x3 transformationMatrix;118MTL::AccelerationStructureInstanceOptions options;119uint32_t mask;120uint32_t intersectionFunctionTableOffset;121uint32_t accelerationStructureIndex;122} _MTL_PACKED;123124struct AccelerationStructureUserIDInstanceDescriptor125{126MTL::PackedFloat4x3 transformationMatrix;127MTL::AccelerationStructureInstanceOptions options;128uint32_t mask;129uint32_t intersectionFunctionTableOffset;130uint32_t accelerationStructureIndex;131uint32_t userID;132} _MTL_PACKED;133134struct AccelerationStructureMotionInstanceDescriptor135{136MTL::AccelerationStructureInstanceOptions options;137uint32_t mask;138uint32_t intersectionFunctionTableOffset;139uint32_t accelerationStructureIndex;140uint32_t userID;141uint32_t motionTransformsStartIndex;142uint32_t motionTransformsCount;143MTL::MotionBorderMode motionStartBorderMode;144MTL::MotionBorderMode motionEndBorderMode;145float motionStartTime;146float motionEndTime;147} _MTL_PACKED;148149struct IndirectAccelerationStructureInstanceDescriptor150{151MTL::PackedFloat4x3 transformationMatrix;152MTL::AccelerationStructureInstanceOptions options;153uint32_t mask;154uint32_t intersectionFunctionTableOffset;155uint32_t userID;156MTL::ResourceID accelerationStructureID;157} _MTL_PACKED;158159struct IndirectAccelerationStructureMotionInstanceDescriptor160{161MTL::AccelerationStructureInstanceOptions options;162uint32_t mask;163uint32_t intersectionFunctionTableOffset;164uint32_t userID;165MTL::ResourceID accelerationStructureID;166uint32_t motionTransformsStartIndex;167uint32_t motionTransformsCount;168MTL::MotionBorderMode motionStartBorderMode;169MTL::MotionBorderMode motionEndBorderMode;170float motionStartTime;171float motionEndTime;172} _MTL_PACKED;173174class AccelerationStructureDescriptor : public NS::Copying<AccelerationStructureDescriptor>175{176public:177static AccelerationStructureDescriptor* alloc();178179AccelerationStructureDescriptor* init();180181void setUsage(MTL::AccelerationStructureUsage usage);182AccelerationStructureUsage usage() const;183};184class AccelerationStructureGeometryDescriptor : public NS::Copying<AccelerationStructureGeometryDescriptor>185{186public:187static AccelerationStructureGeometryDescriptor* alloc();188189bool allowDuplicateIntersectionFunctionInvocation() const;190191AccelerationStructureGeometryDescriptor* init();192193NS::UInteger intersectionFunctionTableOffset() const;194195NS::String* label() const;196197bool opaque() const;198199Buffer* primitiveDataBuffer() const;200NS::UInteger primitiveDataBufferOffset() const;201202NS::UInteger primitiveDataElementSize() const;203204NS::UInteger primitiveDataStride() const;205206void setAllowDuplicateIntersectionFunctionInvocation(bool allowDuplicateIntersectionFunctionInvocation);207208void setIntersectionFunctionTableOffset(NS::UInteger intersectionFunctionTableOffset);209210void setLabel(const NS::String* label);211212void setOpaque(bool opaque);213214void setPrimitiveDataBuffer(const MTL::Buffer* primitiveDataBuffer);215void setPrimitiveDataBufferOffset(NS::UInteger primitiveDataBufferOffset);216217void setPrimitiveDataElementSize(NS::UInteger primitiveDataElementSize);218219void setPrimitiveDataStride(NS::UInteger primitiveDataStride);220};221class PrimitiveAccelerationStructureDescriptor : public NS::Copying<PrimitiveAccelerationStructureDescriptor, AccelerationStructureDescriptor>222{223public:224static PrimitiveAccelerationStructureDescriptor* alloc();225226static PrimitiveAccelerationStructureDescriptor* descriptor();227NS::Array* geometryDescriptors() const;228229PrimitiveAccelerationStructureDescriptor* init();230231MotionBorderMode motionEndBorderMode() const;232233float motionEndTime() const;234235NS::UInteger motionKeyframeCount() const;236237MotionBorderMode motionStartBorderMode() const;238239float motionStartTime() const;240241void setGeometryDescriptors(const NS::Array* geometryDescriptors);242243void setMotionEndBorderMode(MTL::MotionBorderMode motionEndBorderMode);244245void setMotionEndTime(float motionEndTime);246247void setMotionKeyframeCount(NS::UInteger motionKeyframeCount);248249void setMotionStartBorderMode(MTL::MotionBorderMode motionStartBorderMode);250251void setMotionStartTime(float motionStartTime);252};253class AccelerationStructureTriangleGeometryDescriptor : public NS::Copying<AccelerationStructureTriangleGeometryDescriptor, AccelerationStructureGeometryDescriptor>254{255public:256static AccelerationStructureTriangleGeometryDescriptor* alloc();257258static AccelerationStructureTriangleGeometryDescriptor* descriptor();259260Buffer* indexBuffer() const;261NS::UInteger indexBufferOffset() const;262263IndexType indexType() const;264265AccelerationStructureTriangleGeometryDescriptor* init();266267void setIndexBuffer(const MTL::Buffer* indexBuffer);268void setIndexBufferOffset(NS::UInteger indexBufferOffset);269270void setIndexType(MTL::IndexType indexType);271272void setTransformationMatrixBuffer(const MTL::Buffer* transformationMatrixBuffer);273void setTransformationMatrixBufferOffset(NS::UInteger transformationMatrixBufferOffset);274275void setTransformationMatrixLayout(MTL::MatrixLayout transformationMatrixLayout);276277void setTriangleCount(NS::UInteger triangleCount);278279void setVertexBuffer(const MTL::Buffer* vertexBuffer);280void setVertexBufferOffset(NS::UInteger vertexBufferOffset);281282void setVertexFormat(MTL::AttributeFormat vertexFormat);283284void setVertexStride(NS::UInteger vertexStride);285286Buffer* transformationMatrixBuffer() const;287NS::UInteger transformationMatrixBufferOffset() const;288289MatrixLayout transformationMatrixLayout() const;290291NS::UInteger triangleCount() const;292293Buffer* vertexBuffer() const;294NS::UInteger vertexBufferOffset() const;295296AttributeFormat vertexFormat() const;297298NS::UInteger vertexStride() const;299};300class AccelerationStructureBoundingBoxGeometryDescriptor : public NS::Copying<AccelerationStructureBoundingBoxGeometryDescriptor, AccelerationStructureGeometryDescriptor>301{302public:303static AccelerationStructureBoundingBoxGeometryDescriptor* alloc();304305Buffer* boundingBoxBuffer() const;306NS::UInteger boundingBoxBufferOffset() const;307308NS::UInteger boundingBoxCount() const;309310NS::UInteger boundingBoxStride() const;311312static AccelerationStructureBoundingBoxGeometryDescriptor* descriptor();313314AccelerationStructureBoundingBoxGeometryDescriptor* init();315316void setBoundingBoxBuffer(const MTL::Buffer* boundingBoxBuffer);317void setBoundingBoxBufferOffset(NS::UInteger boundingBoxBufferOffset);318319void setBoundingBoxCount(NS::UInteger boundingBoxCount);320321void setBoundingBoxStride(NS::UInteger boundingBoxStride);322};323class MotionKeyframeData : public NS::Referencing<MotionKeyframeData>324{325public:326static MotionKeyframeData* alloc();327328Buffer* buffer() const;329330static MotionKeyframeData* data();331332MotionKeyframeData* init();333334NS::UInteger offset() const;335336void setBuffer(const MTL::Buffer* buffer);337338void setOffset(NS::UInteger offset);339};340class AccelerationStructureMotionTriangleGeometryDescriptor : public NS::Copying<AccelerationStructureMotionTriangleGeometryDescriptor, AccelerationStructureGeometryDescriptor>341{342public:343static AccelerationStructureMotionTriangleGeometryDescriptor* alloc();344345static AccelerationStructureMotionTriangleGeometryDescriptor* descriptor();346347Buffer* indexBuffer() const;348NS::UInteger indexBufferOffset() const;349350IndexType indexType() const;351352AccelerationStructureMotionTriangleGeometryDescriptor* init();353354void setIndexBuffer(const MTL::Buffer* indexBuffer);355void setIndexBufferOffset(NS::UInteger indexBufferOffset);356357void setIndexType(MTL::IndexType indexType);358359void setTransformationMatrixBuffer(const MTL::Buffer* transformationMatrixBuffer);360void setTransformationMatrixBufferOffset(NS::UInteger transformationMatrixBufferOffset);361362void setTransformationMatrixLayout(MTL::MatrixLayout transformationMatrixLayout);363364void setTriangleCount(NS::UInteger triangleCount);365366void setVertexBuffers(const NS::Array* vertexBuffers);367368void setVertexFormat(MTL::AttributeFormat vertexFormat);369370void setVertexStride(NS::UInteger vertexStride);371372Buffer* transformationMatrixBuffer() const;373NS::UInteger transformationMatrixBufferOffset() const;374375MatrixLayout transformationMatrixLayout() const;376377NS::UInteger triangleCount() const;378379NS::Array* vertexBuffers() const;380381AttributeFormat vertexFormat() const;382383NS::UInteger vertexStride() const;384};385class AccelerationStructureMotionBoundingBoxGeometryDescriptor : public NS::Copying<AccelerationStructureMotionBoundingBoxGeometryDescriptor, AccelerationStructureGeometryDescriptor>386{387public:388static AccelerationStructureMotionBoundingBoxGeometryDescriptor* alloc();389390NS::Array* boundingBoxBuffers() const;391392NS::UInteger boundingBoxCount() const;393394NS::UInteger boundingBoxStride() const;395396static AccelerationStructureMotionBoundingBoxGeometryDescriptor* descriptor();397398AccelerationStructureMotionBoundingBoxGeometryDescriptor* init();399400void setBoundingBoxBuffers(const NS::Array* boundingBoxBuffers);401402void setBoundingBoxCount(NS::UInteger boundingBoxCount);403404void setBoundingBoxStride(NS::UInteger boundingBoxStride);405};406class AccelerationStructureCurveGeometryDescriptor : public NS::Copying<AccelerationStructureCurveGeometryDescriptor, AccelerationStructureGeometryDescriptor>407{408public:409static AccelerationStructureCurveGeometryDescriptor* alloc();410411Buffer* controlPointBuffer() const;412NS::UInteger controlPointBufferOffset() const;413414NS::UInteger controlPointCount() const;415416AttributeFormat controlPointFormat() const;417418NS::UInteger controlPointStride() const;419420CurveBasis curveBasis() const;421422CurveEndCaps curveEndCaps() const;423424CurveType curveType() const;425426static AccelerationStructureCurveGeometryDescriptor* descriptor();427428Buffer* indexBuffer() const;429NS::UInteger indexBufferOffset() const;430431IndexType indexType() const;432433AccelerationStructureCurveGeometryDescriptor* init();434435Buffer* radiusBuffer() const;436NS::UInteger radiusBufferOffset() const;437438AttributeFormat radiusFormat() const;439440NS::UInteger radiusStride() const;441442NS::UInteger segmentControlPointCount() const;443444NS::UInteger segmentCount() const;445446void setControlPointBuffer(const MTL::Buffer* controlPointBuffer);447void setControlPointBufferOffset(NS::UInteger controlPointBufferOffset);448449void setControlPointCount(NS::UInteger controlPointCount);450451void setControlPointFormat(MTL::AttributeFormat controlPointFormat);452453void setControlPointStride(NS::UInteger controlPointStride);454455void setCurveBasis(MTL::CurveBasis curveBasis);456457void setCurveEndCaps(MTL::CurveEndCaps curveEndCaps);458459void setCurveType(MTL::CurveType curveType);460461void setIndexBuffer(const MTL::Buffer* indexBuffer);462void setIndexBufferOffset(NS::UInteger indexBufferOffset);463464void setIndexType(MTL::IndexType indexType);465466void setRadiusBuffer(const MTL::Buffer* radiusBuffer);467void setRadiusBufferOffset(NS::UInteger radiusBufferOffset);468469void setRadiusFormat(MTL::AttributeFormat radiusFormat);470471void setRadiusStride(NS::UInteger radiusStride);472473void setSegmentControlPointCount(NS::UInteger segmentControlPointCount);474475void setSegmentCount(NS::UInteger segmentCount);476};477class AccelerationStructureMotionCurveGeometryDescriptor : public NS::Copying<AccelerationStructureMotionCurveGeometryDescriptor, AccelerationStructureGeometryDescriptor>478{479public:480static AccelerationStructureMotionCurveGeometryDescriptor* alloc();481482NS::Array* controlPointBuffers() const;483484NS::UInteger controlPointCount() const;485486AttributeFormat controlPointFormat() const;487488NS::UInteger controlPointStride() const;489490CurveBasis curveBasis() const;491492CurveEndCaps curveEndCaps() const;493494CurveType curveType() const;495496static AccelerationStructureMotionCurveGeometryDescriptor* descriptor();497498Buffer* indexBuffer() const;499NS::UInteger indexBufferOffset() const;500501IndexType indexType() const;502503AccelerationStructureMotionCurveGeometryDescriptor* init();504505NS::Array* radiusBuffers() const;506507AttributeFormat radiusFormat() const;508509NS::UInteger radiusStride() const;510511NS::UInteger segmentControlPointCount() const;512513NS::UInteger segmentCount() const;514515void setControlPointBuffers(const NS::Array* controlPointBuffers);516517void setControlPointCount(NS::UInteger controlPointCount);518519void setControlPointFormat(MTL::AttributeFormat controlPointFormat);520521void setControlPointStride(NS::UInteger controlPointStride);522523void setCurveBasis(MTL::CurveBasis curveBasis);524525void setCurveEndCaps(MTL::CurveEndCaps curveEndCaps);526527void setCurveType(MTL::CurveType curveType);528529void setIndexBuffer(const MTL::Buffer* indexBuffer);530void setIndexBufferOffset(NS::UInteger indexBufferOffset);531532void setIndexType(MTL::IndexType indexType);533534void setRadiusBuffers(const NS::Array* radiusBuffers);535536void setRadiusFormat(MTL::AttributeFormat radiusFormat);537538void setRadiusStride(NS::UInteger radiusStride);539540void setSegmentControlPointCount(NS::UInteger segmentControlPointCount);541542void setSegmentCount(NS::UInteger segmentCount);543};544class InstanceAccelerationStructureDescriptor : public NS::Copying<InstanceAccelerationStructureDescriptor, AccelerationStructureDescriptor>545{546public:547static InstanceAccelerationStructureDescriptor* alloc();548549static InstanceAccelerationStructureDescriptor* descriptor();550551InstanceAccelerationStructureDescriptor* init();552553NS::UInteger instanceCount() const;554555Buffer* instanceDescriptorBuffer() const;556NS::UInteger instanceDescriptorBufferOffset() const;557558NS::UInteger instanceDescriptorStride() const;559560AccelerationStructureInstanceDescriptorType instanceDescriptorType() const;561562MatrixLayout instanceTransformationMatrixLayout() const;563564NS::Array* instancedAccelerationStructures() const;565566Buffer* motionTransformBuffer() const;567NS::UInteger motionTransformBufferOffset() const;568569NS::UInteger motionTransformCount() const;570571NS::UInteger motionTransformStride() const;572573TransformType motionTransformType() const;574575void setInstanceCount(NS::UInteger instanceCount);576577void setInstanceDescriptorBuffer(const MTL::Buffer* instanceDescriptorBuffer);578void setInstanceDescriptorBufferOffset(NS::UInteger instanceDescriptorBufferOffset);579580void setInstanceDescriptorStride(NS::UInteger instanceDescriptorStride);581582void setInstanceDescriptorType(MTL::AccelerationStructureInstanceDescriptorType instanceDescriptorType);583584void setInstanceTransformationMatrixLayout(MTL::MatrixLayout instanceTransformationMatrixLayout);585586void setInstancedAccelerationStructures(const NS::Array* instancedAccelerationStructures);587588void setMotionTransformBuffer(const MTL::Buffer* motionTransformBuffer);589void setMotionTransformBufferOffset(NS::UInteger motionTransformBufferOffset);590591void setMotionTransformCount(NS::UInteger motionTransformCount);592593void setMotionTransformStride(NS::UInteger motionTransformStride);594595void setMotionTransformType(MTL::TransformType motionTransformType);596};597class IndirectInstanceAccelerationStructureDescriptor : public NS::Copying<IndirectInstanceAccelerationStructureDescriptor, AccelerationStructureDescriptor>598{599public:600static IndirectInstanceAccelerationStructureDescriptor* alloc();601602static IndirectInstanceAccelerationStructureDescriptor* descriptor();603604IndirectInstanceAccelerationStructureDescriptor* init();605606Buffer* instanceCountBuffer() const;607NS::UInteger instanceCountBufferOffset() const;608609Buffer* instanceDescriptorBuffer() const;610NS::UInteger instanceDescriptorBufferOffset() const;611612NS::UInteger instanceDescriptorStride() const;613614AccelerationStructureInstanceDescriptorType instanceDescriptorType() const;615616MatrixLayout instanceTransformationMatrixLayout() const;617618NS::UInteger maxInstanceCount() const;619620NS::UInteger maxMotionTransformCount() const;621622Buffer* motionTransformBuffer() const;623NS::UInteger motionTransformBufferOffset() const;624625Buffer* motionTransformCountBuffer() const;626NS::UInteger motionTransformCountBufferOffset() const;627628NS::UInteger motionTransformStride() const;629630TransformType motionTransformType() const;631632void setInstanceCountBuffer(const MTL::Buffer* instanceCountBuffer);633void setInstanceCountBufferOffset(NS::UInteger instanceCountBufferOffset);634635void setInstanceDescriptorBuffer(const MTL::Buffer* instanceDescriptorBuffer);636void setInstanceDescriptorBufferOffset(NS::UInteger instanceDescriptorBufferOffset);637638void setInstanceDescriptorStride(NS::UInteger instanceDescriptorStride);639640void setInstanceDescriptorType(MTL::AccelerationStructureInstanceDescriptorType instanceDescriptorType);641642void setInstanceTransformationMatrixLayout(MTL::MatrixLayout instanceTransformationMatrixLayout);643644void setMaxInstanceCount(NS::UInteger maxInstanceCount);645646void setMaxMotionTransformCount(NS::UInteger maxMotionTransformCount);647648void setMotionTransformBuffer(const MTL::Buffer* motionTransformBuffer);649void setMotionTransformBufferOffset(NS::UInteger motionTransformBufferOffset);650651void setMotionTransformCountBuffer(const MTL::Buffer* motionTransformCountBuffer);652void setMotionTransformCountBufferOffset(NS::UInteger motionTransformCountBufferOffset);653654void setMotionTransformStride(NS::UInteger motionTransformStride);655656void setMotionTransformType(MTL::TransformType motionTransformType);657};658class AccelerationStructure : public NS::Referencing<AccelerationStructure, Resource>659{660public:661ResourceID gpuResourceID() const;662663NS::UInteger size() const;664};665666}667668_MTL_INLINE MTL::AccelerationStructureDescriptor* MTL::AccelerationStructureDescriptor::alloc()669{670return NS::Object::alloc<MTL::AccelerationStructureDescriptor>(_MTL_PRIVATE_CLS(MTLAccelerationStructureDescriptor));671}672673_MTL_INLINE MTL::AccelerationStructureDescriptor* MTL::AccelerationStructureDescriptor::init()674{675return NS::Object::init<MTL::AccelerationStructureDescriptor>();676}677678_MTL_INLINE void MTL::AccelerationStructureDescriptor::setUsage(MTL::AccelerationStructureUsage usage)679{680Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setUsage_), usage);681}682683_MTL_INLINE MTL::AccelerationStructureUsage MTL::AccelerationStructureDescriptor::usage() const684{685return Object::sendMessage<MTL::AccelerationStructureUsage>(this, _MTL_PRIVATE_SEL(usage));686}687688_MTL_INLINE MTL::AccelerationStructureGeometryDescriptor* MTL::AccelerationStructureGeometryDescriptor::alloc()689{690return NS::Object::alloc<MTL::AccelerationStructureGeometryDescriptor>(_MTL_PRIVATE_CLS(MTLAccelerationStructureGeometryDescriptor));691}692693_MTL_INLINE bool MTL::AccelerationStructureGeometryDescriptor::allowDuplicateIntersectionFunctionInvocation() const694{695return Object::sendMessage<bool>(this, _MTL_PRIVATE_SEL(allowDuplicateIntersectionFunctionInvocation));696}697698_MTL_INLINE MTL::AccelerationStructureGeometryDescriptor* MTL::AccelerationStructureGeometryDescriptor::init()699{700return NS::Object::init<MTL::AccelerationStructureGeometryDescriptor>();701}702703_MTL_INLINE NS::UInteger MTL::AccelerationStructureGeometryDescriptor::intersectionFunctionTableOffset() const704{705return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(intersectionFunctionTableOffset));706}707708_MTL_INLINE NS::String* MTL::AccelerationStructureGeometryDescriptor::label() const709{710return Object::sendMessage<NS::String*>(this, _MTL_PRIVATE_SEL(label));711}712713_MTL_INLINE bool MTL::AccelerationStructureGeometryDescriptor::opaque() const714{715return Object::sendMessage<bool>(this, _MTL_PRIVATE_SEL(opaque));716}717718_MTL_INLINE MTL::Buffer* MTL::AccelerationStructureGeometryDescriptor::primitiveDataBuffer() const719{720return Object::sendMessage<MTL::Buffer*>(this, _MTL_PRIVATE_SEL(primitiveDataBuffer));721}722723_MTL_INLINE NS::UInteger MTL::AccelerationStructureGeometryDescriptor::primitiveDataBufferOffset() const724{725return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(primitiveDataBufferOffset));726}727728_MTL_INLINE NS::UInteger MTL::AccelerationStructureGeometryDescriptor::primitiveDataElementSize() const729{730return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(primitiveDataElementSize));731}732733_MTL_INLINE NS::UInteger MTL::AccelerationStructureGeometryDescriptor::primitiveDataStride() const734{735return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(primitiveDataStride));736}737738_MTL_INLINE void MTL::AccelerationStructureGeometryDescriptor::setAllowDuplicateIntersectionFunctionInvocation(bool allowDuplicateIntersectionFunctionInvocation)739{740Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setAllowDuplicateIntersectionFunctionInvocation_), allowDuplicateIntersectionFunctionInvocation);741}742743_MTL_INLINE void MTL::AccelerationStructureGeometryDescriptor::setIntersectionFunctionTableOffset(NS::UInteger intersectionFunctionTableOffset)744{745Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setIntersectionFunctionTableOffset_), intersectionFunctionTableOffset);746}747748_MTL_INLINE void MTL::AccelerationStructureGeometryDescriptor::setLabel(const NS::String* label)749{750Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setLabel_), label);751}752753_MTL_INLINE void MTL::AccelerationStructureGeometryDescriptor::setOpaque(bool opaque)754{755Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setOpaque_), opaque);756}757758_MTL_INLINE void MTL::AccelerationStructureGeometryDescriptor::setPrimitiveDataBuffer(const MTL::Buffer* primitiveDataBuffer)759{760Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setPrimitiveDataBuffer_), primitiveDataBuffer);761}762763_MTL_INLINE void MTL::AccelerationStructureGeometryDescriptor::setPrimitiveDataBufferOffset(NS::UInteger primitiveDataBufferOffset)764{765Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setPrimitiveDataBufferOffset_), primitiveDataBufferOffset);766}767768_MTL_INLINE void MTL::AccelerationStructureGeometryDescriptor::setPrimitiveDataElementSize(NS::UInteger primitiveDataElementSize)769{770Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setPrimitiveDataElementSize_), primitiveDataElementSize);771}772773_MTL_INLINE void MTL::AccelerationStructureGeometryDescriptor::setPrimitiveDataStride(NS::UInteger primitiveDataStride)774{775Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setPrimitiveDataStride_), primitiveDataStride);776}777778_MTL_INLINE MTL::PrimitiveAccelerationStructureDescriptor* MTL::PrimitiveAccelerationStructureDescriptor::alloc()779{780return NS::Object::alloc<MTL::PrimitiveAccelerationStructureDescriptor>(_MTL_PRIVATE_CLS(MTLPrimitiveAccelerationStructureDescriptor));781}782783_MTL_INLINE MTL::PrimitiveAccelerationStructureDescriptor* MTL::PrimitiveAccelerationStructureDescriptor::descriptor()784{785return Object::sendMessage<MTL::PrimitiveAccelerationStructureDescriptor*>(_MTL_PRIVATE_CLS(MTLPrimitiveAccelerationStructureDescriptor), _MTL_PRIVATE_SEL(descriptor));786}787788_MTL_INLINE NS::Array* MTL::PrimitiveAccelerationStructureDescriptor::geometryDescriptors() const789{790return Object::sendMessage<NS::Array*>(this, _MTL_PRIVATE_SEL(geometryDescriptors));791}792793_MTL_INLINE MTL::PrimitiveAccelerationStructureDescriptor* MTL::PrimitiveAccelerationStructureDescriptor::init()794{795return NS::Object::init<MTL::PrimitiveAccelerationStructureDescriptor>();796}797798_MTL_INLINE MTL::MotionBorderMode MTL::PrimitiveAccelerationStructureDescriptor::motionEndBorderMode() const799{800return Object::sendMessage<MTL::MotionBorderMode>(this, _MTL_PRIVATE_SEL(motionEndBorderMode));801}802803_MTL_INLINE float MTL::PrimitiveAccelerationStructureDescriptor::motionEndTime() const804{805return Object::sendMessage<float>(this, _MTL_PRIVATE_SEL(motionEndTime));806}807808_MTL_INLINE NS::UInteger MTL::PrimitiveAccelerationStructureDescriptor::motionKeyframeCount() const809{810return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(motionKeyframeCount));811}812813_MTL_INLINE MTL::MotionBorderMode MTL::PrimitiveAccelerationStructureDescriptor::motionStartBorderMode() const814{815return Object::sendMessage<MTL::MotionBorderMode>(this, _MTL_PRIVATE_SEL(motionStartBorderMode));816}817818_MTL_INLINE float MTL::PrimitiveAccelerationStructureDescriptor::motionStartTime() const819{820return Object::sendMessage<float>(this, _MTL_PRIVATE_SEL(motionStartTime));821}822823_MTL_INLINE void MTL::PrimitiveAccelerationStructureDescriptor::setGeometryDescriptors(const NS::Array* geometryDescriptors)824{825Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setGeometryDescriptors_), geometryDescriptors);826}827828_MTL_INLINE void MTL::PrimitiveAccelerationStructureDescriptor::setMotionEndBorderMode(MTL::MotionBorderMode motionEndBorderMode)829{830Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setMotionEndBorderMode_), motionEndBorderMode);831}832833_MTL_INLINE void MTL::PrimitiveAccelerationStructureDescriptor::setMotionEndTime(float motionEndTime)834{835Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setMotionEndTime_), motionEndTime);836}837838_MTL_INLINE void MTL::PrimitiveAccelerationStructureDescriptor::setMotionKeyframeCount(NS::UInteger motionKeyframeCount)839{840Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setMotionKeyframeCount_), motionKeyframeCount);841}842843_MTL_INLINE void MTL::PrimitiveAccelerationStructureDescriptor::setMotionStartBorderMode(MTL::MotionBorderMode motionStartBorderMode)844{845Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setMotionStartBorderMode_), motionStartBorderMode);846}847848_MTL_INLINE void MTL::PrimitiveAccelerationStructureDescriptor::setMotionStartTime(float motionStartTime)849{850Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setMotionStartTime_), motionStartTime);851}852853_MTL_INLINE MTL::AccelerationStructureTriangleGeometryDescriptor* MTL::AccelerationStructureTriangleGeometryDescriptor::alloc()854{855return NS::Object::alloc<MTL::AccelerationStructureTriangleGeometryDescriptor>(_MTL_PRIVATE_CLS(MTLAccelerationStructureTriangleGeometryDescriptor));856}857858_MTL_INLINE MTL::AccelerationStructureTriangleGeometryDescriptor* MTL::AccelerationStructureTriangleGeometryDescriptor::descriptor()859{860return Object::sendMessage<MTL::AccelerationStructureTriangleGeometryDescriptor*>(_MTL_PRIVATE_CLS(MTLAccelerationStructureTriangleGeometryDescriptor), _MTL_PRIVATE_SEL(descriptor));861}862863_MTL_INLINE MTL::Buffer* MTL::AccelerationStructureTriangleGeometryDescriptor::indexBuffer() const864{865return Object::sendMessage<MTL::Buffer*>(this, _MTL_PRIVATE_SEL(indexBuffer));866}867868_MTL_INLINE NS::UInteger MTL::AccelerationStructureTriangleGeometryDescriptor::indexBufferOffset() const869{870return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(indexBufferOffset));871}872873_MTL_INLINE MTL::IndexType MTL::AccelerationStructureTriangleGeometryDescriptor::indexType() const874{875return Object::sendMessage<MTL::IndexType>(this, _MTL_PRIVATE_SEL(indexType));876}877878_MTL_INLINE MTL::AccelerationStructureTriangleGeometryDescriptor* MTL::AccelerationStructureTriangleGeometryDescriptor::init()879{880return NS::Object::init<MTL::AccelerationStructureTriangleGeometryDescriptor>();881}882883_MTL_INLINE void MTL::AccelerationStructureTriangleGeometryDescriptor::setIndexBuffer(const MTL::Buffer* indexBuffer)884{885Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setIndexBuffer_), indexBuffer);886}887888_MTL_INLINE void MTL::AccelerationStructureTriangleGeometryDescriptor::setIndexBufferOffset(NS::UInteger indexBufferOffset)889{890Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setIndexBufferOffset_), indexBufferOffset);891}892893_MTL_INLINE void MTL::AccelerationStructureTriangleGeometryDescriptor::setIndexType(MTL::IndexType indexType)894{895Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setIndexType_), indexType);896}897898_MTL_INLINE void MTL::AccelerationStructureTriangleGeometryDescriptor::setTransformationMatrixBuffer(const MTL::Buffer* transformationMatrixBuffer)899{900Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setTransformationMatrixBuffer_), transformationMatrixBuffer);901}902903_MTL_INLINE void MTL::AccelerationStructureTriangleGeometryDescriptor::setTransformationMatrixBufferOffset(NS::UInteger transformationMatrixBufferOffset)904{905Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setTransformationMatrixBufferOffset_), transformationMatrixBufferOffset);906}907908_MTL_INLINE void MTL::AccelerationStructureTriangleGeometryDescriptor::setTransformationMatrixLayout(MTL::MatrixLayout transformationMatrixLayout)909{910Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setTransformationMatrixLayout_), transformationMatrixLayout);911}912913_MTL_INLINE void MTL::AccelerationStructureTriangleGeometryDescriptor::setTriangleCount(NS::UInteger triangleCount)914{915Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setTriangleCount_), triangleCount);916}917918_MTL_INLINE void MTL::AccelerationStructureTriangleGeometryDescriptor::setVertexBuffer(const MTL::Buffer* vertexBuffer)919{920Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setVertexBuffer_), vertexBuffer);921}922923_MTL_INLINE void MTL::AccelerationStructureTriangleGeometryDescriptor::setVertexBufferOffset(NS::UInteger vertexBufferOffset)924{925Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setVertexBufferOffset_), vertexBufferOffset);926}927928_MTL_INLINE void MTL::AccelerationStructureTriangleGeometryDescriptor::setVertexFormat(MTL::AttributeFormat vertexFormat)929{930Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setVertexFormat_), vertexFormat);931}932933_MTL_INLINE void MTL::AccelerationStructureTriangleGeometryDescriptor::setVertexStride(NS::UInteger vertexStride)934{935Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setVertexStride_), vertexStride);936}937938_MTL_INLINE MTL::Buffer* MTL::AccelerationStructureTriangleGeometryDescriptor::transformationMatrixBuffer() const939{940return Object::sendMessage<MTL::Buffer*>(this, _MTL_PRIVATE_SEL(transformationMatrixBuffer));941}942943_MTL_INLINE NS::UInteger MTL::AccelerationStructureTriangleGeometryDescriptor::transformationMatrixBufferOffset() const944{945return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(transformationMatrixBufferOffset));946}947948_MTL_INLINE MTL::MatrixLayout MTL::AccelerationStructureTriangleGeometryDescriptor::transformationMatrixLayout() const949{950return Object::sendMessage<MTL::MatrixLayout>(this, _MTL_PRIVATE_SEL(transformationMatrixLayout));951}952953_MTL_INLINE NS::UInteger MTL::AccelerationStructureTriangleGeometryDescriptor::triangleCount() const954{955return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(triangleCount));956}957958_MTL_INLINE MTL::Buffer* MTL::AccelerationStructureTriangleGeometryDescriptor::vertexBuffer() const959{960return Object::sendMessage<MTL::Buffer*>(this, _MTL_PRIVATE_SEL(vertexBuffer));961}962963_MTL_INLINE NS::UInteger MTL::AccelerationStructureTriangleGeometryDescriptor::vertexBufferOffset() const964{965return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(vertexBufferOffset));966}967968_MTL_INLINE MTL::AttributeFormat MTL::AccelerationStructureTriangleGeometryDescriptor::vertexFormat() const969{970return Object::sendMessage<MTL::AttributeFormat>(this, _MTL_PRIVATE_SEL(vertexFormat));971}972973_MTL_INLINE NS::UInteger MTL::AccelerationStructureTriangleGeometryDescriptor::vertexStride() const974{975return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(vertexStride));976}977978_MTL_INLINE MTL::AccelerationStructureBoundingBoxGeometryDescriptor* MTL::AccelerationStructureBoundingBoxGeometryDescriptor::alloc()979{980return NS::Object::alloc<MTL::AccelerationStructureBoundingBoxGeometryDescriptor>(_MTL_PRIVATE_CLS(MTLAccelerationStructureBoundingBoxGeometryDescriptor));981}982983_MTL_INLINE MTL::Buffer* MTL::AccelerationStructureBoundingBoxGeometryDescriptor::boundingBoxBuffer() const984{985return Object::sendMessage<MTL::Buffer*>(this, _MTL_PRIVATE_SEL(boundingBoxBuffer));986}987988_MTL_INLINE NS::UInteger MTL::AccelerationStructureBoundingBoxGeometryDescriptor::boundingBoxBufferOffset() const989{990return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(boundingBoxBufferOffset));991}992993_MTL_INLINE NS::UInteger MTL::AccelerationStructureBoundingBoxGeometryDescriptor::boundingBoxCount() const994{995return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(boundingBoxCount));996}997998_MTL_INLINE NS::UInteger MTL::AccelerationStructureBoundingBoxGeometryDescriptor::boundingBoxStride() const999{1000return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(boundingBoxStride));1001}10021003_MTL_INLINE MTL::AccelerationStructureBoundingBoxGeometryDescriptor* MTL::AccelerationStructureBoundingBoxGeometryDescriptor::descriptor()1004{1005return Object::sendMessage<MTL::AccelerationStructureBoundingBoxGeometryDescriptor*>(_MTL_PRIVATE_CLS(MTLAccelerationStructureBoundingBoxGeometryDescriptor), _MTL_PRIVATE_SEL(descriptor));1006}10071008_MTL_INLINE MTL::AccelerationStructureBoundingBoxGeometryDescriptor* MTL::AccelerationStructureBoundingBoxGeometryDescriptor::init()1009{1010return NS::Object::init<MTL::AccelerationStructureBoundingBoxGeometryDescriptor>();1011}10121013_MTL_INLINE void MTL::AccelerationStructureBoundingBoxGeometryDescriptor::setBoundingBoxBuffer(const MTL::Buffer* boundingBoxBuffer)1014{1015Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setBoundingBoxBuffer_), boundingBoxBuffer);1016}10171018_MTL_INLINE void MTL::AccelerationStructureBoundingBoxGeometryDescriptor::setBoundingBoxBufferOffset(NS::UInteger boundingBoxBufferOffset)1019{1020Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setBoundingBoxBufferOffset_), boundingBoxBufferOffset);1021}10221023_MTL_INLINE void MTL::AccelerationStructureBoundingBoxGeometryDescriptor::setBoundingBoxCount(NS::UInteger boundingBoxCount)1024{1025Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setBoundingBoxCount_), boundingBoxCount);1026}10271028_MTL_INLINE void MTL::AccelerationStructureBoundingBoxGeometryDescriptor::setBoundingBoxStride(NS::UInteger boundingBoxStride)1029{1030Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setBoundingBoxStride_), boundingBoxStride);1031}10321033_MTL_INLINE MTL::MotionKeyframeData* MTL::MotionKeyframeData::alloc()1034{1035return NS::Object::alloc<MTL::MotionKeyframeData>(_MTL_PRIVATE_CLS(MTLMotionKeyframeData));1036}10371038_MTL_INLINE MTL::Buffer* MTL::MotionKeyframeData::buffer() const1039{1040return Object::sendMessage<MTL::Buffer*>(this, _MTL_PRIVATE_SEL(buffer));1041}10421043_MTL_INLINE MTL::MotionKeyframeData* MTL::MotionKeyframeData::data()1044{1045return Object::sendMessage<MTL::MotionKeyframeData*>(_MTL_PRIVATE_CLS(MTLMotionKeyframeData), _MTL_PRIVATE_SEL(data));1046}10471048_MTL_INLINE MTL::MotionKeyframeData* MTL::MotionKeyframeData::init()1049{1050return NS::Object::init<MTL::MotionKeyframeData>();1051}10521053_MTL_INLINE NS::UInteger MTL::MotionKeyframeData::offset() const1054{1055return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(offset));1056}10571058_MTL_INLINE void MTL::MotionKeyframeData::setBuffer(const MTL::Buffer* buffer)1059{1060Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setBuffer_), buffer);1061}10621063_MTL_INLINE void MTL::MotionKeyframeData::setOffset(NS::UInteger offset)1064{1065Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setOffset_), offset);1066}10671068_MTL_INLINE MTL::AccelerationStructureMotionTriangleGeometryDescriptor* MTL::AccelerationStructureMotionTriangleGeometryDescriptor::alloc()1069{1070return NS::Object::alloc<MTL::AccelerationStructureMotionTriangleGeometryDescriptor>(_MTL_PRIVATE_CLS(MTLAccelerationStructureMotionTriangleGeometryDescriptor));1071}10721073_MTL_INLINE MTL::AccelerationStructureMotionTriangleGeometryDescriptor* MTL::AccelerationStructureMotionTriangleGeometryDescriptor::descriptor()1074{1075return Object::sendMessage<MTL::AccelerationStructureMotionTriangleGeometryDescriptor*>(_MTL_PRIVATE_CLS(MTLAccelerationStructureMotionTriangleGeometryDescriptor), _MTL_PRIVATE_SEL(descriptor));1076}10771078_MTL_INLINE MTL::Buffer* MTL::AccelerationStructureMotionTriangleGeometryDescriptor::indexBuffer() const1079{1080return Object::sendMessage<MTL::Buffer*>(this, _MTL_PRIVATE_SEL(indexBuffer));1081}10821083_MTL_INLINE NS::UInteger MTL::AccelerationStructureMotionTriangleGeometryDescriptor::indexBufferOffset() const1084{1085return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(indexBufferOffset));1086}10871088_MTL_INLINE MTL::IndexType MTL::AccelerationStructureMotionTriangleGeometryDescriptor::indexType() const1089{1090return Object::sendMessage<MTL::IndexType>(this, _MTL_PRIVATE_SEL(indexType));1091}10921093_MTL_INLINE MTL::AccelerationStructureMotionTriangleGeometryDescriptor* MTL::AccelerationStructureMotionTriangleGeometryDescriptor::init()1094{1095return NS::Object::init<MTL::AccelerationStructureMotionTriangleGeometryDescriptor>();1096}10971098_MTL_INLINE void MTL::AccelerationStructureMotionTriangleGeometryDescriptor::setIndexBuffer(const MTL::Buffer* indexBuffer)1099{1100Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setIndexBuffer_), indexBuffer);1101}11021103_MTL_INLINE void MTL::AccelerationStructureMotionTriangleGeometryDescriptor::setIndexBufferOffset(NS::UInteger indexBufferOffset)1104{1105Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setIndexBufferOffset_), indexBufferOffset);1106}11071108_MTL_INLINE void MTL::AccelerationStructureMotionTriangleGeometryDescriptor::setIndexType(MTL::IndexType indexType)1109{1110Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setIndexType_), indexType);1111}11121113_MTL_INLINE void MTL::AccelerationStructureMotionTriangleGeometryDescriptor::setTransformationMatrixBuffer(const MTL::Buffer* transformationMatrixBuffer)1114{1115Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setTransformationMatrixBuffer_), transformationMatrixBuffer);1116}11171118_MTL_INLINE void MTL::AccelerationStructureMotionTriangleGeometryDescriptor::setTransformationMatrixBufferOffset(NS::UInteger transformationMatrixBufferOffset)1119{1120Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setTransformationMatrixBufferOffset_), transformationMatrixBufferOffset);1121}11221123_MTL_INLINE void MTL::AccelerationStructureMotionTriangleGeometryDescriptor::setTransformationMatrixLayout(MTL::MatrixLayout transformationMatrixLayout)1124{1125Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setTransformationMatrixLayout_), transformationMatrixLayout);1126}11271128_MTL_INLINE void MTL::AccelerationStructureMotionTriangleGeometryDescriptor::setTriangleCount(NS::UInteger triangleCount)1129{1130Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setTriangleCount_), triangleCount);1131}11321133_MTL_INLINE void MTL::AccelerationStructureMotionTriangleGeometryDescriptor::setVertexBuffers(const NS::Array* vertexBuffers)1134{1135Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setVertexBuffers_), vertexBuffers);1136}11371138_MTL_INLINE void MTL::AccelerationStructureMotionTriangleGeometryDescriptor::setVertexFormat(MTL::AttributeFormat vertexFormat)1139{1140Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setVertexFormat_), vertexFormat);1141}11421143_MTL_INLINE void MTL::AccelerationStructureMotionTriangleGeometryDescriptor::setVertexStride(NS::UInteger vertexStride)1144{1145Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setVertexStride_), vertexStride);1146}11471148_MTL_INLINE MTL::Buffer* MTL::AccelerationStructureMotionTriangleGeometryDescriptor::transformationMatrixBuffer() const1149{1150return Object::sendMessage<MTL::Buffer*>(this, _MTL_PRIVATE_SEL(transformationMatrixBuffer));1151}11521153_MTL_INLINE NS::UInteger MTL::AccelerationStructureMotionTriangleGeometryDescriptor::transformationMatrixBufferOffset() const1154{1155return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(transformationMatrixBufferOffset));1156}11571158_MTL_INLINE MTL::MatrixLayout MTL::AccelerationStructureMotionTriangleGeometryDescriptor::transformationMatrixLayout() const1159{1160return Object::sendMessage<MTL::MatrixLayout>(this, _MTL_PRIVATE_SEL(transformationMatrixLayout));1161}11621163_MTL_INLINE NS::UInteger MTL::AccelerationStructureMotionTriangleGeometryDescriptor::triangleCount() const1164{1165return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(triangleCount));1166}11671168_MTL_INLINE NS::Array* MTL::AccelerationStructureMotionTriangleGeometryDescriptor::vertexBuffers() const1169{1170return Object::sendMessage<NS::Array*>(this, _MTL_PRIVATE_SEL(vertexBuffers));1171}11721173_MTL_INLINE MTL::AttributeFormat MTL::AccelerationStructureMotionTriangleGeometryDescriptor::vertexFormat() const1174{1175return Object::sendMessage<MTL::AttributeFormat>(this, _MTL_PRIVATE_SEL(vertexFormat));1176}11771178_MTL_INLINE NS::UInteger MTL::AccelerationStructureMotionTriangleGeometryDescriptor::vertexStride() const1179{1180return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(vertexStride));1181}11821183_MTL_INLINE MTL::AccelerationStructureMotionBoundingBoxGeometryDescriptor* MTL::AccelerationStructureMotionBoundingBoxGeometryDescriptor::alloc()1184{1185return NS::Object::alloc<MTL::AccelerationStructureMotionBoundingBoxGeometryDescriptor>(_MTL_PRIVATE_CLS(MTLAccelerationStructureMotionBoundingBoxGeometryDescriptor));1186}11871188_MTL_INLINE NS::Array* MTL::AccelerationStructureMotionBoundingBoxGeometryDescriptor::boundingBoxBuffers() const1189{1190return Object::sendMessage<NS::Array*>(this, _MTL_PRIVATE_SEL(boundingBoxBuffers));1191}11921193_MTL_INLINE NS::UInteger MTL::AccelerationStructureMotionBoundingBoxGeometryDescriptor::boundingBoxCount() const1194{1195return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(boundingBoxCount));1196}11971198_MTL_INLINE NS::UInteger MTL::AccelerationStructureMotionBoundingBoxGeometryDescriptor::boundingBoxStride() const1199{1200return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(boundingBoxStride));1201}12021203_MTL_INLINE MTL::AccelerationStructureMotionBoundingBoxGeometryDescriptor* MTL::AccelerationStructureMotionBoundingBoxGeometryDescriptor::descriptor()1204{1205return Object::sendMessage<MTL::AccelerationStructureMotionBoundingBoxGeometryDescriptor*>(_MTL_PRIVATE_CLS(MTLAccelerationStructureMotionBoundingBoxGeometryDescriptor), _MTL_PRIVATE_SEL(descriptor));1206}12071208_MTL_INLINE MTL::AccelerationStructureMotionBoundingBoxGeometryDescriptor* MTL::AccelerationStructureMotionBoundingBoxGeometryDescriptor::init()1209{1210return NS::Object::init<MTL::AccelerationStructureMotionBoundingBoxGeometryDescriptor>();1211}12121213_MTL_INLINE void MTL::AccelerationStructureMotionBoundingBoxGeometryDescriptor::setBoundingBoxBuffers(const NS::Array* boundingBoxBuffers)1214{1215Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setBoundingBoxBuffers_), boundingBoxBuffers);1216}12171218_MTL_INLINE void MTL::AccelerationStructureMotionBoundingBoxGeometryDescriptor::setBoundingBoxCount(NS::UInteger boundingBoxCount)1219{1220Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setBoundingBoxCount_), boundingBoxCount);1221}12221223_MTL_INLINE void MTL::AccelerationStructureMotionBoundingBoxGeometryDescriptor::setBoundingBoxStride(NS::UInteger boundingBoxStride)1224{1225Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setBoundingBoxStride_), boundingBoxStride);1226}12271228_MTL_INLINE MTL::AccelerationStructureCurveGeometryDescriptor* MTL::AccelerationStructureCurveGeometryDescriptor::alloc()1229{1230return NS::Object::alloc<MTL::AccelerationStructureCurveGeometryDescriptor>(_MTL_PRIVATE_CLS(MTLAccelerationStructureCurveGeometryDescriptor));1231}12321233_MTL_INLINE MTL::Buffer* MTL::AccelerationStructureCurveGeometryDescriptor::controlPointBuffer() const1234{1235return Object::sendMessage<MTL::Buffer*>(this, _MTL_PRIVATE_SEL(controlPointBuffer));1236}12371238_MTL_INLINE NS::UInteger MTL::AccelerationStructureCurveGeometryDescriptor::controlPointBufferOffset() const1239{1240return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(controlPointBufferOffset));1241}12421243_MTL_INLINE NS::UInteger MTL::AccelerationStructureCurveGeometryDescriptor::controlPointCount() const1244{1245return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(controlPointCount));1246}12471248_MTL_INLINE MTL::AttributeFormat MTL::AccelerationStructureCurveGeometryDescriptor::controlPointFormat() const1249{1250return Object::sendMessage<MTL::AttributeFormat>(this, _MTL_PRIVATE_SEL(controlPointFormat));1251}12521253_MTL_INLINE NS::UInteger MTL::AccelerationStructureCurveGeometryDescriptor::controlPointStride() const1254{1255return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(controlPointStride));1256}12571258_MTL_INLINE MTL::CurveBasis MTL::AccelerationStructureCurveGeometryDescriptor::curveBasis() const1259{1260return Object::sendMessage<MTL::CurveBasis>(this, _MTL_PRIVATE_SEL(curveBasis));1261}12621263_MTL_INLINE MTL::CurveEndCaps MTL::AccelerationStructureCurveGeometryDescriptor::curveEndCaps() const1264{1265return Object::sendMessage<MTL::CurveEndCaps>(this, _MTL_PRIVATE_SEL(curveEndCaps));1266}12671268_MTL_INLINE MTL::CurveType MTL::AccelerationStructureCurveGeometryDescriptor::curveType() const1269{1270return Object::sendMessage<MTL::CurveType>(this, _MTL_PRIVATE_SEL(curveType));1271}12721273_MTL_INLINE MTL::AccelerationStructureCurveGeometryDescriptor* MTL::AccelerationStructureCurveGeometryDescriptor::descriptor()1274{1275return Object::sendMessage<MTL::AccelerationStructureCurveGeometryDescriptor*>(_MTL_PRIVATE_CLS(MTLAccelerationStructureCurveGeometryDescriptor), _MTL_PRIVATE_SEL(descriptor));1276}12771278_MTL_INLINE MTL::Buffer* MTL::AccelerationStructureCurveGeometryDescriptor::indexBuffer() const1279{1280return Object::sendMessage<MTL::Buffer*>(this, _MTL_PRIVATE_SEL(indexBuffer));1281}12821283_MTL_INLINE NS::UInteger MTL::AccelerationStructureCurveGeometryDescriptor::indexBufferOffset() const1284{1285return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(indexBufferOffset));1286}12871288_MTL_INLINE MTL::IndexType MTL::AccelerationStructureCurveGeometryDescriptor::indexType() const1289{1290return Object::sendMessage<MTL::IndexType>(this, _MTL_PRIVATE_SEL(indexType));1291}12921293_MTL_INLINE MTL::AccelerationStructureCurveGeometryDescriptor* MTL::AccelerationStructureCurveGeometryDescriptor::init()1294{1295return NS::Object::init<MTL::AccelerationStructureCurveGeometryDescriptor>();1296}12971298_MTL_INLINE MTL::Buffer* MTL::AccelerationStructureCurveGeometryDescriptor::radiusBuffer() const1299{1300return Object::sendMessage<MTL::Buffer*>(this, _MTL_PRIVATE_SEL(radiusBuffer));1301}13021303_MTL_INLINE NS::UInteger MTL::AccelerationStructureCurveGeometryDescriptor::radiusBufferOffset() const1304{1305return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(radiusBufferOffset));1306}13071308_MTL_INLINE MTL::AttributeFormat MTL::AccelerationStructureCurveGeometryDescriptor::radiusFormat() const1309{1310return Object::sendMessage<MTL::AttributeFormat>(this, _MTL_PRIVATE_SEL(radiusFormat));1311}13121313_MTL_INLINE NS::UInteger MTL::AccelerationStructureCurveGeometryDescriptor::radiusStride() const1314{1315return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(radiusStride));1316}13171318_MTL_INLINE NS::UInteger MTL::AccelerationStructureCurveGeometryDescriptor::segmentControlPointCount() const1319{1320return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(segmentControlPointCount));1321}13221323_MTL_INLINE NS::UInteger MTL::AccelerationStructureCurveGeometryDescriptor::segmentCount() const1324{1325return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(segmentCount));1326}13271328_MTL_INLINE void MTL::AccelerationStructureCurveGeometryDescriptor::setControlPointBuffer(const MTL::Buffer* controlPointBuffer)1329{1330Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setControlPointBuffer_), controlPointBuffer);1331}13321333_MTL_INLINE void MTL::AccelerationStructureCurveGeometryDescriptor::setControlPointBufferOffset(NS::UInteger controlPointBufferOffset)1334{1335Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setControlPointBufferOffset_), controlPointBufferOffset);1336}13371338_MTL_INLINE void MTL::AccelerationStructureCurveGeometryDescriptor::setControlPointCount(NS::UInteger controlPointCount)1339{1340Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setControlPointCount_), controlPointCount);1341}13421343_MTL_INLINE void MTL::AccelerationStructureCurveGeometryDescriptor::setControlPointFormat(MTL::AttributeFormat controlPointFormat)1344{1345Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setControlPointFormat_), controlPointFormat);1346}13471348_MTL_INLINE void MTL::AccelerationStructureCurveGeometryDescriptor::setControlPointStride(NS::UInteger controlPointStride)1349{1350Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setControlPointStride_), controlPointStride);1351}13521353_MTL_INLINE void MTL::AccelerationStructureCurveGeometryDescriptor::setCurveBasis(MTL::CurveBasis curveBasis)1354{1355Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setCurveBasis_), curveBasis);1356}13571358_MTL_INLINE void MTL::AccelerationStructureCurveGeometryDescriptor::setCurveEndCaps(MTL::CurveEndCaps curveEndCaps)1359{1360Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setCurveEndCaps_), curveEndCaps);1361}13621363_MTL_INLINE void MTL::AccelerationStructureCurveGeometryDescriptor::setCurveType(MTL::CurveType curveType)1364{1365Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setCurveType_), curveType);1366}13671368_MTL_INLINE void MTL::AccelerationStructureCurveGeometryDescriptor::setIndexBuffer(const MTL::Buffer* indexBuffer)1369{1370Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setIndexBuffer_), indexBuffer);1371}13721373_MTL_INLINE void MTL::AccelerationStructureCurveGeometryDescriptor::setIndexBufferOffset(NS::UInteger indexBufferOffset)1374{1375Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setIndexBufferOffset_), indexBufferOffset);1376}13771378_MTL_INLINE void MTL::AccelerationStructureCurveGeometryDescriptor::setIndexType(MTL::IndexType indexType)1379{1380Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setIndexType_), indexType);1381}13821383_MTL_INLINE void MTL::AccelerationStructureCurveGeometryDescriptor::setRadiusBuffer(const MTL::Buffer* radiusBuffer)1384{1385Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setRadiusBuffer_), radiusBuffer);1386}13871388_MTL_INLINE void MTL::AccelerationStructureCurveGeometryDescriptor::setRadiusBufferOffset(NS::UInteger radiusBufferOffset)1389{1390Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setRadiusBufferOffset_), radiusBufferOffset);1391}13921393_MTL_INLINE void MTL::AccelerationStructureCurveGeometryDescriptor::setRadiusFormat(MTL::AttributeFormat radiusFormat)1394{1395Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setRadiusFormat_), radiusFormat);1396}13971398_MTL_INLINE void MTL::AccelerationStructureCurveGeometryDescriptor::setRadiusStride(NS::UInteger radiusStride)1399{1400Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setRadiusStride_), radiusStride);1401}14021403_MTL_INLINE void MTL::AccelerationStructureCurveGeometryDescriptor::setSegmentControlPointCount(NS::UInteger segmentControlPointCount)1404{1405Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setSegmentControlPointCount_), segmentControlPointCount);1406}14071408_MTL_INLINE void MTL::AccelerationStructureCurveGeometryDescriptor::setSegmentCount(NS::UInteger segmentCount)1409{1410Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setSegmentCount_), segmentCount);1411}14121413_MTL_INLINE MTL::AccelerationStructureMotionCurveGeometryDescriptor* MTL::AccelerationStructureMotionCurveGeometryDescriptor::alloc()1414{1415return NS::Object::alloc<MTL::AccelerationStructureMotionCurveGeometryDescriptor>(_MTL_PRIVATE_CLS(MTLAccelerationStructureMotionCurveGeometryDescriptor));1416}14171418_MTL_INLINE NS::Array* MTL::AccelerationStructureMotionCurveGeometryDescriptor::controlPointBuffers() const1419{1420return Object::sendMessage<NS::Array*>(this, _MTL_PRIVATE_SEL(controlPointBuffers));1421}14221423_MTL_INLINE NS::UInteger MTL::AccelerationStructureMotionCurveGeometryDescriptor::controlPointCount() const1424{1425return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(controlPointCount));1426}14271428_MTL_INLINE MTL::AttributeFormat MTL::AccelerationStructureMotionCurveGeometryDescriptor::controlPointFormat() const1429{1430return Object::sendMessage<MTL::AttributeFormat>(this, _MTL_PRIVATE_SEL(controlPointFormat));1431}14321433_MTL_INLINE NS::UInteger MTL::AccelerationStructureMotionCurveGeometryDescriptor::controlPointStride() const1434{1435return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(controlPointStride));1436}14371438_MTL_INLINE MTL::CurveBasis MTL::AccelerationStructureMotionCurveGeometryDescriptor::curveBasis() const1439{1440return Object::sendMessage<MTL::CurveBasis>(this, _MTL_PRIVATE_SEL(curveBasis));1441}14421443_MTL_INLINE MTL::CurveEndCaps MTL::AccelerationStructureMotionCurveGeometryDescriptor::curveEndCaps() const1444{1445return Object::sendMessage<MTL::CurveEndCaps>(this, _MTL_PRIVATE_SEL(curveEndCaps));1446}14471448_MTL_INLINE MTL::CurveType MTL::AccelerationStructureMotionCurveGeometryDescriptor::curveType() const1449{1450return Object::sendMessage<MTL::CurveType>(this, _MTL_PRIVATE_SEL(curveType));1451}14521453_MTL_INLINE MTL::AccelerationStructureMotionCurveGeometryDescriptor* MTL::AccelerationStructureMotionCurveGeometryDescriptor::descriptor()1454{1455return Object::sendMessage<MTL::AccelerationStructureMotionCurveGeometryDescriptor*>(_MTL_PRIVATE_CLS(MTLAccelerationStructureMotionCurveGeometryDescriptor), _MTL_PRIVATE_SEL(descriptor));1456}14571458_MTL_INLINE MTL::Buffer* MTL::AccelerationStructureMotionCurveGeometryDescriptor::indexBuffer() const1459{1460return Object::sendMessage<MTL::Buffer*>(this, _MTL_PRIVATE_SEL(indexBuffer));1461}14621463_MTL_INLINE NS::UInteger MTL::AccelerationStructureMotionCurveGeometryDescriptor::indexBufferOffset() const1464{1465return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(indexBufferOffset));1466}14671468_MTL_INLINE MTL::IndexType MTL::AccelerationStructureMotionCurveGeometryDescriptor::indexType() const1469{1470return Object::sendMessage<MTL::IndexType>(this, _MTL_PRIVATE_SEL(indexType));1471}14721473_MTL_INLINE MTL::AccelerationStructureMotionCurveGeometryDescriptor* MTL::AccelerationStructureMotionCurveGeometryDescriptor::init()1474{1475return NS::Object::init<MTL::AccelerationStructureMotionCurveGeometryDescriptor>();1476}14771478_MTL_INLINE NS::Array* MTL::AccelerationStructureMotionCurveGeometryDescriptor::radiusBuffers() const1479{1480return Object::sendMessage<NS::Array*>(this, _MTL_PRIVATE_SEL(radiusBuffers));1481}14821483_MTL_INLINE MTL::AttributeFormat MTL::AccelerationStructureMotionCurveGeometryDescriptor::radiusFormat() const1484{1485return Object::sendMessage<MTL::AttributeFormat>(this, _MTL_PRIVATE_SEL(radiusFormat));1486}14871488_MTL_INLINE NS::UInteger MTL::AccelerationStructureMotionCurveGeometryDescriptor::radiusStride() const1489{1490return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(radiusStride));1491}14921493_MTL_INLINE NS::UInteger MTL::AccelerationStructureMotionCurveGeometryDescriptor::segmentControlPointCount() const1494{1495return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(segmentControlPointCount));1496}14971498_MTL_INLINE NS::UInteger MTL::AccelerationStructureMotionCurveGeometryDescriptor::segmentCount() const1499{1500return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(segmentCount));1501}15021503_MTL_INLINE void MTL::AccelerationStructureMotionCurveGeometryDescriptor::setControlPointBuffers(const NS::Array* controlPointBuffers)1504{1505Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setControlPointBuffers_), controlPointBuffers);1506}15071508_MTL_INLINE void MTL::AccelerationStructureMotionCurveGeometryDescriptor::setControlPointCount(NS::UInteger controlPointCount)1509{1510Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setControlPointCount_), controlPointCount);1511}15121513_MTL_INLINE void MTL::AccelerationStructureMotionCurveGeometryDescriptor::setControlPointFormat(MTL::AttributeFormat controlPointFormat)1514{1515Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setControlPointFormat_), controlPointFormat);1516}15171518_MTL_INLINE void MTL::AccelerationStructureMotionCurveGeometryDescriptor::setControlPointStride(NS::UInteger controlPointStride)1519{1520Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setControlPointStride_), controlPointStride);1521}15221523_MTL_INLINE void MTL::AccelerationStructureMotionCurveGeometryDescriptor::setCurveBasis(MTL::CurveBasis curveBasis)1524{1525Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setCurveBasis_), curveBasis);1526}15271528_MTL_INLINE void MTL::AccelerationStructureMotionCurveGeometryDescriptor::setCurveEndCaps(MTL::CurveEndCaps curveEndCaps)1529{1530Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setCurveEndCaps_), curveEndCaps);1531}15321533_MTL_INLINE void MTL::AccelerationStructureMotionCurveGeometryDescriptor::setCurveType(MTL::CurveType curveType)1534{1535Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setCurveType_), curveType);1536}15371538_MTL_INLINE void MTL::AccelerationStructureMotionCurveGeometryDescriptor::setIndexBuffer(const MTL::Buffer* indexBuffer)1539{1540Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setIndexBuffer_), indexBuffer);1541}15421543_MTL_INLINE void MTL::AccelerationStructureMotionCurveGeometryDescriptor::setIndexBufferOffset(NS::UInteger indexBufferOffset)1544{1545Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setIndexBufferOffset_), indexBufferOffset);1546}15471548_MTL_INLINE void MTL::AccelerationStructureMotionCurveGeometryDescriptor::setIndexType(MTL::IndexType indexType)1549{1550Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setIndexType_), indexType);1551}15521553_MTL_INLINE void MTL::AccelerationStructureMotionCurveGeometryDescriptor::setRadiusBuffers(const NS::Array* radiusBuffers)1554{1555Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setRadiusBuffers_), radiusBuffers);1556}15571558_MTL_INLINE void MTL::AccelerationStructureMotionCurveGeometryDescriptor::setRadiusFormat(MTL::AttributeFormat radiusFormat)1559{1560Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setRadiusFormat_), radiusFormat);1561}15621563_MTL_INLINE void MTL::AccelerationStructureMotionCurveGeometryDescriptor::setRadiusStride(NS::UInteger radiusStride)1564{1565Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setRadiusStride_), radiusStride);1566}15671568_MTL_INLINE void MTL::AccelerationStructureMotionCurveGeometryDescriptor::setSegmentControlPointCount(NS::UInteger segmentControlPointCount)1569{1570Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setSegmentControlPointCount_), segmentControlPointCount);1571}15721573_MTL_INLINE void MTL::AccelerationStructureMotionCurveGeometryDescriptor::setSegmentCount(NS::UInteger segmentCount)1574{1575Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setSegmentCount_), segmentCount);1576}15771578_MTL_INLINE MTL::InstanceAccelerationStructureDescriptor* MTL::InstanceAccelerationStructureDescriptor::alloc()1579{1580return NS::Object::alloc<MTL::InstanceAccelerationStructureDescriptor>(_MTL_PRIVATE_CLS(MTLInstanceAccelerationStructureDescriptor));1581}15821583_MTL_INLINE MTL::InstanceAccelerationStructureDescriptor* MTL::InstanceAccelerationStructureDescriptor::descriptor()1584{1585return Object::sendMessage<MTL::InstanceAccelerationStructureDescriptor*>(_MTL_PRIVATE_CLS(MTLInstanceAccelerationStructureDescriptor), _MTL_PRIVATE_SEL(descriptor));1586}15871588_MTL_INLINE MTL::InstanceAccelerationStructureDescriptor* MTL::InstanceAccelerationStructureDescriptor::init()1589{1590return NS::Object::init<MTL::InstanceAccelerationStructureDescriptor>();1591}15921593_MTL_INLINE NS::UInteger MTL::InstanceAccelerationStructureDescriptor::instanceCount() const1594{1595return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(instanceCount));1596}15971598_MTL_INLINE MTL::Buffer* MTL::InstanceAccelerationStructureDescriptor::instanceDescriptorBuffer() const1599{1600return Object::sendMessage<MTL::Buffer*>(this, _MTL_PRIVATE_SEL(instanceDescriptorBuffer));1601}16021603_MTL_INLINE NS::UInteger MTL::InstanceAccelerationStructureDescriptor::instanceDescriptorBufferOffset() const1604{1605return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(instanceDescriptorBufferOffset));1606}16071608_MTL_INLINE NS::UInteger MTL::InstanceAccelerationStructureDescriptor::instanceDescriptorStride() const1609{1610return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(instanceDescriptorStride));1611}16121613_MTL_INLINE MTL::AccelerationStructureInstanceDescriptorType MTL::InstanceAccelerationStructureDescriptor::instanceDescriptorType() const1614{1615return Object::sendMessage<MTL::AccelerationStructureInstanceDescriptorType>(this, _MTL_PRIVATE_SEL(instanceDescriptorType));1616}16171618_MTL_INLINE MTL::MatrixLayout MTL::InstanceAccelerationStructureDescriptor::instanceTransformationMatrixLayout() const1619{1620return Object::sendMessage<MTL::MatrixLayout>(this, _MTL_PRIVATE_SEL(instanceTransformationMatrixLayout));1621}16221623_MTL_INLINE NS::Array* MTL::InstanceAccelerationStructureDescriptor::instancedAccelerationStructures() const1624{1625return Object::sendMessage<NS::Array*>(this, _MTL_PRIVATE_SEL(instancedAccelerationStructures));1626}16271628_MTL_INLINE MTL::Buffer* MTL::InstanceAccelerationStructureDescriptor::motionTransformBuffer() const1629{1630return Object::sendMessage<MTL::Buffer*>(this, _MTL_PRIVATE_SEL(motionTransformBuffer));1631}16321633_MTL_INLINE NS::UInteger MTL::InstanceAccelerationStructureDescriptor::motionTransformBufferOffset() const1634{1635return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(motionTransformBufferOffset));1636}16371638_MTL_INLINE NS::UInteger MTL::InstanceAccelerationStructureDescriptor::motionTransformCount() const1639{1640return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(motionTransformCount));1641}16421643_MTL_INLINE NS::UInteger MTL::InstanceAccelerationStructureDescriptor::motionTransformStride() const1644{1645return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(motionTransformStride));1646}16471648_MTL_INLINE MTL::TransformType MTL::InstanceAccelerationStructureDescriptor::motionTransformType() const1649{1650return Object::sendMessage<MTL::TransformType>(this, _MTL_PRIVATE_SEL(motionTransformType));1651}16521653_MTL_INLINE void MTL::InstanceAccelerationStructureDescriptor::setInstanceCount(NS::UInteger instanceCount)1654{1655Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setInstanceCount_), instanceCount);1656}16571658_MTL_INLINE void MTL::InstanceAccelerationStructureDescriptor::setInstanceDescriptorBuffer(const MTL::Buffer* instanceDescriptorBuffer)1659{1660Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setInstanceDescriptorBuffer_), instanceDescriptorBuffer);1661}16621663_MTL_INLINE void MTL::InstanceAccelerationStructureDescriptor::setInstanceDescriptorBufferOffset(NS::UInteger instanceDescriptorBufferOffset)1664{1665Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setInstanceDescriptorBufferOffset_), instanceDescriptorBufferOffset);1666}16671668_MTL_INLINE void MTL::InstanceAccelerationStructureDescriptor::setInstanceDescriptorStride(NS::UInteger instanceDescriptorStride)1669{1670Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setInstanceDescriptorStride_), instanceDescriptorStride);1671}16721673_MTL_INLINE void MTL::InstanceAccelerationStructureDescriptor::setInstanceDescriptorType(MTL::AccelerationStructureInstanceDescriptorType instanceDescriptorType)1674{1675Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setInstanceDescriptorType_), instanceDescriptorType);1676}16771678_MTL_INLINE void MTL::InstanceAccelerationStructureDescriptor::setInstanceTransformationMatrixLayout(MTL::MatrixLayout instanceTransformationMatrixLayout)1679{1680Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setInstanceTransformationMatrixLayout_), instanceTransformationMatrixLayout);1681}16821683_MTL_INLINE void MTL::InstanceAccelerationStructureDescriptor::setInstancedAccelerationStructures(const NS::Array* instancedAccelerationStructures)1684{1685Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setInstancedAccelerationStructures_), instancedAccelerationStructures);1686}16871688_MTL_INLINE void MTL::InstanceAccelerationStructureDescriptor::setMotionTransformBuffer(const MTL::Buffer* motionTransformBuffer)1689{1690Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setMotionTransformBuffer_), motionTransformBuffer);1691}16921693_MTL_INLINE void MTL::InstanceAccelerationStructureDescriptor::setMotionTransformBufferOffset(NS::UInteger motionTransformBufferOffset)1694{1695Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setMotionTransformBufferOffset_), motionTransformBufferOffset);1696}16971698_MTL_INLINE void MTL::InstanceAccelerationStructureDescriptor::setMotionTransformCount(NS::UInteger motionTransformCount)1699{1700Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setMotionTransformCount_), motionTransformCount);1701}17021703_MTL_INLINE void MTL::InstanceAccelerationStructureDescriptor::setMotionTransformStride(NS::UInteger motionTransformStride)1704{1705Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setMotionTransformStride_), motionTransformStride);1706}17071708_MTL_INLINE void MTL::InstanceAccelerationStructureDescriptor::setMotionTransformType(MTL::TransformType motionTransformType)1709{1710Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setMotionTransformType_), motionTransformType);1711}17121713_MTL_INLINE MTL::IndirectInstanceAccelerationStructureDescriptor* MTL::IndirectInstanceAccelerationStructureDescriptor::alloc()1714{1715return NS::Object::alloc<MTL::IndirectInstanceAccelerationStructureDescriptor>(_MTL_PRIVATE_CLS(MTLIndirectInstanceAccelerationStructureDescriptor));1716}17171718_MTL_INLINE MTL::IndirectInstanceAccelerationStructureDescriptor* MTL::IndirectInstanceAccelerationStructureDescriptor::descriptor()1719{1720return Object::sendMessage<MTL::IndirectInstanceAccelerationStructureDescriptor*>(_MTL_PRIVATE_CLS(MTLIndirectInstanceAccelerationStructureDescriptor), _MTL_PRIVATE_SEL(descriptor));1721}17221723_MTL_INLINE MTL::IndirectInstanceAccelerationStructureDescriptor* MTL::IndirectInstanceAccelerationStructureDescriptor::init()1724{1725return NS::Object::init<MTL::IndirectInstanceAccelerationStructureDescriptor>();1726}17271728_MTL_INLINE MTL::Buffer* MTL::IndirectInstanceAccelerationStructureDescriptor::instanceCountBuffer() const1729{1730return Object::sendMessage<MTL::Buffer*>(this, _MTL_PRIVATE_SEL(instanceCountBuffer));1731}17321733_MTL_INLINE NS::UInteger MTL::IndirectInstanceAccelerationStructureDescriptor::instanceCountBufferOffset() const1734{1735return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(instanceCountBufferOffset));1736}17371738_MTL_INLINE MTL::Buffer* MTL::IndirectInstanceAccelerationStructureDescriptor::instanceDescriptorBuffer() const1739{1740return Object::sendMessage<MTL::Buffer*>(this, _MTL_PRIVATE_SEL(instanceDescriptorBuffer));1741}17421743_MTL_INLINE NS::UInteger MTL::IndirectInstanceAccelerationStructureDescriptor::instanceDescriptorBufferOffset() const1744{1745return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(instanceDescriptorBufferOffset));1746}17471748_MTL_INLINE NS::UInteger MTL::IndirectInstanceAccelerationStructureDescriptor::instanceDescriptorStride() const1749{1750return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(instanceDescriptorStride));1751}17521753_MTL_INLINE MTL::AccelerationStructureInstanceDescriptorType MTL::IndirectInstanceAccelerationStructureDescriptor::instanceDescriptorType() const1754{1755return Object::sendMessage<MTL::AccelerationStructureInstanceDescriptorType>(this, _MTL_PRIVATE_SEL(instanceDescriptorType));1756}17571758_MTL_INLINE MTL::MatrixLayout MTL::IndirectInstanceAccelerationStructureDescriptor::instanceTransformationMatrixLayout() const1759{1760return Object::sendMessage<MTL::MatrixLayout>(this, _MTL_PRIVATE_SEL(instanceTransformationMatrixLayout));1761}17621763_MTL_INLINE NS::UInteger MTL::IndirectInstanceAccelerationStructureDescriptor::maxInstanceCount() const1764{1765return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(maxInstanceCount));1766}17671768_MTL_INLINE NS::UInteger MTL::IndirectInstanceAccelerationStructureDescriptor::maxMotionTransformCount() const1769{1770return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(maxMotionTransformCount));1771}17721773_MTL_INLINE MTL::Buffer* MTL::IndirectInstanceAccelerationStructureDescriptor::motionTransformBuffer() const1774{1775return Object::sendMessage<MTL::Buffer*>(this, _MTL_PRIVATE_SEL(motionTransformBuffer));1776}17771778_MTL_INLINE NS::UInteger MTL::IndirectInstanceAccelerationStructureDescriptor::motionTransformBufferOffset() const1779{1780return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(motionTransformBufferOffset));1781}17821783_MTL_INLINE MTL::Buffer* MTL::IndirectInstanceAccelerationStructureDescriptor::motionTransformCountBuffer() const1784{1785return Object::sendMessage<MTL::Buffer*>(this, _MTL_PRIVATE_SEL(motionTransformCountBuffer));1786}17871788_MTL_INLINE NS::UInteger MTL::IndirectInstanceAccelerationStructureDescriptor::motionTransformCountBufferOffset() const1789{1790return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(motionTransformCountBufferOffset));1791}17921793_MTL_INLINE NS::UInteger MTL::IndirectInstanceAccelerationStructureDescriptor::motionTransformStride() const1794{1795return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(motionTransformStride));1796}17971798_MTL_INLINE MTL::TransformType MTL::IndirectInstanceAccelerationStructureDescriptor::motionTransformType() const1799{1800return Object::sendMessage<MTL::TransformType>(this, _MTL_PRIVATE_SEL(motionTransformType));1801}18021803_MTL_INLINE void MTL::IndirectInstanceAccelerationStructureDescriptor::setInstanceCountBuffer(const MTL::Buffer* instanceCountBuffer)1804{1805Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setInstanceCountBuffer_), instanceCountBuffer);1806}18071808_MTL_INLINE void MTL::IndirectInstanceAccelerationStructureDescriptor::setInstanceCountBufferOffset(NS::UInteger instanceCountBufferOffset)1809{1810Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setInstanceCountBufferOffset_), instanceCountBufferOffset);1811}18121813_MTL_INLINE void MTL::IndirectInstanceAccelerationStructureDescriptor::setInstanceDescriptorBuffer(const MTL::Buffer* instanceDescriptorBuffer)1814{1815Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setInstanceDescriptorBuffer_), instanceDescriptorBuffer);1816}18171818_MTL_INLINE void MTL::IndirectInstanceAccelerationStructureDescriptor::setInstanceDescriptorBufferOffset(NS::UInteger instanceDescriptorBufferOffset)1819{1820Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setInstanceDescriptorBufferOffset_), instanceDescriptorBufferOffset);1821}18221823_MTL_INLINE void MTL::IndirectInstanceAccelerationStructureDescriptor::setInstanceDescriptorStride(NS::UInteger instanceDescriptorStride)1824{1825Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setInstanceDescriptorStride_), instanceDescriptorStride);1826}18271828_MTL_INLINE void MTL::IndirectInstanceAccelerationStructureDescriptor::setInstanceDescriptorType(MTL::AccelerationStructureInstanceDescriptorType instanceDescriptorType)1829{1830Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setInstanceDescriptorType_), instanceDescriptorType);1831}18321833_MTL_INLINE void MTL::IndirectInstanceAccelerationStructureDescriptor::setInstanceTransformationMatrixLayout(MTL::MatrixLayout instanceTransformationMatrixLayout)1834{1835Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setInstanceTransformationMatrixLayout_), instanceTransformationMatrixLayout);1836}18371838_MTL_INLINE void MTL::IndirectInstanceAccelerationStructureDescriptor::setMaxInstanceCount(NS::UInteger maxInstanceCount)1839{1840Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setMaxInstanceCount_), maxInstanceCount);1841}18421843_MTL_INLINE void MTL::IndirectInstanceAccelerationStructureDescriptor::setMaxMotionTransformCount(NS::UInteger maxMotionTransformCount)1844{1845Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setMaxMotionTransformCount_), maxMotionTransformCount);1846}18471848_MTL_INLINE void MTL::IndirectInstanceAccelerationStructureDescriptor::setMotionTransformBuffer(const MTL::Buffer* motionTransformBuffer)1849{1850Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setMotionTransformBuffer_), motionTransformBuffer);1851}18521853_MTL_INLINE void MTL::IndirectInstanceAccelerationStructureDescriptor::setMotionTransformBufferOffset(NS::UInteger motionTransformBufferOffset)1854{1855Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setMotionTransformBufferOffset_), motionTransformBufferOffset);1856}18571858_MTL_INLINE void MTL::IndirectInstanceAccelerationStructureDescriptor::setMotionTransformCountBuffer(const MTL::Buffer* motionTransformCountBuffer)1859{1860Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setMotionTransformCountBuffer_), motionTransformCountBuffer);1861}18621863_MTL_INLINE void MTL::IndirectInstanceAccelerationStructureDescriptor::setMotionTransformCountBufferOffset(NS::UInteger motionTransformCountBufferOffset)1864{1865Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setMotionTransformCountBufferOffset_), motionTransformCountBufferOffset);1866}18671868_MTL_INLINE void MTL::IndirectInstanceAccelerationStructureDescriptor::setMotionTransformStride(NS::UInteger motionTransformStride)1869{1870Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setMotionTransformStride_), motionTransformStride);1871}18721873_MTL_INLINE void MTL::IndirectInstanceAccelerationStructureDescriptor::setMotionTransformType(MTL::TransformType motionTransformType)1874{1875Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setMotionTransformType_), motionTransformType);1876}18771878_MTL_INLINE MTL::ResourceID MTL::AccelerationStructure::gpuResourceID() const1879{1880return Object::sendMessage<MTL::ResourceID>(this, _MTL_PRIVATE_SEL(gpuResourceID));1881}18821883_MTL_INLINE NS::UInteger MTL::AccelerationStructure::size() const1884{1885return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(size));1886}188718881889