Get a simple polygonal version of any object
-
I can easily get a polygonal version of any simple object with SendModelingCommand and getting the CSTO of it. Or even using the GetDeformCache of the object.
But, if I start with a complex object, like the Figure, or a Extrude, or a Array, or an Atom Array, or a Cloner, etc... I get a hierarchy.
Is there any way to start with any type of primitive and get a simple polygonal object with ALL the parts, connected into a single mesh?
Also, the same for a spline, so that, for example, a set of spline placed inside a Array would result in a single, multi-segment, spline? -
Hello,
there is no simple function that returns the merged result of all objects from a generator's cache.
You simply have to get the meshes from the cache and merge them into a single mesh yourself. And, of course, also merge normals, UVs etc. as needed.
best wishes,
Sebastian -
The "solution" I came up with was this:
doc=op.GetDocument() doc2=c4d.documents.IsolateObjects(doc,[op]) doc3=doc2.Polygonize(False)
and then go through all the objects of doc2, recursively.
Is this a correct way of doing things? -
Hello,
Polygonize()
is just usingSendModelingCommand()
withMCOMMAND_CURRENTSTATETOOBJECT
. You can actually see the C++ source inc4d_basedocument.cpp
in thecinema.framework
. But I don't think that this commands merges all objects into one polygon object.best wishes,
Sebastian