On 07/09/2016 at 02:30, xxxxxxxx wrote:
Cinema 4D Version: R17 demo
Platform: Windows ;
Language(s) : C++ ;
Can somebody please give me an example code or link to code - how to use (read/write) NGons?
I tried something like this so far - writing NGons:
1. I have allocated output PolygonObject with quads (works as expected) in "mesh_out"
2. then I called "mesh_out->GetAndBuildNgon();" to alloc NgonBase (not sure if that's correct)
3. then for each Ngon I called: "mesh_out->GetNgonBase()->BuildNgon(...);
Doesn't do anything visible.
Is that correct? I mean, are these functions sufficient to make NGons? As I said, a working example would be very helpful.
On 08/09/2016 at 02:29, xxxxxxxx wrote:
the easiest and safest way to handle NGons is not to use the low level API but to use the Modeling library instead. This library takes care that all the data is handled correctly. Here is a simple example:
// create modeling object
PolygonObject* polyObject = PolygonObject::Alloc(0, 0);
if (polyObject == nullptr)
// set point count to 10
const Int32 pointCount = 10;
// resize polygon object
// init polygon object for modeling
Float64 angle = 0.0;
const Float64 step = 2 * PI / Float64(pointCount);
// prepare array for the indices
// create points for the polygon object
for (Int32 i = 0; i < pointCount; ++i)
// calculate coordinates
maxon::SinCos(angle, sin, cos);
const Vector coords = Vector(cos * 100.0, sin * 100.0, 0);
// set coordinates for the given point
modeling->SetPoint(polyObject, i, coords);
// save index for later
// next step
angle = angle + step;
// create Ngon
modeling->CreateNgon(polyObject, ngonPoints.GetFirst(), (Int32)ngonPoints.GetCount());
// commit the modeling transformation before inserting the polygon object into the document
// add the polygon object to the document
doc->InsertObject(polyObject, nullptr, nullptr);
On 13/09/2016 at 01:36, xxxxxxxx wrote:
Thank you, that's exactly what I needed.
On 22/09/2016 at 19:11, xxxxxxxx wrote:
This is a blast from the past (2008) post I did that may or may not be useful (it sounds like you already solved the issue). It has a bit more detail about some of the lower level api and a few comments with additional info by others.
On 23/09/2016 at 07:44, xxxxxxxx wrote:
Nice to see you posting again Keith.
You've been M.I.A. for a long time.
On 23/09/2016 at 08:51, xxxxxxxx wrote:
Thanks Scott - I de-lurk from time to time :).