GetCentroid
Syntax
// Visual Studio for Windows public: double __declspec(dllexport) __stdcall GetCentroid( __int64 owlInstance, const void * vertices, const void * indices, double * centroid ); // Linux, OS-X and non-Visual Studio Windows solutions public: double GetCentroid( int64_t owlInstance, const void * vertices, const void * indices, double * centroid );
Property owlInstance
Size: 64 bit / 8 byte (value)Property vertices
Size: 32 bit / 4 byte (reference)Property indices
Size: 32 bit / 4 byte (reference)Property centroid
Size: 32 bit / 4 byte (reference)
Example
Here you can find code snippits that show how the API call GetCentroid can be used.
#include "engine/include/engine.h" #include <assert.h>void main() { int64_t model = CreateModel(); if (model) { // // Classes // int64_t classBox = GetClassByName(model, "Box"); // // Datatype Properties (attributes) // int64_t propertyLength = GetPropertyByName(model, "length"), propertyWidth = GetPropertyByName(model, "width"), propertyHeight = GetPropertyByName(model, "height"); // // Instances (creating) // int64_t instanceBox = CreateInstance(classBox, nullptr); double length = 2.8, width = 1.3, height = 1.4; SetDatatypeProperty(instanceBox, propertyLength, &length, 1); SetDatatypeProperty(instanceBox, propertyWidth, &width, 1); SetDatatypeProperty(instanceBox, propertyHeight, &height, 1); // // Simple use of the derived information functions // double centroid[3], volume = GetCentroid(instanceBox, nullptr, nullptr, ¢roid); int64_t vertexBufferSize = 0, indexBufferSize = 0; CalculateInstance(instanceBox, &vertexBufferSize, &indexBufferSize, 0); if (vertexBufferSize && indexBufferSize) { float * vertexBuffer = new float[6 * vertexBufferSize]; UpdateInstanceVertexBuffer(instanceBox, vertexBuffer); int32_t * indexBuffer = new int32_t[indexBufferSize]; UpdateInstanceIndexBuffer(instanceBox, indexBuffer); // // Reuse knowledge to improve performance (in case of single precision, with less accuracy) // volume = GetCentroid(instanceBox, vertexBuffer, indexBuffer, ¢roid); } // // The resulting model can be viewed in 3D-Editor.exe // SaveModel(model, "c:\\created\\myFile.bin"); CloseModel(model); } }