GetVirtualObjects Questions
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 15/01/2011 at 09:19, xxxxxxxx wrote:
User Information:
Cinema 4D Version: 12
Platform: Windows ;
Language(s) : C++ ;---------
I would like to have my generator plugin return three different spheres each one slightly bigger than the other. I would like this to all happen in GetVirtualObjects() so that the sphere's options are not immediately accessible to the user. The onyl way I want the user to be able to change the spheres is through making the plugin object editable. How would I go about returning 3 different spheres in GVO? is this possible?Thanks,
~Shawn
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 15/01/2011 at 12:51, xxxxxxxx wrote:
Create a Null object, allocate the three spheres, insert them under the Null object, configure the spheres, return the Null object.
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 15/01/2011 at 12:53, xxxxxxxx wrote:
Perfect. Worked like a charm. Thanks again Robert.
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 03/02/2011 at 01:09, xxxxxxxx wrote:
Hello,
I tried this also, but the configuration of the spheres doesn't work. I set some differents radius and possitions (in GetVirtualObjects), but I see only one sphere with the defallt sizes. Where or how can I set the configurations.
regards
Markus -
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 03/02/2011 at 02:55, xxxxxxxx wrote:
BaseObject* null = BaseObject::Alloc(Onull); if(!null) return NULL; BaseObject* sphere1 = BaseObject::Alloc(Osphere); if(!sphere1) return NULL; BaseObject* sphere2 = BaseObject::Alloc(Osphere); if(!sphere2) return NULL; BaseObject* sphere3 = BaseObject::Alloc(Osphere); if(!sphere3) return NULL; doc->InsertObject(sphere1, null, NULL, 0); doc->InsertObject(sphere2, null, sphere1, 0); doc->InsertObject(sphere3, null, sphere2, 0); return null;
You would of course need to make adjustments to each sphere's parameters to make them different sizes but this is how I did it.
Hope that helps.
~Shawn -
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 03/02/2011 at 04:08, xxxxxxxx wrote:
Hello,
ok, that's the same like in my function.
NullObj = BaseObject::Alloc(Onull);
if (!NullObj) return NULL;
text = BaseObject::Alloc(Osplinetext);
if (!text) return NULL;
nurbs = BaseObject::Alloc(Oextrude);
if (!nurbs) return NULL;doc->InsertObject(nurbs,NullObj,NULL,FALSE);
doc->InsertObject(text,nurbs, NULL, FALSE);GeData data;
data.SetString("hello world");
BaseContainer *bc = text->GetDataInstance();
bc->SetParameter(DescLevel(ID_PAINTSPLINETEXT_TEXT), data);return NullObj;
But the changing of the default "Text" in the text spline doesn't work. Or the movement in the extrude NURBS object from "20" to e.g. 2 doesn't work. Do you have an idee how I can do this?
Marky
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 03/02/2011 at 06:12, xxxxxxxx wrote:
ahh, now it works.
BaseDocument *doc = GetActiveDocument();
Bool dirty = op->CheckCache(hh) || op->IsDirty(DIRTY_DATA);
if (!dirty)
return op->GetCache(hh);BaseObject* null = BaseObject::Alloc(Onull);
if(!null) return NULL;
BaseObject* text = BaseObject::Alloc(Osplinetext);
if (!text) return NULL;
BaseObject* nurbs = BaseObject::Alloc(Oextrude);
if (!nurbs) return NULL;doc->InsertObject(nurbs, null,NULL,0);
doc->InsertObject(text, nurbs, NULL, 0);BaseContainer *bc = text->GetDataInstance();
bc->SetString( PRIM_TEXT_TEXT, "hello world!");bc = nurbs->GetDataInstance();
bc->SetVector( EXTRUDEOBJECT_MOVE, Vector(0,0,2) );return null;
thanks a lot