GetGeometryClass
Syntax
// // Strong typing definition // OwlClass GetGeometryClass( OwlClass owlClass ); // // Weak typing definition // int64_t __declspec(dllexport) __stdcall GetGeometryClass( int64_t owlClass );
Property owlClass
Size: 64 bit / 8 byte (value)
Example (based on pure API calls)
Here you can find code snippits that show how the API call GetGeometryClass can be used.
#include "./include/engine.h" void main() { int64_t model = CreateModel(); if (model) { // // The following class will be created on-the-fly if the name is not used already // for a class or property (attribute / relation). // // note: calling GetClassByName with a name not yet existing will do the same trick) // int64_t classMyOwnCylinderClass = CreateClass(model, "MyOwnCylinderClass"); // // Classes // int64_t classCylinder = GetClassByName(model, "Cylinder"); // // Datatype Properties (attributes) // int64_t propertyLength = GetPropertyByName(model, "length"), propertyRadius = GetPropertyByName(model, "radius"), propertySegmentationParts = GetPropertyByName(model, "segmentationParts"); // // Instances // int64_t instanceMyOwnCylinderClass = CreateInstance(classMyOwnCylinderClass, nullptr); // // At this moment our new class is unrelated to other classes and instances of it not generating any geometry // assert(GetGeometryClass(classMyOwnCylinderClass) == 0); SetClassParent(classMyOwnCylinderClass, classCylinder, 1); // // Now each instance of MyOwnCylinderClass is inheriting the behavior and knowledge of a Cylinder // assert(GetGeometryClass(classMyOwnCylinderClass) == classCylinder); double length = 1.8, radius = 1.3; int64_t segmentationParts = 36; SetDatatypeProperty(instanceMyOwnCylinderClass, propertyLength, &length, 1); SetDatatypeProperty(instanceMyOwnCylinderClass, propertyRadius, &radius, 1); SetDatatypeProperty(instanceMyOwnCylinderClass, propertySegmentationParts, &segmentationParts, 1); double volume = GetVolume(instanceMyOwnCylinderClass, nullptr, nullptr); // // The resulting model can be viewed in 3D-Editor.exe // SaveModel(model, "c:\\created\\myFile.bin"); CloseModel(model); } }