%module dna %pythonbegin %{ import os if hasattr(os, 'add_dll_directory'): for path in os.environ.get('PATH', '').split(';'): try: if path: os.add_dll_directory(path) except Exception: pass %} %{ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "dna/Defs.h" #include "dna/DataLayer.h" #include "dna/types/ArrayView.h" #include "dna/types/StringView.h" #include "dna/types/Aliases.h" #include "dna/layers/Descriptor.h" #include "dna/layers/Geometry.h" #include "dna/layers/DescriptorReader.h" #include "dna/layers/DefinitionReader.h" #include "dna/layers/BehaviorReader.h" #include "dna/layers/GeometryReader.h" #include "dna/Reader.h" #include "dna/StreamReader.h" #include "dna/BinaryStreamReader.h" #include "dna/JSONStreamReader.h" #include "dna/layers/DescriptorWriter.h" #include "dna/layers/DefinitionWriter.h" #include "dna/layers/BehaviorWriter.h" #include "dna/layers/GeometryWriter.h" #include "dna/Writer.h" #include "dna/StreamWriter.h" #include "dna/BinaryStreamWriter.h" #include "dna/JSONStreamWriter.h" %} %include %include "stdint.i" %include %ignore sc::operator==; %ignore sc::operator!=; %include %include %include %include %include %include %include %include %include %include %include %include %include %include %include %include pythonize_unmanaged_type(FileStream, create, destroy) pythonize_unmanaged_type(MemoryMappedFileStream, create, destroy) pythonize_unmanaged_type(MemoryStream, create, destroy) %pythoncode %{ FileStream.AccessMode_Read = AccessMode_Read FileStream.AccessMode_Write = AccessMode_Write FileStream.AccessMode_ReadWrite = AccessMode_ReadWrite FileStream.OpenMode_Binary = OpenMode_Binary FileStream.OpenMode_Text = OpenMode_Text MemoryMappedFileStream.AccessMode_Read = AccessMode_Read MemoryMappedFileStream.AccessMode_Write = AccessMode_Write MemoryMappedFileStream.AccessMode_ReadWrite = AccessMode_ReadWrite %} %include %include %include "Geometry.i" array_view_to_py_list(trust::ArrayView); %apply trust::ArrayView { trust::ConstArrayView, dna::ArrayView, dna::ConstArrayView }; string_view_to_py_string(trust::StringView); %apply trust::StringView { dna::StringView }; vector3_typemap(dna::Vector3); texture_coordinate_typemap(dna::TextureCoordinate); vertex_layout_typemap(dna::VertexLayout); py_list_to_c_array(const std::uint16_t* jointIndices, std::uint16_t count); %apply (const std::uint16_t* jointIndices, std::uint16_t count) { (const std::uint16_t* animatedMapIndices, std::uint16_t count), (const std::uint16_t* meshIndices, std::uint16_t count), (const std::uint16_t* rowIndices, std::uint16_t count), (const std::uint16_t* columnIndices, std::uint16_t count), (const std::uint16_t* outputIndices, std::uint16_t count), (const std::uint16_t* inputIndices, std::uint16_t count), (const std::uint16_t* lods, std::uint16_t count), (const std::uint16_t* blendShapeChannelIndices, std::uint16_t count), (const std::uint32_t* vertexIndices, std::uint32_t count), (const std::uint32_t* layoutIndices, std::uint32_t count) }; py_list_to_c_array(const float* fromValues, std::uint16_t count); %apply (const float* fromValues, std::uint16_t count) { (const float* toValues, std::uint16_t count), (const float* slopeValues, std::uint16_t count), (const float* cutValues, std::uint16_t count), (const float* weights, std::uint16_t count) }; py_list_to_c_array(const float* values, std::uint32_t count); py_list_to_c_array(const dna::VertexLayout* layouts, std::uint32_t count); py_list_to_c_array(const dna::TextureCoordinate* textureCoordinates, std::uint32_t count); py_list_to_c_array(const dna::Normal* normals, std::uint32_t count); %apply (const dna::Normal* normals, std::uint32_t count) { (const dna::Vector3* translations, std::uint16_t count), (const dna::Vector3* rotations, std::uint16_t count), (const dna::Position* positions, std::uint32_t count), (const dna::Delta* deltas, std::uint32_t count) }; %include "dna/Defs.h" %include "dna/types/ArrayView.h" %include "dna/types/StringView.h" %include "dna/types/Aliases.h" %include "dna/types/Vector3.h" %include "dna/DataLayer.h" %include "dna/layers/Descriptor.h" %include "dna/layers/Geometry.h" %include "dna/layers/DescriptorReader.h" %include "dna/layers/DefinitionReader.h" %include "dna/layers/BehaviorReader.h" %include "dna/layers/GeometryReader.h" %include "dna/Reader.h" %include "dna/StreamReader.h" %include "dna/BinaryStreamReader.h" %include "dna/JSONStreamReader.h" pythonize_unmanaged_type(BinaryStreamReader, create, destroy) pythonize_unmanaged_type(JSONStreamReader, create, destroy) %include "dna/layers/DescriptorWriter.h" %include "dna/layers/DefinitionWriter.h" %include "dna/layers/BehaviorWriter.h" %include "dna/layers/GeometryWriter.h" %include "dna/Writer.h" %include "dna/StreamWriter.h" %include "dna/BinaryStreamWriter.h" %include "dna/JSONStreamWriter.h" pythonize_unmanaged_type(BinaryStreamWriter, create, destroy) pythonize_unmanaged_type(JSONStreamWriter, create, destroy)