spb/forge Public MIT
Forge — LLM training from scratch in pure C++20 + Metal on Apple Silicon.
C++ 61.2%
C 23%
Python 7.6%
TeX 7.2%
CMake 1.1%
1//-------------------------------------------------------------------------------------------------------------------------------------------------------------2//3// Metal/MTLAccelerationStructure.hpp4//5// Copyright 2020-2025 Apple Inc.6//7// Licensed under the Apache License, Version 2.0 (the "License");8// you may not use this file except in compliance with the License.9// You may obtain a copy of the License at10//11// http://www.apache.org/licenses/LICENSE-2.012//13// Unless required by applicable law or agreed to in writing, software14// distributed under the License is distributed on an "AS IS" BASIS,15// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.16// See the License for the specific language governing permissions and17// limitations under the License.18//19//-------------------------------------------------------------------------------------------------------------------------------------------------------------2021#pragma once2223#include "../Foundation/Foundation.hpp"24#include "MTLAccelerationStructureTypes.hpp"25#include "MTLArgument.hpp"26#include "MTLDefines.hpp"27#include "MTLHeaderBridge.hpp"28#include "MTLPrivate.hpp"29#include "MTLResource.hpp"30#include "MTLStageInputOutputDescriptor.hpp"31#include "MTLTypes.hpp"32#include <cstdint>3334namespace MTL35{36class AccelerationStructureBoundingBoxGeometryDescriptor;37class AccelerationStructureCurveGeometryDescriptor;38class AccelerationStructureDescriptor;39class AccelerationStructureGeometryDescriptor;40class AccelerationStructureMotionBoundingBoxGeometryDescriptor;41class AccelerationStructureMotionCurveGeometryDescriptor;42class AccelerationStructureMotionTriangleGeometryDescriptor;43class AccelerationStructureTriangleGeometryDescriptor;44class Buffer;45class IndirectInstanceAccelerationStructureDescriptor;46class InstanceAccelerationStructureDescriptor;47class MotionKeyframeData;48class PrimitiveAccelerationStructureDescriptor;49}5051namespace MTL52{53_MTL_ENUM(NS::Integer, MatrixLayout) {54 MatrixLayoutColumnMajor = 0,55 MatrixLayoutRowMajor = 1,56};5758_MTL_ENUM(uint32_t, MotionBorderMode) {59 MotionBorderModeClamp = 0,60 MotionBorderModeVanish = 1,61};6263_MTL_ENUM(NS::Integer, CurveType) {64 CurveTypeRound = 0,65 CurveTypeFlat = 1,66};6768_MTL_ENUM(NS::Integer, CurveBasis) {69 CurveBasisBSpline = 0,70 CurveBasisCatmullRom = 1,71 CurveBasisLinear = 2,72 CurveBasisBezier = 3,73};7475_MTL_ENUM(NS::Integer, CurveEndCaps) {76 CurveEndCapsNone = 0,77 CurveEndCapsDisk = 1,78 CurveEndCapsSphere = 2,79};8081_MTL_ENUM(NS::UInteger, AccelerationStructureInstanceDescriptorType) {82 AccelerationStructureInstanceDescriptorTypeDefault = 0,83 AccelerationStructureInstanceDescriptorTypeUserID = 1,84 AccelerationStructureInstanceDescriptorTypeMotion = 2,85 AccelerationStructureInstanceDescriptorTypeIndirect = 3,86 AccelerationStructureInstanceDescriptorTypeIndirectMotion = 4,87};8889_MTL_ENUM(NS::Integer, TransformType) {90 TransformTypePackedFloat4x3 = 0,91 TransformTypeComponent = 1,92};9394_MTL_OPTIONS(NS::UInteger, AccelerationStructureRefitOptions) {95 AccelerationStructureRefitOptionVertexData = 1,96 AccelerationStructureRefitOptionPerPrimitiveData = 1 << 1,97};9899_MTL_OPTIONS(NS::UInteger, AccelerationStructureUsage) {100 AccelerationStructureUsageNone = 0,101 AccelerationStructureUsageRefit = 1,102 AccelerationStructureUsagePreferFastBuild = 1 << 1,103 AccelerationStructureUsageExtendedLimits = 1 << 2,104 AccelerationStructureUsagePreferFastIntersection = 1 << 4,105 AccelerationStructureUsageMinimizeMemory = 1 << 5,106};107108_MTL_OPTIONS(uint32_t, AccelerationStructureInstanceOptions) {109 AccelerationStructureInstanceOptionNone = 0,110 AccelerationStructureInstanceOptionDisableTriangleCulling = 1,111 AccelerationStructureInstanceOptionTriangleFrontFacingWindingCounterClockwise = 1 << 1,112 AccelerationStructureInstanceOptionOpaque = 1 << 2,113 AccelerationStructureInstanceOptionNonOpaque = 1 << 3,114};115116struct AccelerationStructureInstanceDescriptor117{118 MTL::PackedFloat4x3 transformationMatrix;119 MTL::AccelerationStructureInstanceOptions options;120 uint32_t mask;121 uint32_t intersectionFunctionTableOffset;122 uint32_t accelerationStructureIndex;123} _MTL_PACKED;124125struct AccelerationStructureUserIDInstanceDescriptor126{127 MTL::PackedFloat4x3 transformationMatrix;128 MTL::AccelerationStructureInstanceOptions options;129 uint32_t mask;130 uint32_t intersectionFunctionTableOffset;131 uint32_t accelerationStructureIndex;132 uint32_t userID;133} _MTL_PACKED;134135struct AccelerationStructureMotionInstanceDescriptor136{137 MTL::AccelerationStructureInstanceOptions options;138 uint32_t mask;139 uint32_t intersectionFunctionTableOffset;140 uint32_t accelerationStructureIndex;141 uint32_t userID;142 uint32_t motionTransformsStartIndex;143 uint32_t motionTransformsCount;144 MTL::MotionBorderMode motionStartBorderMode;145 MTL::MotionBorderMode motionEndBorderMode;146 float motionStartTime;147 float motionEndTime;148} _MTL_PACKED;149150struct IndirectAccelerationStructureInstanceDescriptor151{152 MTL::PackedFloat4x3 transformationMatrix;153 MTL::AccelerationStructureInstanceOptions options;154 uint32_t mask;155 uint32_t intersectionFunctionTableOffset;156 uint32_t userID;157 MTL::ResourceID accelerationStructureID;158} _MTL_PACKED;159160struct IndirectAccelerationStructureMotionInstanceDescriptor161{162 MTL::AccelerationStructureInstanceOptions options;163 uint32_t mask;164 uint32_t intersectionFunctionTableOffset;165 uint32_t userID;166 MTL::ResourceID accelerationStructureID;167 uint32_t motionTransformsStartIndex;168 uint32_t motionTransformsCount;169 MTL::MotionBorderMode motionStartBorderMode;170 MTL::MotionBorderMode motionEndBorderMode;171 float motionStartTime;172 float motionEndTime;173} _MTL_PACKED;174175class AccelerationStructureDescriptor : public NS::Copying<AccelerationStructureDescriptor>176{177public:178 static AccelerationStructureDescriptor* alloc();179180 AccelerationStructureDescriptor* init();181182 void setUsage(MTL::AccelerationStructureUsage usage);183 AccelerationStructureUsage usage() const;184};185class AccelerationStructureGeometryDescriptor : public NS::Copying<AccelerationStructureGeometryDescriptor>186{187public:188 static AccelerationStructureGeometryDescriptor* alloc();189190 bool allowDuplicateIntersectionFunctionInvocation() const;191192 AccelerationStructureGeometryDescriptor* init();193194 NS::UInteger intersectionFunctionTableOffset() const;195196 NS::String* label() const;197198 bool opaque() const;199200 Buffer* primitiveDataBuffer() const;201 NS::UInteger primitiveDataBufferOffset() const;202203 NS::UInteger primitiveDataElementSize() const;204205 NS::UInteger primitiveDataStride() const;206207 void setAllowDuplicateIntersectionFunctionInvocation(bool allowDuplicateIntersectionFunctionInvocation);208209 void setIntersectionFunctionTableOffset(NS::UInteger intersectionFunctionTableOffset);210211 void setLabel(const NS::String* label);212213 void setOpaque(bool opaque);214215 void setPrimitiveDataBuffer(const MTL::Buffer* primitiveDataBuffer);216 void setPrimitiveDataBufferOffset(NS::UInteger primitiveDataBufferOffset);217218 void setPrimitiveDataElementSize(NS::UInteger primitiveDataElementSize);219220 void setPrimitiveDataStride(NS::UInteger primitiveDataStride);221};222class PrimitiveAccelerationStructureDescriptor : public NS::Copying<PrimitiveAccelerationStructureDescriptor, AccelerationStructureDescriptor>223{224public:225 static PrimitiveAccelerationStructureDescriptor* alloc();226227 static PrimitiveAccelerationStructureDescriptor* descriptor();228 NS::Array* geometryDescriptors() const;229230 PrimitiveAccelerationStructureDescriptor* init();231232 MotionBorderMode motionEndBorderMode() const;233234 float motionEndTime() const;235236 NS::UInteger motionKeyframeCount() const;237238 MotionBorderMode motionStartBorderMode() const;239240 float motionStartTime() const;241242 void setGeometryDescriptors(const NS::Array* geometryDescriptors);243244 void setMotionEndBorderMode(MTL::MotionBorderMode motionEndBorderMode);245246 void setMotionEndTime(float motionEndTime);247248 void setMotionKeyframeCount(NS::UInteger motionKeyframeCount);249250 void setMotionStartBorderMode(MTL::MotionBorderMode motionStartBorderMode);251252 void setMotionStartTime(float motionStartTime);253};254class AccelerationStructureTriangleGeometryDescriptor : public NS::Copying<AccelerationStructureTriangleGeometryDescriptor, AccelerationStructureGeometryDescriptor>255{256public:257 static AccelerationStructureTriangleGeometryDescriptor* alloc();258259 static AccelerationStructureTriangleGeometryDescriptor* descriptor();260261 Buffer* indexBuffer() const;262 NS::UInteger indexBufferOffset() const;263264 IndexType indexType() const;265266 AccelerationStructureTriangleGeometryDescriptor* init();267268 void setIndexBuffer(const MTL::Buffer* indexBuffer);269 void setIndexBufferOffset(NS::UInteger indexBufferOffset);270271 void setIndexType(MTL::IndexType indexType);272273 void setTransformationMatrixBuffer(const MTL::Buffer* transformationMatrixBuffer);274 void setTransformationMatrixBufferOffset(NS::UInteger transformationMatrixBufferOffset);275276 void setTransformationMatrixLayout(MTL::MatrixLayout transformationMatrixLayout);277278 void setTriangleCount(NS::UInteger triangleCount);279280 void setVertexBuffer(const MTL::Buffer* vertexBuffer);281 void setVertexBufferOffset(NS::UInteger vertexBufferOffset);282283 void setVertexFormat(MTL::AttributeFormat vertexFormat);284285 void setVertexStride(NS::UInteger vertexStride);286287 Buffer* transformationMatrixBuffer() const;288 NS::UInteger transformationMatrixBufferOffset() const;289290 MatrixLayout transformationMatrixLayout() const;291292 NS::UInteger triangleCount() const;293294 Buffer* vertexBuffer() const;295 NS::UInteger vertexBufferOffset() const;296297 AttributeFormat vertexFormat() const;298299 NS::UInteger vertexStride() const;300};301class AccelerationStructureBoundingBoxGeometryDescriptor : public NS::Copying<AccelerationStructureBoundingBoxGeometryDescriptor, AccelerationStructureGeometryDescriptor>302{303public:304 static AccelerationStructureBoundingBoxGeometryDescriptor* alloc();305306 Buffer* boundingBoxBuffer() const;307 NS::UInteger boundingBoxBufferOffset() const;308309 NS::UInteger boundingBoxCount() const;310311 NS::UInteger boundingBoxStride() const;312313 static AccelerationStructureBoundingBoxGeometryDescriptor* descriptor();314315 AccelerationStructureBoundingBoxGeometryDescriptor* init();316317 void setBoundingBoxBuffer(const MTL::Buffer* boundingBoxBuffer);318 void setBoundingBoxBufferOffset(NS::UInteger boundingBoxBufferOffset);319320 void setBoundingBoxCount(NS::UInteger boundingBoxCount);321322 void setBoundingBoxStride(NS::UInteger boundingBoxStride);323};324class MotionKeyframeData : public NS::Referencing<MotionKeyframeData>325{326public:327 static MotionKeyframeData* alloc();328329 Buffer* buffer() const;330331 static MotionKeyframeData* data();332333 MotionKeyframeData* init();334335 NS::UInteger offset() const;336337 void setBuffer(const MTL::Buffer* buffer);338339 void setOffset(NS::UInteger offset);340};341class AccelerationStructureMotionTriangleGeometryDescriptor : public NS::Copying<AccelerationStructureMotionTriangleGeometryDescriptor, AccelerationStructureGeometryDescriptor>342{343public:344 static AccelerationStructureMotionTriangleGeometryDescriptor* alloc();345346 static AccelerationStructureMotionTriangleGeometryDescriptor* descriptor();347348 Buffer* indexBuffer() const;349 NS::UInteger indexBufferOffset() const;350351 IndexType indexType() const;352353 AccelerationStructureMotionTriangleGeometryDescriptor* init();354355 void setIndexBuffer(const MTL::Buffer* indexBuffer);356 void setIndexBufferOffset(NS::UInteger indexBufferOffset);357358 void setIndexType(MTL::IndexType indexType);359360 void setTransformationMatrixBuffer(const MTL::Buffer* transformationMatrixBuffer);361 void setTransformationMatrixBufferOffset(NS::UInteger transformationMatrixBufferOffset);362363 void setTransformationMatrixLayout(MTL::MatrixLayout transformationMatrixLayout);364365 void setTriangleCount(NS::UInteger triangleCount);366367 void setVertexBuffers(const NS::Array* vertexBuffers);368369 void setVertexFormat(MTL::AttributeFormat vertexFormat);370371 void setVertexStride(NS::UInteger vertexStride);372373 Buffer* transformationMatrixBuffer() const;374 NS::UInteger transformationMatrixBufferOffset() const;375376 MatrixLayout transformationMatrixLayout() const;377378 NS::UInteger triangleCount() const;379380 NS::Array* vertexBuffers() const;381382 AttributeFormat vertexFormat() const;383384 NS::UInteger vertexStride() const;385};386class AccelerationStructureMotionBoundingBoxGeometryDescriptor : public NS::Copying<AccelerationStructureMotionBoundingBoxGeometryDescriptor, AccelerationStructureGeometryDescriptor>387{388public:389 static AccelerationStructureMotionBoundingBoxGeometryDescriptor* alloc();390391 NS::Array* boundingBoxBuffers() const;392393 NS::UInteger boundingBoxCount() const;394395 NS::UInteger boundingBoxStride() const;396397 static AccelerationStructureMotionBoundingBoxGeometryDescriptor* descriptor();398399 AccelerationStructureMotionBoundingBoxGeometryDescriptor* init();400401 void setBoundingBoxBuffers(const NS::Array* boundingBoxBuffers);402403 void setBoundingBoxCount(NS::UInteger boundingBoxCount);404405 void setBoundingBoxStride(NS::UInteger boundingBoxStride);406};407class AccelerationStructureCurveGeometryDescriptor : public NS::Copying<AccelerationStructureCurveGeometryDescriptor, AccelerationStructureGeometryDescriptor>408{409public:410 static AccelerationStructureCurveGeometryDescriptor* alloc();411412 Buffer* controlPointBuffer() const;413 NS::UInteger controlPointBufferOffset() const;414415 NS::UInteger controlPointCount() const;416417 AttributeFormat controlPointFormat() const;418419 NS::UInteger controlPointStride() const;420421 CurveBasis curveBasis() const;422423 CurveEndCaps curveEndCaps() const;424425 CurveType curveType() const;426427 static AccelerationStructureCurveGeometryDescriptor* descriptor();428429 Buffer* indexBuffer() const;430 NS::UInteger indexBufferOffset() const;431432 IndexType indexType() const;433434 AccelerationStructureCurveGeometryDescriptor* init();435436 Buffer* radiusBuffer() const;437 NS::UInteger radiusBufferOffset() const;438439 AttributeFormat radiusFormat() const;440441 NS::UInteger radiusStride() const;442443 NS::UInteger segmentControlPointCount() const;444445 NS::UInteger segmentCount() const;446447 void setControlPointBuffer(const MTL::Buffer* controlPointBuffer);448 void setControlPointBufferOffset(NS::UInteger controlPointBufferOffset);449450 void setControlPointCount(NS::UInteger controlPointCount);451452 void setControlPointFormat(MTL::AttributeFormat controlPointFormat);453454 void setControlPointStride(NS::UInteger controlPointStride);455456 void setCurveBasis(MTL::CurveBasis curveBasis);457458 void setCurveEndCaps(MTL::CurveEndCaps curveEndCaps);459460 void setCurveType(MTL::CurveType curveType);461462 void setIndexBuffer(const MTL::Buffer* indexBuffer);463 void setIndexBufferOffset(NS::UInteger indexBufferOffset);464465 void setIndexType(MTL::IndexType indexType);466467 void setRadiusBuffer(const MTL::Buffer* radiusBuffer);468 void setRadiusBufferOffset(NS::UInteger radiusBufferOffset);469470 void setRadiusFormat(MTL::AttributeFormat radiusFormat);471472 void setRadiusStride(NS::UInteger radiusStride);473474 void setSegmentControlPointCount(NS::UInteger segmentControlPointCount);475476 void setSegmentCount(NS::UInteger segmentCount);477};478class AccelerationStructureMotionCurveGeometryDescriptor : public NS::Copying<AccelerationStructureMotionCurveGeometryDescriptor, AccelerationStructureGeometryDescriptor>479{480public:481 static AccelerationStructureMotionCurveGeometryDescriptor* alloc();482483 NS::Array* controlPointBuffers() const;484485 NS::UInteger controlPointCount() const;486487 AttributeFormat controlPointFormat() const;488489 NS::UInteger controlPointStride() const;490491 CurveBasis curveBasis() const;492493 CurveEndCaps curveEndCaps() const;494495 CurveType curveType() const;496497 static AccelerationStructureMotionCurveGeometryDescriptor* descriptor();498499 Buffer* indexBuffer() const;500 NS::UInteger indexBufferOffset() const;501502 IndexType indexType() const;503504 AccelerationStructureMotionCurveGeometryDescriptor* init();505506 NS::Array* radiusBuffers() const;507508 AttributeFormat radiusFormat() const;509510 NS::UInteger radiusStride() const;511512 NS::UInteger segmentControlPointCount() const;513514 NS::UInteger segmentCount() const;515516 void setControlPointBuffers(const NS::Array* controlPointBuffers);517518 void setControlPointCount(NS::UInteger controlPointCount);519520 void setControlPointFormat(MTL::AttributeFormat controlPointFormat);521522 void setControlPointStride(NS::UInteger controlPointStride);523524 void setCurveBasis(MTL::CurveBasis curveBasis);525526 void setCurveEndCaps(MTL::CurveEndCaps curveEndCaps);527528 void setCurveType(MTL::CurveType curveType);529530 void setIndexBuffer(const MTL::Buffer* indexBuffer);531 void setIndexBufferOffset(NS::UInteger indexBufferOffset);532533 void setIndexType(MTL::IndexType indexType);534535 void setRadiusBuffers(const NS::Array* radiusBuffers);536537 void setRadiusFormat(MTL::AttributeFormat radiusFormat);538539 void setRadiusStride(NS::UInteger radiusStride);540541 void setSegmentControlPointCount(NS::UInteger segmentControlPointCount);542543 void setSegmentCount(NS::UInteger segmentCount);544};545class InstanceAccelerationStructureDescriptor : public NS::Copying<InstanceAccelerationStructureDescriptor, AccelerationStructureDescriptor>546{547public:548 static InstanceAccelerationStructureDescriptor* alloc();549550 static InstanceAccelerationStructureDescriptor* descriptor();551552 InstanceAccelerationStructureDescriptor* init();553554 NS::UInteger instanceCount() const;555556 Buffer* instanceDescriptorBuffer() const;557 NS::UInteger instanceDescriptorBufferOffset() const;558559 NS::UInteger instanceDescriptorStride() const;560561 AccelerationStructureInstanceDescriptorType instanceDescriptorType() const;562563 MatrixLayout instanceTransformationMatrixLayout() const;564565 NS::Array* instancedAccelerationStructures() const;566567 Buffer* motionTransformBuffer() const;568 NS::UInteger motionTransformBufferOffset() const;569570 NS::UInteger motionTransformCount() const;571572 NS::UInteger motionTransformStride() const;573574 TransformType motionTransformType() const;575576 void setInstanceCount(NS::UInteger instanceCount);577578 void setInstanceDescriptorBuffer(const MTL::Buffer* instanceDescriptorBuffer);579 void setInstanceDescriptorBufferOffset(NS::UInteger instanceDescriptorBufferOffset);580581 void setInstanceDescriptorStride(NS::UInteger instanceDescriptorStride);582583 void setInstanceDescriptorType(MTL::AccelerationStructureInstanceDescriptorType instanceDescriptorType);584585 void setInstanceTransformationMatrixLayout(MTL::MatrixLayout instanceTransformationMatrixLayout);586587 void setInstancedAccelerationStructures(const NS::Array* instancedAccelerationStructures);588589 void setMotionTransformBuffer(const MTL::Buffer* motionTransformBuffer);590 void setMotionTransformBufferOffset(NS::UInteger motionTransformBufferOffset);591592 void setMotionTransformCount(NS::UInteger motionTransformCount);593594 void setMotionTransformStride(NS::UInteger motionTransformStride);595596 void setMotionTransformType(MTL::TransformType motionTransformType);597};598class IndirectInstanceAccelerationStructureDescriptor : public NS::Copying<IndirectInstanceAccelerationStructureDescriptor, AccelerationStructureDescriptor>599{600public:601 static IndirectInstanceAccelerationStructureDescriptor* alloc();602603 static IndirectInstanceAccelerationStructureDescriptor* descriptor();604605 IndirectInstanceAccelerationStructureDescriptor* init();606607 Buffer* instanceCountBuffer() const;608 NS::UInteger instanceCountBufferOffset() const;609610 Buffer* instanceDescriptorBuffer() const;611 NS::UInteger instanceDescriptorBufferOffset() const;612613 NS::UInteger instanceDescriptorStride() const;614615 AccelerationStructureInstanceDescriptorType instanceDescriptorType() const;616617 MatrixLayout instanceTransformationMatrixLayout() const;618619 NS::UInteger maxInstanceCount() const;620621 NS::UInteger maxMotionTransformCount() const;622623 Buffer* motionTransformBuffer() const;624 NS::UInteger motionTransformBufferOffset() const;625626 Buffer* motionTransformCountBuffer() const;627 NS::UInteger motionTransformCountBufferOffset() const;628629 NS::UInteger motionTransformStride() const;630631 TransformType motionTransformType() const;632633 void setInstanceCountBuffer(const MTL::Buffer* instanceCountBuffer);634 void setInstanceCountBufferOffset(NS::UInteger instanceCountBufferOffset);635636 void setInstanceDescriptorBuffer(const MTL::Buffer* instanceDescriptorBuffer);637 void setInstanceDescriptorBufferOffset(NS::UInteger instanceDescriptorBufferOffset);638639 void setInstanceDescriptorStride(NS::UInteger instanceDescriptorStride);640641 void setInstanceDescriptorType(MTL::AccelerationStructureInstanceDescriptorType instanceDescriptorType);642643 void setInstanceTransformationMatrixLayout(MTL::MatrixLayout instanceTransformationMatrixLayout);644645 void setMaxInstanceCount(NS::UInteger maxInstanceCount);646647 void setMaxMotionTransformCount(NS::UInteger maxMotionTransformCount);648649 void setMotionTransformBuffer(const MTL::Buffer* motionTransformBuffer);650 void setMotionTransformBufferOffset(NS::UInteger motionTransformBufferOffset);651652 void setMotionTransformCountBuffer(const MTL::Buffer* motionTransformCountBuffer);653 void setMotionTransformCountBufferOffset(NS::UInteger motionTransformCountBufferOffset);654655 void setMotionTransformStride(NS::UInteger motionTransformStride);656657 void setMotionTransformType(MTL::TransformType motionTransformType);658};659class AccelerationStructure : public NS::Referencing<AccelerationStructure, Resource>660{661public:662 ResourceID gpuResourceID() const;663664 NS::UInteger size() const;665};666667}668669_MTL_INLINE MTL::AccelerationStructureDescriptor* MTL::AccelerationStructureDescriptor::alloc()670{671 return NS::Object::alloc<MTL::AccelerationStructureDescriptor>(_MTL_PRIVATE_CLS(MTLAccelerationStructureDescriptor));672}673674_MTL_INLINE MTL::AccelerationStructureDescriptor* MTL::AccelerationStructureDescriptor::init()675{676 return NS::Object::init<MTL::AccelerationStructureDescriptor>();677}678679_MTL_INLINE void MTL::AccelerationStructureDescriptor::setUsage(MTL::AccelerationStructureUsage usage)680{681 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setUsage_), usage);682}683684_MTL_INLINE MTL::AccelerationStructureUsage MTL::AccelerationStructureDescriptor::usage() const685{686 return Object::sendMessage<MTL::AccelerationStructureUsage>(this, _MTL_PRIVATE_SEL(usage));687}688689_MTL_INLINE MTL::AccelerationStructureGeometryDescriptor* MTL::AccelerationStructureGeometryDescriptor::alloc()690{691 return NS::Object::alloc<MTL::AccelerationStructureGeometryDescriptor>(_MTL_PRIVATE_CLS(MTLAccelerationStructureGeometryDescriptor));692}693694_MTL_INLINE bool MTL::AccelerationStructureGeometryDescriptor::allowDuplicateIntersectionFunctionInvocation() const695{696 return Object::sendMessage<bool>(this, _MTL_PRIVATE_SEL(allowDuplicateIntersectionFunctionInvocation));697}698699_MTL_INLINE MTL::AccelerationStructureGeometryDescriptor* MTL::AccelerationStructureGeometryDescriptor::init()700{701 return NS::Object::init<MTL::AccelerationStructureGeometryDescriptor>();702}703704_MTL_INLINE NS::UInteger MTL::AccelerationStructureGeometryDescriptor::intersectionFunctionTableOffset() const705{706 return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(intersectionFunctionTableOffset));707}708709_MTL_INLINE NS::String* MTL::AccelerationStructureGeometryDescriptor::label() const710{711 return Object::sendMessage<NS::String*>(this, _MTL_PRIVATE_SEL(label));712}713714_MTL_INLINE bool MTL::AccelerationStructureGeometryDescriptor::opaque() const715{716 return Object::sendMessage<bool>(this, _MTL_PRIVATE_SEL(opaque));717}718719_MTL_INLINE MTL::Buffer* MTL::AccelerationStructureGeometryDescriptor::primitiveDataBuffer() const720{721 return Object::sendMessage<MTL::Buffer*>(this, _MTL_PRIVATE_SEL(primitiveDataBuffer));722}723724_MTL_INLINE NS::UInteger MTL::AccelerationStructureGeometryDescriptor::primitiveDataBufferOffset() const725{726 return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(primitiveDataBufferOffset));727}728729_MTL_INLINE NS::UInteger MTL::AccelerationStructureGeometryDescriptor::primitiveDataElementSize() const730{731 return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(primitiveDataElementSize));732}733734_MTL_INLINE NS::UInteger MTL::AccelerationStructureGeometryDescriptor::primitiveDataStride() const735{736 return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(primitiveDataStride));737}738739_MTL_INLINE void MTL::AccelerationStructureGeometryDescriptor::setAllowDuplicateIntersectionFunctionInvocation(bool allowDuplicateIntersectionFunctionInvocation)740{741 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setAllowDuplicateIntersectionFunctionInvocation_), allowDuplicateIntersectionFunctionInvocation);742}743744_MTL_INLINE void MTL::AccelerationStructureGeometryDescriptor::setIntersectionFunctionTableOffset(NS::UInteger intersectionFunctionTableOffset)745{746 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setIntersectionFunctionTableOffset_), intersectionFunctionTableOffset);747}748749_MTL_INLINE void MTL::AccelerationStructureGeometryDescriptor::setLabel(const NS::String* label)750{751 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setLabel_), label);752}753754_MTL_INLINE void MTL::AccelerationStructureGeometryDescriptor::setOpaque(bool opaque)755{756 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setOpaque_), opaque);757}758759_MTL_INLINE void MTL::AccelerationStructureGeometryDescriptor::setPrimitiveDataBuffer(const MTL::Buffer* primitiveDataBuffer)760{761 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setPrimitiveDataBuffer_), primitiveDataBuffer);762}763764_MTL_INLINE void MTL::AccelerationStructureGeometryDescriptor::setPrimitiveDataBufferOffset(NS::UInteger primitiveDataBufferOffset)765{766 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setPrimitiveDataBufferOffset_), primitiveDataBufferOffset);767}768769_MTL_INLINE void MTL::AccelerationStructureGeometryDescriptor::setPrimitiveDataElementSize(NS::UInteger primitiveDataElementSize)770{771 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setPrimitiveDataElementSize_), primitiveDataElementSize);772}773774_MTL_INLINE void MTL::AccelerationStructureGeometryDescriptor::setPrimitiveDataStride(NS::UInteger primitiveDataStride)775{776 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setPrimitiveDataStride_), primitiveDataStride);777}778779_MTL_INLINE MTL::PrimitiveAccelerationStructureDescriptor* MTL::PrimitiveAccelerationStructureDescriptor::alloc()780{781 return NS::Object::alloc<MTL::PrimitiveAccelerationStructureDescriptor>(_MTL_PRIVATE_CLS(MTLPrimitiveAccelerationStructureDescriptor));782}783784_MTL_INLINE MTL::PrimitiveAccelerationStructureDescriptor* MTL::PrimitiveAccelerationStructureDescriptor::descriptor()785{786 return Object::sendMessage<MTL::PrimitiveAccelerationStructureDescriptor*>(_MTL_PRIVATE_CLS(MTLPrimitiveAccelerationStructureDescriptor), _MTL_PRIVATE_SEL(descriptor));787}788789_MTL_INLINE NS::Array* MTL::PrimitiveAccelerationStructureDescriptor::geometryDescriptors() const790{791 return Object::sendMessage<NS::Array*>(this, _MTL_PRIVATE_SEL(geometryDescriptors));792}793794_MTL_INLINE MTL::PrimitiveAccelerationStructureDescriptor* MTL::PrimitiveAccelerationStructureDescriptor::init()795{796 return NS::Object::init<MTL::PrimitiveAccelerationStructureDescriptor>();797}798799_MTL_INLINE MTL::MotionBorderMode MTL::PrimitiveAccelerationStructureDescriptor::motionEndBorderMode() const800{801 return Object::sendMessage<MTL::MotionBorderMode>(this, _MTL_PRIVATE_SEL(motionEndBorderMode));802}803804_MTL_INLINE float MTL::PrimitiveAccelerationStructureDescriptor::motionEndTime() const805{806 return Object::sendMessage<float>(this, _MTL_PRIVATE_SEL(motionEndTime));807}808809_MTL_INLINE NS::UInteger MTL::PrimitiveAccelerationStructureDescriptor::motionKeyframeCount() const810{811 return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(motionKeyframeCount));812}813814_MTL_INLINE MTL::MotionBorderMode MTL::PrimitiveAccelerationStructureDescriptor::motionStartBorderMode() const815{816 return Object::sendMessage<MTL::MotionBorderMode>(this, _MTL_PRIVATE_SEL(motionStartBorderMode));817}818819_MTL_INLINE float MTL::PrimitiveAccelerationStructureDescriptor::motionStartTime() const820{821 return Object::sendMessage<float>(this, _MTL_PRIVATE_SEL(motionStartTime));822}823824_MTL_INLINE void MTL::PrimitiveAccelerationStructureDescriptor::setGeometryDescriptors(const NS::Array* geometryDescriptors)825{826 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setGeometryDescriptors_), geometryDescriptors);827}828829_MTL_INLINE void MTL::PrimitiveAccelerationStructureDescriptor::setMotionEndBorderMode(MTL::MotionBorderMode motionEndBorderMode)830{831 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setMotionEndBorderMode_), motionEndBorderMode);832}833834_MTL_INLINE void MTL::PrimitiveAccelerationStructureDescriptor::setMotionEndTime(float motionEndTime)835{836 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setMotionEndTime_), motionEndTime);837}838839_MTL_INLINE void MTL::PrimitiveAccelerationStructureDescriptor::setMotionKeyframeCount(NS::UInteger motionKeyframeCount)840{841 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setMotionKeyframeCount_), motionKeyframeCount);842}843844_MTL_INLINE void MTL::PrimitiveAccelerationStructureDescriptor::setMotionStartBorderMode(MTL::MotionBorderMode motionStartBorderMode)845{846 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setMotionStartBorderMode_), motionStartBorderMode);847}848849_MTL_INLINE void MTL::PrimitiveAccelerationStructureDescriptor::setMotionStartTime(float motionStartTime)850{851 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setMotionStartTime_), motionStartTime);852}853854_MTL_INLINE MTL::AccelerationStructureTriangleGeometryDescriptor* MTL::AccelerationStructureTriangleGeometryDescriptor::alloc()855{856 return NS::Object::alloc<MTL::AccelerationStructureTriangleGeometryDescriptor>(_MTL_PRIVATE_CLS(MTLAccelerationStructureTriangleGeometryDescriptor));857}858859_MTL_INLINE MTL::AccelerationStructureTriangleGeometryDescriptor* MTL::AccelerationStructureTriangleGeometryDescriptor::descriptor()860{861 return Object::sendMessage<MTL::AccelerationStructureTriangleGeometryDescriptor*>(_MTL_PRIVATE_CLS(MTLAccelerationStructureTriangleGeometryDescriptor), _MTL_PRIVATE_SEL(descriptor));862}863864_MTL_INLINE MTL::Buffer* MTL::AccelerationStructureTriangleGeometryDescriptor::indexBuffer() const865{866 return Object::sendMessage<MTL::Buffer*>(this, _MTL_PRIVATE_SEL(indexBuffer));867}868869_MTL_INLINE NS::UInteger MTL::AccelerationStructureTriangleGeometryDescriptor::indexBufferOffset() const870{871 return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(indexBufferOffset));872}873874_MTL_INLINE MTL::IndexType MTL::AccelerationStructureTriangleGeometryDescriptor::indexType() const875{876 return Object::sendMessage<MTL::IndexType>(this, _MTL_PRIVATE_SEL(indexType));877}878879_MTL_INLINE MTL::AccelerationStructureTriangleGeometryDescriptor* MTL::AccelerationStructureTriangleGeometryDescriptor::init()880{881 return NS::Object::init<MTL::AccelerationStructureTriangleGeometryDescriptor>();882}883884_MTL_INLINE void MTL::AccelerationStructureTriangleGeometryDescriptor::setIndexBuffer(const MTL::Buffer* indexBuffer)885{886 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setIndexBuffer_), indexBuffer);887}888889_MTL_INLINE void MTL::AccelerationStructureTriangleGeometryDescriptor::setIndexBufferOffset(NS::UInteger indexBufferOffset)890{891 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setIndexBufferOffset_), indexBufferOffset);892}893894_MTL_INLINE void MTL::AccelerationStructureTriangleGeometryDescriptor::setIndexType(MTL::IndexType indexType)895{896 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setIndexType_), indexType);897}898899_MTL_INLINE void MTL::AccelerationStructureTriangleGeometryDescriptor::setTransformationMatrixBuffer(const MTL::Buffer* transformationMatrixBuffer)900{901 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setTransformationMatrixBuffer_), transformationMatrixBuffer);902}903904_MTL_INLINE void MTL::AccelerationStructureTriangleGeometryDescriptor::setTransformationMatrixBufferOffset(NS::UInteger transformationMatrixBufferOffset)905{906 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setTransformationMatrixBufferOffset_), transformationMatrixBufferOffset);907}908909_MTL_INLINE void MTL::AccelerationStructureTriangleGeometryDescriptor::setTransformationMatrixLayout(MTL::MatrixLayout transformationMatrixLayout)910{911 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setTransformationMatrixLayout_), transformationMatrixLayout);912}913914_MTL_INLINE void MTL::AccelerationStructureTriangleGeometryDescriptor::setTriangleCount(NS::UInteger triangleCount)915{916 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setTriangleCount_), triangleCount);917}918919_MTL_INLINE void MTL::AccelerationStructureTriangleGeometryDescriptor::setVertexBuffer(const MTL::Buffer* vertexBuffer)920{921 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setVertexBuffer_), vertexBuffer);922}923924_MTL_INLINE void MTL::AccelerationStructureTriangleGeometryDescriptor::setVertexBufferOffset(NS::UInteger vertexBufferOffset)925{926 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setVertexBufferOffset_), vertexBufferOffset);927}928929_MTL_INLINE void MTL::AccelerationStructureTriangleGeometryDescriptor::setVertexFormat(MTL::AttributeFormat vertexFormat)930{931 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setVertexFormat_), vertexFormat);932}933934_MTL_INLINE void MTL::AccelerationStructureTriangleGeometryDescriptor::setVertexStride(NS::UInteger vertexStride)935{936 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setVertexStride_), vertexStride);937}938939_MTL_INLINE MTL::Buffer* MTL::AccelerationStructureTriangleGeometryDescriptor::transformationMatrixBuffer() const940{941 return Object::sendMessage<MTL::Buffer*>(this, _MTL_PRIVATE_SEL(transformationMatrixBuffer));942}943944_MTL_INLINE NS::UInteger MTL::AccelerationStructureTriangleGeometryDescriptor::transformationMatrixBufferOffset() const945{946 return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(transformationMatrixBufferOffset));947}948949_MTL_INLINE MTL::MatrixLayout MTL::AccelerationStructureTriangleGeometryDescriptor::transformationMatrixLayout() const950{951 return Object::sendMessage<MTL::MatrixLayout>(this, _MTL_PRIVATE_SEL(transformationMatrixLayout));952}953954_MTL_INLINE NS::UInteger MTL::AccelerationStructureTriangleGeometryDescriptor::triangleCount() const955{956 return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(triangleCount));957}958959_MTL_INLINE MTL::Buffer* MTL::AccelerationStructureTriangleGeometryDescriptor::vertexBuffer() const960{961 return Object::sendMessage<MTL::Buffer*>(this, _MTL_PRIVATE_SEL(vertexBuffer));962}963964_MTL_INLINE NS::UInteger MTL::AccelerationStructureTriangleGeometryDescriptor::vertexBufferOffset() const965{966 return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(vertexBufferOffset));967}968969_MTL_INLINE MTL::AttributeFormat MTL::AccelerationStructureTriangleGeometryDescriptor::vertexFormat() const970{971 return Object::sendMessage<MTL::AttributeFormat>(this, _MTL_PRIVATE_SEL(vertexFormat));972}973974_MTL_INLINE NS::UInteger MTL::AccelerationStructureTriangleGeometryDescriptor::vertexStride() const975{976 return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(vertexStride));977}978979_MTL_INLINE MTL::AccelerationStructureBoundingBoxGeometryDescriptor* MTL::AccelerationStructureBoundingBoxGeometryDescriptor::alloc()980{981 return NS::Object::alloc<MTL::AccelerationStructureBoundingBoxGeometryDescriptor>(_MTL_PRIVATE_CLS(MTLAccelerationStructureBoundingBoxGeometryDescriptor));982}983984_MTL_INLINE MTL::Buffer* MTL::AccelerationStructureBoundingBoxGeometryDescriptor::boundingBoxBuffer() const985{986 return Object::sendMessage<MTL::Buffer*>(this, _MTL_PRIVATE_SEL(boundingBoxBuffer));987}988989_MTL_INLINE NS::UInteger MTL::AccelerationStructureBoundingBoxGeometryDescriptor::boundingBoxBufferOffset() const990{991 return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(boundingBoxBufferOffset));992}993994_MTL_INLINE NS::UInteger MTL::AccelerationStructureBoundingBoxGeometryDescriptor::boundingBoxCount() const995{996 return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(boundingBoxCount));997}998999_MTL_INLINE NS::UInteger MTL::AccelerationStructureBoundingBoxGeometryDescriptor::boundingBoxStride() const1000{1001 return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(boundingBoxStride));1002}10031004_MTL_INLINE MTL::AccelerationStructureBoundingBoxGeometryDescriptor* MTL::AccelerationStructureBoundingBoxGeometryDescriptor::descriptor()1005{1006 return Object::sendMessage<MTL::AccelerationStructureBoundingBoxGeometryDescriptor*>(_MTL_PRIVATE_CLS(MTLAccelerationStructureBoundingBoxGeometryDescriptor), _MTL_PRIVATE_SEL(descriptor));1007}10081009_MTL_INLINE MTL::AccelerationStructureBoundingBoxGeometryDescriptor* MTL::AccelerationStructureBoundingBoxGeometryDescriptor::init()1010{1011 return NS::Object::init<MTL::AccelerationStructureBoundingBoxGeometryDescriptor>();1012}10131014_MTL_INLINE void MTL::AccelerationStructureBoundingBoxGeometryDescriptor::setBoundingBoxBuffer(const MTL::Buffer* boundingBoxBuffer)1015{1016 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setBoundingBoxBuffer_), boundingBoxBuffer);1017}10181019_MTL_INLINE void MTL::AccelerationStructureBoundingBoxGeometryDescriptor::setBoundingBoxBufferOffset(NS::UInteger boundingBoxBufferOffset)1020{1021 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setBoundingBoxBufferOffset_), boundingBoxBufferOffset);1022}10231024_MTL_INLINE void MTL::AccelerationStructureBoundingBoxGeometryDescriptor::setBoundingBoxCount(NS::UInteger boundingBoxCount)1025{1026 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setBoundingBoxCount_), boundingBoxCount);1027}10281029_MTL_INLINE void MTL::AccelerationStructureBoundingBoxGeometryDescriptor::setBoundingBoxStride(NS::UInteger boundingBoxStride)1030{1031 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setBoundingBoxStride_), boundingBoxStride);1032}10331034_MTL_INLINE MTL::MotionKeyframeData* MTL::MotionKeyframeData::alloc()1035{1036 return NS::Object::alloc<MTL::MotionKeyframeData>(_MTL_PRIVATE_CLS(MTLMotionKeyframeData));1037}10381039_MTL_INLINE MTL::Buffer* MTL::MotionKeyframeData::buffer() const1040{1041 return Object::sendMessage<MTL::Buffer*>(this, _MTL_PRIVATE_SEL(buffer));1042}10431044_MTL_INLINE MTL::MotionKeyframeData* MTL::MotionKeyframeData::data()1045{1046 return Object::sendMessage<MTL::MotionKeyframeData*>(_MTL_PRIVATE_CLS(MTLMotionKeyframeData), _MTL_PRIVATE_SEL(data));1047}10481049_MTL_INLINE MTL::MotionKeyframeData* MTL::MotionKeyframeData::init()1050{1051 return NS::Object::init<MTL::MotionKeyframeData>();1052}10531054_MTL_INLINE NS::UInteger MTL::MotionKeyframeData::offset() const1055{1056 return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(offset));1057}10581059_MTL_INLINE void MTL::MotionKeyframeData::setBuffer(const MTL::Buffer* buffer)1060{1061 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setBuffer_), buffer);1062}10631064_MTL_INLINE void MTL::MotionKeyframeData::setOffset(NS::UInteger offset)1065{1066 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setOffset_), offset);1067}10681069_MTL_INLINE MTL::AccelerationStructureMotionTriangleGeometryDescriptor* MTL::AccelerationStructureMotionTriangleGeometryDescriptor::alloc()1070{1071 return NS::Object::alloc<MTL::AccelerationStructureMotionTriangleGeometryDescriptor>(_MTL_PRIVATE_CLS(MTLAccelerationStructureMotionTriangleGeometryDescriptor));1072}10731074_MTL_INLINE MTL::AccelerationStructureMotionTriangleGeometryDescriptor* MTL::AccelerationStructureMotionTriangleGeometryDescriptor::descriptor()1075{1076 return Object::sendMessage<MTL::AccelerationStructureMotionTriangleGeometryDescriptor*>(_MTL_PRIVATE_CLS(MTLAccelerationStructureMotionTriangleGeometryDescriptor), _MTL_PRIVATE_SEL(descriptor));1077}10781079_MTL_INLINE MTL::Buffer* MTL::AccelerationStructureMotionTriangleGeometryDescriptor::indexBuffer() const1080{1081 return Object::sendMessage<MTL::Buffer*>(this, _MTL_PRIVATE_SEL(indexBuffer));1082}10831084_MTL_INLINE NS::UInteger MTL::AccelerationStructureMotionTriangleGeometryDescriptor::indexBufferOffset() const1085{1086 return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(indexBufferOffset));1087}10881089_MTL_INLINE MTL::IndexType MTL::AccelerationStructureMotionTriangleGeometryDescriptor::indexType() const1090{1091 return Object::sendMessage<MTL::IndexType>(this, _MTL_PRIVATE_SEL(indexType));1092}10931094_MTL_INLINE MTL::AccelerationStructureMotionTriangleGeometryDescriptor* MTL::AccelerationStructureMotionTriangleGeometryDescriptor::init()1095{1096 return NS::Object::init<MTL::AccelerationStructureMotionTriangleGeometryDescriptor>();1097}10981099_MTL_INLINE void MTL::AccelerationStructureMotionTriangleGeometryDescriptor::setIndexBuffer(const MTL::Buffer* indexBuffer)1100{1101 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setIndexBuffer_), indexBuffer);1102}11031104_MTL_INLINE void MTL::AccelerationStructureMotionTriangleGeometryDescriptor::setIndexBufferOffset(NS::UInteger indexBufferOffset)1105{1106 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setIndexBufferOffset_), indexBufferOffset);1107}11081109_MTL_INLINE void MTL::AccelerationStructureMotionTriangleGeometryDescriptor::setIndexType(MTL::IndexType indexType)1110{1111 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setIndexType_), indexType);1112}11131114_MTL_INLINE void MTL::AccelerationStructureMotionTriangleGeometryDescriptor::setTransformationMatrixBuffer(const MTL::Buffer* transformationMatrixBuffer)1115{1116 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setTransformationMatrixBuffer_), transformationMatrixBuffer);1117}11181119_MTL_INLINE void MTL::AccelerationStructureMotionTriangleGeometryDescriptor::setTransformationMatrixBufferOffset(NS::UInteger transformationMatrixBufferOffset)1120{1121 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setTransformationMatrixBufferOffset_), transformationMatrixBufferOffset);1122}11231124_MTL_INLINE void MTL::AccelerationStructureMotionTriangleGeometryDescriptor::setTransformationMatrixLayout(MTL::MatrixLayout transformationMatrixLayout)1125{1126 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setTransformationMatrixLayout_), transformationMatrixLayout);1127}11281129_MTL_INLINE void MTL::AccelerationStructureMotionTriangleGeometryDescriptor::setTriangleCount(NS::UInteger triangleCount)1130{1131 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setTriangleCount_), triangleCount);1132}11331134_MTL_INLINE void MTL::AccelerationStructureMotionTriangleGeometryDescriptor::setVertexBuffers(const NS::Array* vertexBuffers)1135{1136 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setVertexBuffers_), vertexBuffers);1137}11381139_MTL_INLINE void MTL::AccelerationStructureMotionTriangleGeometryDescriptor::setVertexFormat(MTL::AttributeFormat vertexFormat)1140{1141 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setVertexFormat_), vertexFormat);1142}11431144_MTL_INLINE void MTL::AccelerationStructureMotionTriangleGeometryDescriptor::setVertexStride(NS::UInteger vertexStride)1145{1146 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setVertexStride_), vertexStride);1147}11481149_MTL_INLINE MTL::Buffer* MTL::AccelerationStructureMotionTriangleGeometryDescriptor::transformationMatrixBuffer() const1150{1151 return Object::sendMessage<MTL::Buffer*>(this, _MTL_PRIVATE_SEL(transformationMatrixBuffer));1152}11531154_MTL_INLINE NS::UInteger MTL::AccelerationStructureMotionTriangleGeometryDescriptor::transformationMatrixBufferOffset() const1155{1156 return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(transformationMatrixBufferOffset));1157}11581159_MTL_INLINE MTL::MatrixLayout MTL::AccelerationStructureMotionTriangleGeometryDescriptor::transformationMatrixLayout() const1160{1161 return Object::sendMessage<MTL::MatrixLayout>(this, _MTL_PRIVATE_SEL(transformationMatrixLayout));1162}11631164_MTL_INLINE NS::UInteger MTL::AccelerationStructureMotionTriangleGeometryDescriptor::triangleCount() const1165{1166 return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(triangleCount));1167}11681169_MTL_INLINE NS::Array* MTL::AccelerationStructureMotionTriangleGeometryDescriptor::vertexBuffers() const1170{1171 return Object::sendMessage<NS::Array*>(this, _MTL_PRIVATE_SEL(vertexBuffers));1172}11731174_MTL_INLINE MTL::AttributeFormat MTL::AccelerationStructureMotionTriangleGeometryDescriptor::vertexFormat() const1175{1176 return Object::sendMessage<MTL::AttributeFormat>(this, _MTL_PRIVATE_SEL(vertexFormat));1177}11781179_MTL_INLINE NS::UInteger MTL::AccelerationStructureMotionTriangleGeometryDescriptor::vertexStride() const1180{1181 return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(vertexStride));1182}11831184_MTL_INLINE MTL::AccelerationStructureMotionBoundingBoxGeometryDescriptor* MTL::AccelerationStructureMotionBoundingBoxGeometryDescriptor::alloc()1185{1186 return NS::Object::alloc<MTL::AccelerationStructureMotionBoundingBoxGeometryDescriptor>(_MTL_PRIVATE_CLS(MTLAccelerationStructureMotionBoundingBoxGeometryDescriptor));1187}11881189_MTL_INLINE NS::Array* MTL::AccelerationStructureMotionBoundingBoxGeometryDescriptor::boundingBoxBuffers() const1190{1191 return Object::sendMessage<NS::Array*>(this, _MTL_PRIVATE_SEL(boundingBoxBuffers));1192}11931194_MTL_INLINE NS::UInteger MTL::AccelerationStructureMotionBoundingBoxGeometryDescriptor::boundingBoxCount() const1195{1196 return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(boundingBoxCount));1197}11981199_MTL_INLINE NS::UInteger MTL::AccelerationStructureMotionBoundingBoxGeometryDescriptor::boundingBoxStride() const1200{1201 return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(boundingBoxStride));1202}12031204_MTL_INLINE MTL::AccelerationStructureMotionBoundingBoxGeometryDescriptor* MTL::AccelerationStructureMotionBoundingBoxGeometryDescriptor::descriptor()1205{1206 return Object::sendMessage<MTL::AccelerationStructureMotionBoundingBoxGeometryDescriptor*>(_MTL_PRIVATE_CLS(MTLAccelerationStructureMotionBoundingBoxGeometryDescriptor), _MTL_PRIVATE_SEL(descriptor));1207}12081209_MTL_INLINE MTL::AccelerationStructureMotionBoundingBoxGeometryDescriptor* MTL::AccelerationStructureMotionBoundingBoxGeometryDescriptor::init()1210{1211 return NS::Object::init<MTL::AccelerationStructureMotionBoundingBoxGeometryDescriptor>();1212}12131214_MTL_INLINE void MTL::AccelerationStructureMotionBoundingBoxGeometryDescriptor::setBoundingBoxBuffers(const NS::Array* boundingBoxBuffers)1215{1216 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setBoundingBoxBuffers_), boundingBoxBuffers);1217}12181219_MTL_INLINE void MTL::AccelerationStructureMotionBoundingBoxGeometryDescriptor::setBoundingBoxCount(NS::UInteger boundingBoxCount)1220{1221 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setBoundingBoxCount_), boundingBoxCount);1222}12231224_MTL_INLINE void MTL::AccelerationStructureMotionBoundingBoxGeometryDescriptor::setBoundingBoxStride(NS::UInteger boundingBoxStride)1225{1226 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setBoundingBoxStride_), boundingBoxStride);1227}12281229_MTL_INLINE MTL::AccelerationStructureCurveGeometryDescriptor* MTL::AccelerationStructureCurveGeometryDescriptor::alloc()1230{1231 return NS::Object::alloc<MTL::AccelerationStructureCurveGeometryDescriptor>(_MTL_PRIVATE_CLS(MTLAccelerationStructureCurveGeometryDescriptor));1232}12331234_MTL_INLINE MTL::Buffer* MTL::AccelerationStructureCurveGeometryDescriptor::controlPointBuffer() const1235{1236 return Object::sendMessage<MTL::Buffer*>(this, _MTL_PRIVATE_SEL(controlPointBuffer));1237}12381239_MTL_INLINE NS::UInteger MTL::AccelerationStructureCurveGeometryDescriptor::controlPointBufferOffset() const1240{1241 return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(controlPointBufferOffset));1242}12431244_MTL_INLINE NS::UInteger MTL::AccelerationStructureCurveGeometryDescriptor::controlPointCount() const1245{1246 return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(controlPointCount));1247}12481249_MTL_INLINE MTL::AttributeFormat MTL::AccelerationStructureCurveGeometryDescriptor::controlPointFormat() const1250{1251 return Object::sendMessage<MTL::AttributeFormat>(this, _MTL_PRIVATE_SEL(controlPointFormat));1252}12531254_MTL_INLINE NS::UInteger MTL::AccelerationStructureCurveGeometryDescriptor::controlPointStride() const1255{1256 return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(controlPointStride));1257}12581259_MTL_INLINE MTL::CurveBasis MTL::AccelerationStructureCurveGeometryDescriptor::curveBasis() const1260{1261 return Object::sendMessage<MTL::CurveBasis>(this, _MTL_PRIVATE_SEL(curveBasis));1262}12631264_MTL_INLINE MTL::CurveEndCaps MTL::AccelerationStructureCurveGeometryDescriptor::curveEndCaps() const1265{1266 return Object::sendMessage<MTL::CurveEndCaps>(this, _MTL_PRIVATE_SEL(curveEndCaps));1267}12681269_MTL_INLINE MTL::CurveType MTL::AccelerationStructureCurveGeometryDescriptor::curveType() const1270{1271 return Object::sendMessage<MTL::CurveType>(this, _MTL_PRIVATE_SEL(curveType));1272}12731274_MTL_INLINE MTL::AccelerationStructureCurveGeometryDescriptor* MTL::AccelerationStructureCurveGeometryDescriptor::descriptor()1275{1276 return Object::sendMessage<MTL::AccelerationStructureCurveGeometryDescriptor*>(_MTL_PRIVATE_CLS(MTLAccelerationStructureCurveGeometryDescriptor), _MTL_PRIVATE_SEL(descriptor));1277}12781279_MTL_INLINE MTL::Buffer* MTL::AccelerationStructureCurveGeometryDescriptor::indexBuffer() const1280{1281 return Object::sendMessage<MTL::Buffer*>(this, _MTL_PRIVATE_SEL(indexBuffer));1282}12831284_MTL_INLINE NS::UInteger MTL::AccelerationStructureCurveGeometryDescriptor::indexBufferOffset() const1285{1286 return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(indexBufferOffset));1287}12881289_MTL_INLINE MTL::IndexType MTL::AccelerationStructureCurveGeometryDescriptor::indexType() const1290{1291 return Object::sendMessage<MTL::IndexType>(this, _MTL_PRIVATE_SEL(indexType));1292}12931294_MTL_INLINE MTL::AccelerationStructureCurveGeometryDescriptor* MTL::AccelerationStructureCurveGeometryDescriptor::init()1295{1296 return NS::Object::init<MTL::AccelerationStructureCurveGeometryDescriptor>();1297}12981299_MTL_INLINE MTL::Buffer* MTL::AccelerationStructureCurveGeometryDescriptor::radiusBuffer() const1300{1301 return Object::sendMessage<MTL::Buffer*>(this, _MTL_PRIVATE_SEL(radiusBuffer));1302}13031304_MTL_INLINE NS::UInteger MTL::AccelerationStructureCurveGeometryDescriptor::radiusBufferOffset() const1305{1306 return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(radiusBufferOffset));1307}13081309_MTL_INLINE MTL::AttributeFormat MTL::AccelerationStructureCurveGeometryDescriptor::radiusFormat() const1310{1311 return Object::sendMessage<MTL::AttributeFormat>(this, _MTL_PRIVATE_SEL(radiusFormat));1312}13131314_MTL_INLINE NS::UInteger MTL::AccelerationStructureCurveGeometryDescriptor::radiusStride() const1315{1316 return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(radiusStride));1317}13181319_MTL_INLINE NS::UInteger MTL::AccelerationStructureCurveGeometryDescriptor::segmentControlPointCount() const1320{1321 return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(segmentControlPointCount));1322}13231324_MTL_INLINE NS::UInteger MTL::AccelerationStructureCurveGeometryDescriptor::segmentCount() const1325{1326 return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(segmentCount));1327}13281329_MTL_INLINE void MTL::AccelerationStructureCurveGeometryDescriptor::setControlPointBuffer(const MTL::Buffer* controlPointBuffer)1330{1331 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setControlPointBuffer_), controlPointBuffer);1332}13331334_MTL_INLINE void MTL::AccelerationStructureCurveGeometryDescriptor::setControlPointBufferOffset(NS::UInteger controlPointBufferOffset)1335{1336 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setControlPointBufferOffset_), controlPointBufferOffset);1337}13381339_MTL_INLINE void MTL::AccelerationStructureCurveGeometryDescriptor::setControlPointCount(NS::UInteger controlPointCount)1340{1341 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setControlPointCount_), controlPointCount);1342}13431344_MTL_INLINE void MTL::AccelerationStructureCurveGeometryDescriptor::setControlPointFormat(MTL::AttributeFormat controlPointFormat)1345{1346 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setControlPointFormat_), controlPointFormat);1347}13481349_MTL_INLINE void MTL::AccelerationStructureCurveGeometryDescriptor::setControlPointStride(NS::UInteger controlPointStride)1350{1351 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setControlPointStride_), controlPointStride);1352}13531354_MTL_INLINE void MTL::AccelerationStructureCurveGeometryDescriptor::setCurveBasis(MTL::CurveBasis curveBasis)1355{1356 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setCurveBasis_), curveBasis);1357}13581359_MTL_INLINE void MTL::AccelerationStructureCurveGeometryDescriptor::setCurveEndCaps(MTL::CurveEndCaps curveEndCaps)1360{1361 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setCurveEndCaps_), curveEndCaps);1362}13631364_MTL_INLINE void MTL::AccelerationStructureCurveGeometryDescriptor::setCurveType(MTL::CurveType curveType)1365{1366 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setCurveType_), curveType);1367}13681369_MTL_INLINE void MTL::AccelerationStructureCurveGeometryDescriptor::setIndexBuffer(const MTL::Buffer* indexBuffer)1370{1371 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setIndexBuffer_), indexBuffer);1372}13731374_MTL_INLINE void MTL::AccelerationStructureCurveGeometryDescriptor::setIndexBufferOffset(NS::UInteger indexBufferOffset)1375{1376 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setIndexBufferOffset_), indexBufferOffset);1377}13781379_MTL_INLINE void MTL::AccelerationStructureCurveGeometryDescriptor::setIndexType(MTL::IndexType indexType)1380{1381 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setIndexType_), indexType);1382}13831384_MTL_INLINE void MTL::AccelerationStructureCurveGeometryDescriptor::setRadiusBuffer(const MTL::Buffer* radiusBuffer)1385{1386 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setRadiusBuffer_), radiusBuffer);1387}13881389_MTL_INLINE void MTL::AccelerationStructureCurveGeometryDescriptor::setRadiusBufferOffset(NS::UInteger radiusBufferOffset)1390{1391 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setRadiusBufferOffset_), radiusBufferOffset);1392}13931394_MTL_INLINE void MTL::AccelerationStructureCurveGeometryDescriptor::setRadiusFormat(MTL::AttributeFormat radiusFormat)1395{1396 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setRadiusFormat_), radiusFormat);1397}13981399_MTL_INLINE void MTL::AccelerationStructureCurveGeometryDescriptor::setRadiusStride(NS::UInteger radiusStride)1400{1401 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setRadiusStride_), radiusStride);1402}14031404_MTL_INLINE void MTL::AccelerationStructureCurveGeometryDescriptor::setSegmentControlPointCount(NS::UInteger segmentControlPointCount)1405{1406 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setSegmentControlPointCount_), segmentControlPointCount);1407}14081409_MTL_INLINE void MTL::AccelerationStructureCurveGeometryDescriptor::setSegmentCount(NS::UInteger segmentCount)1410{1411 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setSegmentCount_), segmentCount);1412}14131414_MTL_INLINE MTL::AccelerationStructureMotionCurveGeometryDescriptor* MTL::AccelerationStructureMotionCurveGeometryDescriptor::alloc()1415{1416 return NS::Object::alloc<MTL::AccelerationStructureMotionCurveGeometryDescriptor>(_MTL_PRIVATE_CLS(MTLAccelerationStructureMotionCurveGeometryDescriptor));1417}14181419_MTL_INLINE NS::Array* MTL::AccelerationStructureMotionCurveGeometryDescriptor::controlPointBuffers() const1420{1421 return Object::sendMessage<NS::Array*>(this, _MTL_PRIVATE_SEL(controlPointBuffers));1422}14231424_MTL_INLINE NS::UInteger MTL::AccelerationStructureMotionCurveGeometryDescriptor::controlPointCount() const1425{1426 return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(controlPointCount));1427}14281429_MTL_INLINE MTL::AttributeFormat MTL::AccelerationStructureMotionCurveGeometryDescriptor::controlPointFormat() const1430{1431 return Object::sendMessage<MTL::AttributeFormat>(this, _MTL_PRIVATE_SEL(controlPointFormat));1432}14331434_MTL_INLINE NS::UInteger MTL::AccelerationStructureMotionCurveGeometryDescriptor::controlPointStride() const1435{1436 return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(controlPointStride));1437}14381439_MTL_INLINE MTL::CurveBasis MTL::AccelerationStructureMotionCurveGeometryDescriptor::curveBasis() const1440{1441 return Object::sendMessage<MTL::CurveBasis>(this, _MTL_PRIVATE_SEL(curveBasis));1442}14431444_MTL_INLINE MTL::CurveEndCaps MTL::AccelerationStructureMotionCurveGeometryDescriptor::curveEndCaps() const1445{1446 return Object::sendMessage<MTL::CurveEndCaps>(this, _MTL_PRIVATE_SEL(curveEndCaps));1447}14481449_MTL_INLINE MTL::CurveType MTL::AccelerationStructureMotionCurveGeometryDescriptor::curveType() const1450{1451 return Object::sendMessage<MTL::CurveType>(this, _MTL_PRIVATE_SEL(curveType));1452}14531454_MTL_INLINE MTL::AccelerationStructureMotionCurveGeometryDescriptor* MTL::AccelerationStructureMotionCurveGeometryDescriptor::descriptor()1455{1456 return Object::sendMessage<MTL::AccelerationStructureMotionCurveGeometryDescriptor*>(_MTL_PRIVATE_CLS(MTLAccelerationStructureMotionCurveGeometryDescriptor), _MTL_PRIVATE_SEL(descriptor));1457}14581459_MTL_INLINE MTL::Buffer* MTL::AccelerationStructureMotionCurveGeometryDescriptor::indexBuffer() const1460{1461 return Object::sendMessage<MTL::Buffer*>(this, _MTL_PRIVATE_SEL(indexBuffer));1462}14631464_MTL_INLINE NS::UInteger MTL::AccelerationStructureMotionCurveGeometryDescriptor::indexBufferOffset() const1465{1466 return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(indexBufferOffset));1467}14681469_MTL_INLINE MTL::IndexType MTL::AccelerationStructureMotionCurveGeometryDescriptor::indexType() const1470{1471 return Object::sendMessage<MTL::IndexType>(this, _MTL_PRIVATE_SEL(indexType));1472}14731474_MTL_INLINE MTL::AccelerationStructureMotionCurveGeometryDescriptor* MTL::AccelerationStructureMotionCurveGeometryDescriptor::init()1475{1476 return NS::Object::init<MTL::AccelerationStructureMotionCurveGeometryDescriptor>();1477}14781479_MTL_INLINE NS::Array* MTL::AccelerationStructureMotionCurveGeometryDescriptor::radiusBuffers() const1480{1481 return Object::sendMessage<NS::Array*>(this, _MTL_PRIVATE_SEL(radiusBuffers));1482}14831484_MTL_INLINE MTL::AttributeFormat MTL::AccelerationStructureMotionCurveGeometryDescriptor::radiusFormat() const1485{1486 return Object::sendMessage<MTL::AttributeFormat>(this, _MTL_PRIVATE_SEL(radiusFormat));1487}14881489_MTL_INLINE NS::UInteger MTL::AccelerationStructureMotionCurveGeometryDescriptor::radiusStride() const1490{1491 return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(radiusStride));1492}14931494_MTL_INLINE NS::UInteger MTL::AccelerationStructureMotionCurveGeometryDescriptor::segmentControlPointCount() const1495{1496 return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(segmentControlPointCount));1497}14981499_MTL_INLINE NS::UInteger MTL::AccelerationStructureMotionCurveGeometryDescriptor::segmentCount() const1500{1501 return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(segmentCount));1502}15031504_MTL_INLINE void MTL::AccelerationStructureMotionCurveGeometryDescriptor::setControlPointBuffers(const NS::Array* controlPointBuffers)1505{1506 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setControlPointBuffers_), controlPointBuffers);1507}15081509_MTL_INLINE void MTL::AccelerationStructureMotionCurveGeometryDescriptor::setControlPointCount(NS::UInteger controlPointCount)1510{1511 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setControlPointCount_), controlPointCount);1512}15131514_MTL_INLINE void MTL::AccelerationStructureMotionCurveGeometryDescriptor::setControlPointFormat(MTL::AttributeFormat controlPointFormat)1515{1516 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setControlPointFormat_), controlPointFormat);1517}15181519_MTL_INLINE void MTL::AccelerationStructureMotionCurveGeometryDescriptor::setControlPointStride(NS::UInteger controlPointStride)1520{1521 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setControlPointStride_), controlPointStride);1522}15231524_MTL_INLINE void MTL::AccelerationStructureMotionCurveGeometryDescriptor::setCurveBasis(MTL::CurveBasis curveBasis)1525{1526 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setCurveBasis_), curveBasis);1527}15281529_MTL_INLINE void MTL::AccelerationStructureMotionCurveGeometryDescriptor::setCurveEndCaps(MTL::CurveEndCaps curveEndCaps)1530{1531 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setCurveEndCaps_), curveEndCaps);1532}15331534_MTL_INLINE void MTL::AccelerationStructureMotionCurveGeometryDescriptor::setCurveType(MTL::CurveType curveType)1535{1536 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setCurveType_), curveType);1537}15381539_MTL_INLINE void MTL::AccelerationStructureMotionCurveGeometryDescriptor::setIndexBuffer(const MTL::Buffer* indexBuffer)1540{1541 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setIndexBuffer_), indexBuffer);1542}15431544_MTL_INLINE void MTL::AccelerationStructureMotionCurveGeometryDescriptor::setIndexBufferOffset(NS::UInteger indexBufferOffset)1545{1546 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setIndexBufferOffset_), indexBufferOffset);1547}15481549_MTL_INLINE void MTL::AccelerationStructureMotionCurveGeometryDescriptor::setIndexType(MTL::IndexType indexType)1550{1551 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setIndexType_), indexType);1552}15531554_MTL_INLINE void MTL::AccelerationStructureMotionCurveGeometryDescriptor::setRadiusBuffers(const NS::Array* radiusBuffers)1555{1556 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setRadiusBuffers_), radiusBuffers);1557}15581559_MTL_INLINE void MTL::AccelerationStructureMotionCurveGeometryDescriptor::setRadiusFormat(MTL::AttributeFormat radiusFormat)1560{1561 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setRadiusFormat_), radiusFormat);1562}15631564_MTL_INLINE void MTL::AccelerationStructureMotionCurveGeometryDescriptor::setRadiusStride(NS::UInteger radiusStride)1565{1566 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setRadiusStride_), radiusStride);1567}15681569_MTL_INLINE void MTL::AccelerationStructureMotionCurveGeometryDescriptor::setSegmentControlPointCount(NS::UInteger segmentControlPointCount)1570{1571 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setSegmentControlPointCount_), segmentControlPointCount);1572}15731574_MTL_INLINE void MTL::AccelerationStructureMotionCurveGeometryDescriptor::setSegmentCount(NS::UInteger segmentCount)1575{1576 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setSegmentCount_), segmentCount);1577}15781579_MTL_INLINE MTL::InstanceAccelerationStructureDescriptor* MTL::InstanceAccelerationStructureDescriptor::alloc()1580{1581 return NS::Object::alloc<MTL::InstanceAccelerationStructureDescriptor>(_MTL_PRIVATE_CLS(MTLInstanceAccelerationStructureDescriptor));1582}15831584_MTL_INLINE MTL::InstanceAccelerationStructureDescriptor* MTL::InstanceAccelerationStructureDescriptor::descriptor()1585{1586 return Object::sendMessage<MTL::InstanceAccelerationStructureDescriptor*>(_MTL_PRIVATE_CLS(MTLInstanceAccelerationStructureDescriptor), _MTL_PRIVATE_SEL(descriptor));1587}15881589_MTL_INLINE MTL::InstanceAccelerationStructureDescriptor* MTL::InstanceAccelerationStructureDescriptor::init()1590{1591 return NS::Object::init<MTL::InstanceAccelerationStructureDescriptor>();1592}15931594_MTL_INLINE NS::UInteger MTL::InstanceAccelerationStructureDescriptor::instanceCount() const1595{1596 return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(instanceCount));1597}15981599_MTL_INLINE MTL::Buffer* MTL::InstanceAccelerationStructureDescriptor::instanceDescriptorBuffer() const1600{1601 return Object::sendMessage<MTL::Buffer*>(this, _MTL_PRIVATE_SEL(instanceDescriptorBuffer));1602}16031604_MTL_INLINE NS::UInteger MTL::InstanceAccelerationStructureDescriptor::instanceDescriptorBufferOffset() const1605{1606 return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(instanceDescriptorBufferOffset));1607}16081609_MTL_INLINE NS::UInteger MTL::InstanceAccelerationStructureDescriptor::instanceDescriptorStride() const1610{1611 return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(instanceDescriptorStride));1612}16131614_MTL_INLINE MTL::AccelerationStructureInstanceDescriptorType MTL::InstanceAccelerationStructureDescriptor::instanceDescriptorType() const1615{1616 return Object::sendMessage<MTL::AccelerationStructureInstanceDescriptorType>(this, _MTL_PRIVATE_SEL(instanceDescriptorType));1617}16181619_MTL_INLINE MTL::MatrixLayout MTL::InstanceAccelerationStructureDescriptor::instanceTransformationMatrixLayout() const1620{1621 return Object::sendMessage<MTL::MatrixLayout>(this, _MTL_PRIVATE_SEL(instanceTransformationMatrixLayout));1622}16231624_MTL_INLINE NS::Array* MTL::InstanceAccelerationStructureDescriptor::instancedAccelerationStructures() const1625{1626 return Object::sendMessage<NS::Array*>(this, _MTL_PRIVATE_SEL(instancedAccelerationStructures));1627}16281629_MTL_INLINE MTL::Buffer* MTL::InstanceAccelerationStructureDescriptor::motionTransformBuffer() const1630{1631 return Object::sendMessage<MTL::Buffer*>(this, _MTL_PRIVATE_SEL(motionTransformBuffer));1632}16331634_MTL_INLINE NS::UInteger MTL::InstanceAccelerationStructureDescriptor::motionTransformBufferOffset() const1635{1636 return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(motionTransformBufferOffset));1637}16381639_MTL_INLINE NS::UInteger MTL::InstanceAccelerationStructureDescriptor::motionTransformCount() const1640{1641 return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(motionTransformCount));1642}16431644_MTL_INLINE NS::UInteger MTL::InstanceAccelerationStructureDescriptor::motionTransformStride() const1645{1646 return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(motionTransformStride));1647}16481649_MTL_INLINE MTL::TransformType MTL::InstanceAccelerationStructureDescriptor::motionTransformType() const1650{1651 return Object::sendMessage<MTL::TransformType>(this, _MTL_PRIVATE_SEL(motionTransformType));1652}16531654_MTL_INLINE void MTL::InstanceAccelerationStructureDescriptor::setInstanceCount(NS::UInteger instanceCount)1655{1656 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setInstanceCount_), instanceCount);1657}16581659_MTL_INLINE void MTL::InstanceAccelerationStructureDescriptor::setInstanceDescriptorBuffer(const MTL::Buffer* instanceDescriptorBuffer)1660{1661 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setInstanceDescriptorBuffer_), instanceDescriptorBuffer);1662}16631664_MTL_INLINE void MTL::InstanceAccelerationStructureDescriptor::setInstanceDescriptorBufferOffset(NS::UInteger instanceDescriptorBufferOffset)1665{1666 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setInstanceDescriptorBufferOffset_), instanceDescriptorBufferOffset);1667}16681669_MTL_INLINE void MTL::InstanceAccelerationStructureDescriptor::setInstanceDescriptorStride(NS::UInteger instanceDescriptorStride)1670{1671 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setInstanceDescriptorStride_), instanceDescriptorStride);1672}16731674_MTL_INLINE void MTL::InstanceAccelerationStructureDescriptor::setInstanceDescriptorType(MTL::AccelerationStructureInstanceDescriptorType instanceDescriptorType)1675{1676 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setInstanceDescriptorType_), instanceDescriptorType);1677}16781679_MTL_INLINE void MTL::InstanceAccelerationStructureDescriptor::setInstanceTransformationMatrixLayout(MTL::MatrixLayout instanceTransformationMatrixLayout)1680{1681 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setInstanceTransformationMatrixLayout_), instanceTransformationMatrixLayout);1682}16831684_MTL_INLINE void MTL::InstanceAccelerationStructureDescriptor::setInstancedAccelerationStructures(const NS::Array* instancedAccelerationStructures)1685{1686 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setInstancedAccelerationStructures_), instancedAccelerationStructures);1687}16881689_MTL_INLINE void MTL::InstanceAccelerationStructureDescriptor::setMotionTransformBuffer(const MTL::Buffer* motionTransformBuffer)1690{1691 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setMotionTransformBuffer_), motionTransformBuffer);1692}16931694_MTL_INLINE void MTL::InstanceAccelerationStructureDescriptor::setMotionTransformBufferOffset(NS::UInteger motionTransformBufferOffset)1695{1696 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setMotionTransformBufferOffset_), motionTransformBufferOffset);1697}16981699_MTL_INLINE void MTL::InstanceAccelerationStructureDescriptor::setMotionTransformCount(NS::UInteger motionTransformCount)1700{1701 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setMotionTransformCount_), motionTransformCount);1702}17031704_MTL_INLINE void MTL::InstanceAccelerationStructureDescriptor::setMotionTransformStride(NS::UInteger motionTransformStride)1705{1706 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setMotionTransformStride_), motionTransformStride);1707}17081709_MTL_INLINE void MTL::InstanceAccelerationStructureDescriptor::setMotionTransformType(MTL::TransformType motionTransformType)1710{1711 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setMotionTransformType_), motionTransformType);1712}17131714_MTL_INLINE MTL::IndirectInstanceAccelerationStructureDescriptor* MTL::IndirectInstanceAccelerationStructureDescriptor::alloc()1715{1716 return NS::Object::alloc<MTL::IndirectInstanceAccelerationStructureDescriptor>(_MTL_PRIVATE_CLS(MTLIndirectInstanceAccelerationStructureDescriptor));1717}17181719_MTL_INLINE MTL::IndirectInstanceAccelerationStructureDescriptor* MTL::IndirectInstanceAccelerationStructureDescriptor::descriptor()1720{1721 return Object::sendMessage<MTL::IndirectInstanceAccelerationStructureDescriptor*>(_MTL_PRIVATE_CLS(MTLIndirectInstanceAccelerationStructureDescriptor), _MTL_PRIVATE_SEL(descriptor));1722}17231724_MTL_INLINE MTL::IndirectInstanceAccelerationStructureDescriptor* MTL::IndirectInstanceAccelerationStructureDescriptor::init()1725{1726 return NS::Object::init<MTL::IndirectInstanceAccelerationStructureDescriptor>();1727}17281729_MTL_INLINE MTL::Buffer* MTL::IndirectInstanceAccelerationStructureDescriptor::instanceCountBuffer() const1730{1731 return Object::sendMessage<MTL::Buffer*>(this, _MTL_PRIVATE_SEL(instanceCountBuffer));1732}17331734_MTL_INLINE NS::UInteger MTL::IndirectInstanceAccelerationStructureDescriptor::instanceCountBufferOffset() const1735{1736 return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(instanceCountBufferOffset));1737}17381739_MTL_INLINE MTL::Buffer* MTL::IndirectInstanceAccelerationStructureDescriptor::instanceDescriptorBuffer() const1740{1741 return Object::sendMessage<MTL::Buffer*>(this, _MTL_PRIVATE_SEL(instanceDescriptorBuffer));1742}17431744_MTL_INLINE NS::UInteger MTL::IndirectInstanceAccelerationStructureDescriptor::instanceDescriptorBufferOffset() const1745{1746 return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(instanceDescriptorBufferOffset));1747}17481749_MTL_INLINE NS::UInteger MTL::IndirectInstanceAccelerationStructureDescriptor::instanceDescriptorStride() const1750{1751 return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(instanceDescriptorStride));1752}17531754_MTL_INLINE MTL::AccelerationStructureInstanceDescriptorType MTL::IndirectInstanceAccelerationStructureDescriptor::instanceDescriptorType() const1755{1756 return Object::sendMessage<MTL::AccelerationStructureInstanceDescriptorType>(this, _MTL_PRIVATE_SEL(instanceDescriptorType));1757}17581759_MTL_INLINE MTL::MatrixLayout MTL::IndirectInstanceAccelerationStructureDescriptor::instanceTransformationMatrixLayout() const1760{1761 return Object::sendMessage<MTL::MatrixLayout>(this, _MTL_PRIVATE_SEL(instanceTransformationMatrixLayout));1762}17631764_MTL_INLINE NS::UInteger MTL::IndirectInstanceAccelerationStructureDescriptor::maxInstanceCount() const1765{1766 return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(maxInstanceCount));1767}17681769_MTL_INLINE NS::UInteger MTL::IndirectInstanceAccelerationStructureDescriptor::maxMotionTransformCount() const1770{1771 return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(maxMotionTransformCount));1772}17731774_MTL_INLINE MTL::Buffer* MTL::IndirectInstanceAccelerationStructureDescriptor::motionTransformBuffer() const1775{1776 return Object::sendMessage<MTL::Buffer*>(this, _MTL_PRIVATE_SEL(motionTransformBuffer));1777}17781779_MTL_INLINE NS::UInteger MTL::IndirectInstanceAccelerationStructureDescriptor::motionTransformBufferOffset() const1780{1781 return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(motionTransformBufferOffset));1782}17831784_MTL_INLINE MTL::Buffer* MTL::IndirectInstanceAccelerationStructureDescriptor::motionTransformCountBuffer() const1785{1786 return Object::sendMessage<MTL::Buffer*>(this, _MTL_PRIVATE_SEL(motionTransformCountBuffer));1787}17881789_MTL_INLINE NS::UInteger MTL::IndirectInstanceAccelerationStructureDescriptor::motionTransformCountBufferOffset() const1790{1791 return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(motionTransformCountBufferOffset));1792}17931794_MTL_INLINE NS::UInteger MTL::IndirectInstanceAccelerationStructureDescriptor::motionTransformStride() const1795{1796 return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(motionTransformStride));1797}17981799_MTL_INLINE MTL::TransformType MTL::IndirectInstanceAccelerationStructureDescriptor::motionTransformType() const1800{1801 return Object::sendMessage<MTL::TransformType>(this, _MTL_PRIVATE_SEL(motionTransformType));1802}18031804_MTL_INLINE void MTL::IndirectInstanceAccelerationStructureDescriptor::setInstanceCountBuffer(const MTL::Buffer* instanceCountBuffer)1805{1806 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setInstanceCountBuffer_), instanceCountBuffer);1807}18081809_MTL_INLINE void MTL::IndirectInstanceAccelerationStructureDescriptor::setInstanceCountBufferOffset(NS::UInteger instanceCountBufferOffset)1810{1811 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setInstanceCountBufferOffset_), instanceCountBufferOffset);1812}18131814_MTL_INLINE void MTL::IndirectInstanceAccelerationStructureDescriptor::setInstanceDescriptorBuffer(const MTL::Buffer* instanceDescriptorBuffer)1815{1816 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setInstanceDescriptorBuffer_), instanceDescriptorBuffer);1817}18181819_MTL_INLINE void MTL::IndirectInstanceAccelerationStructureDescriptor::setInstanceDescriptorBufferOffset(NS::UInteger instanceDescriptorBufferOffset)1820{1821 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setInstanceDescriptorBufferOffset_), instanceDescriptorBufferOffset);1822}18231824_MTL_INLINE void MTL::IndirectInstanceAccelerationStructureDescriptor::setInstanceDescriptorStride(NS::UInteger instanceDescriptorStride)1825{1826 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setInstanceDescriptorStride_), instanceDescriptorStride);1827}18281829_MTL_INLINE void MTL::IndirectInstanceAccelerationStructureDescriptor::setInstanceDescriptorType(MTL::AccelerationStructureInstanceDescriptorType instanceDescriptorType)1830{1831 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setInstanceDescriptorType_), instanceDescriptorType);1832}18331834_MTL_INLINE void MTL::IndirectInstanceAccelerationStructureDescriptor::setInstanceTransformationMatrixLayout(MTL::MatrixLayout instanceTransformationMatrixLayout)1835{1836 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setInstanceTransformationMatrixLayout_), instanceTransformationMatrixLayout);1837}18381839_MTL_INLINE void MTL::IndirectInstanceAccelerationStructureDescriptor::setMaxInstanceCount(NS::UInteger maxInstanceCount)1840{1841 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setMaxInstanceCount_), maxInstanceCount);1842}18431844_MTL_INLINE void MTL::IndirectInstanceAccelerationStructureDescriptor::setMaxMotionTransformCount(NS::UInteger maxMotionTransformCount)1845{1846 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setMaxMotionTransformCount_), maxMotionTransformCount);1847}18481849_MTL_INLINE void MTL::IndirectInstanceAccelerationStructureDescriptor::setMotionTransformBuffer(const MTL::Buffer* motionTransformBuffer)1850{1851 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setMotionTransformBuffer_), motionTransformBuffer);1852}18531854_MTL_INLINE void MTL::IndirectInstanceAccelerationStructureDescriptor::setMotionTransformBufferOffset(NS::UInteger motionTransformBufferOffset)1855{1856 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setMotionTransformBufferOffset_), motionTransformBufferOffset);1857}18581859_MTL_INLINE void MTL::IndirectInstanceAccelerationStructureDescriptor::setMotionTransformCountBuffer(const MTL::Buffer* motionTransformCountBuffer)1860{1861 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setMotionTransformCountBuffer_), motionTransformCountBuffer);1862}18631864_MTL_INLINE void MTL::IndirectInstanceAccelerationStructureDescriptor::setMotionTransformCountBufferOffset(NS::UInteger motionTransformCountBufferOffset)1865{1866 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setMotionTransformCountBufferOffset_), motionTransformCountBufferOffset);1867}18681869_MTL_INLINE void MTL::IndirectInstanceAccelerationStructureDescriptor::setMotionTransformStride(NS::UInteger motionTransformStride)1870{1871 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setMotionTransformStride_), motionTransformStride);1872}18731874_MTL_INLINE void MTL::IndirectInstanceAccelerationStructureDescriptor::setMotionTransformType(MTL::TransformType motionTransformType)1875{1876 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setMotionTransformType_), motionTransformType);1877}18781879_MTL_INLINE MTL::ResourceID MTL::AccelerationStructure::gpuResourceID() const1880{1881 return Object::sendMessage<MTL::ResourceID>(this, _MTL_PRIVATE_SEL(gpuResourceID));1882}18831884_MTL_INLINE NS::UInteger MTL::AccelerationStructure::size() const1885{1886 return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(size));1887}1888