CreateInstance
If the owlClass input is zero or not a class handle 0 will be returned,
Syntax
// // Strong typing definition // OwlInstance CreateInstance( OwlClass owlClass, const char * name ); static inline OwlInstance CreateInstance( OwlClass owlClass, char * name ) { return CreateInstance( owlClass, (const char*) name ); } static inline OwlInstance CreateInstance( OwlClass owlClass ) { const char * name = nullptr; return CreateInstance( owlClass, (const char*) name ); } // // Weak typing definition // int64_t __declspec(dllexport) __stdcall CreateInstance( int64_t owlClass, const char * name ); static inline int64_t CreateInstance( int64_t owlClass, char * name ) { return CreateInstance( owlClass, (const char*) name ); } static inline int64_t CreateInstance( int64_t owlClass ) { const char * name = nullptr; return CreateInstance( owlClass, (const char*) name ); }
Property owlClass
Size: 64 bit / 8 byte (value)Property name
Size: 32 bit / 4 byte (reference)
Example (based on pure API calls)
Here you can find code snippits that show how the API call CreateInstance can be used.
#include "./include/engine.h" #include <cmath> int64_t model = CreateModel(); if (model) { // // Classes // int64_t classArc3D = GetClassByName(model, "Arc3D"); // // Datatype Properties (attributes) // int64_t propertyRadius = GetPropertyByName(model, "radius"), propertyStart = GetPropertyByName(model, "start"), propertySize = GetPropertyByName(model, "size"), propertySegmentationParts = GetPropertyByName(model, "segmentationParts"); // // Instances (creating) // int64_t myInstanceArc3D = CreateInstance(classArc3D, nullptr); double Pi = 2. * acos(0.), radius = 2.1, start = 0., size = 2. * Pi; int64_t segmentationParts = 36; SetDatatypeProperty(myInstanceArc3D, propertyRadius, &radius, 1); SetDatatypeProperty(myInstanceArc3D, propertyStart, &start, 1); // in this case we could also do without, i.e. default value SetDatatypeProperty(myInstanceArc3D, propertySize, &size, 1); // in this case we could also do without, i.e. default value SetDatatypeProperty(myInstanceArc3D, propertySegmentationParts, &segmentationParts, 1); // // The resulting model can be viewed in 3D-Editor.exe // SaveModel(model, "c:\\created\\myFile.bin"); CloseModel(model); }