Cast BaseObject to Polygon

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 10/02/2004 at 19:10, xxxxxxxx wrote:

User Information:
Cinema 4D Version:   8.100 
Platform:   Windows  ;   
Language(s) :     C++  ;

---------
Hi all
I have a plane currently, have set its containers, Now i wanna get the point count of this object. So, i have to convert it into polygon object. I have read that the way to do that is by using the MCOMMAND_CURRENTSTATETOOBJECT. So i tried this way. My problem is, after i inserted the plane, I have to make it editable. So i have done this code:
   BaseObject *ObjGrid = BaseObject::Alloc(Oplane);
   BaseContainer *conGrid = ObjGrid->GetDataInstance();
   conGrid->SetReal(PRIM_PLANE_SUBW, XNos);
   conGrid->SetReal(PRIM_PLANE_SUBH, ZNos);
    conGrid->SetReal(PRIM_PLANE_WIDTH, XWidth);

conGrid->SetReal(PRIM_PLANE_HEIGHT, ZWidth);
   doc->InsertObject(ObjGrid,NULL,NULL,TRUE);
   doc->StartUndo();
   doc->AddUndo(UNDO_NEW, ObjGrid);
   ObjGrid->SetRot(Vector(Rot_H, Rot_P, Rot_B));    
   
   ModelingCommandData cd;
   cd.flags = MODELINGCOMMANDFLAG_CREATEUNDO;
   cd.doc = doc;
   cd.bc = conGrid;
   cd.op = ObjGrid;
   cd.mode = MODIFY_ALL;
   
   if (!SendModelingCommand(MCOMMAND_MAKEEDITABLE,cd)) return NULL;   
   EventAdd(EVENT_FORCEREDRAW);
   
   ObjGrid = doc->SearchObject(vGridName);
How can I convert it into polygon object. Is that by using this following code:
Modelingcommanddata cd2;
cd2.doc=doc;
cd2.op = ObjGrid;
if(!Sendmodelingcommand(MCOMMAND_CURRENTSTATETOOBJECT, cd2)) return FALSE;
I have tried this but it gave memory leak problem. Anyone has any idea how to solve this?
Thanks for any help
Regards

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 11/02/2004 at 17:54, xxxxxxxx wrote:

Once you've used current state to object and have a pointer to the result, then just check that GetType()==Opoly and cast it using

    
    
    PolygonObject* poly = static_cast<PolygonObject*>(obj).

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 11/02/2004 at 23:02, xxxxxxxx wrote:

I have converted it into polygon object by using this code:
for(i=0; i<=XNos; i++) {
  BaseObject *objText = BaseObject::Alloc(Osplinetext);
  ModelingCommandData md;
  md.doc = doc;
  md.op = objText;
  if (!SendModelingCommand(MCOMMAND_CURRENTSTATETOOBJECT, md)) return FALSE;
  PolygonObject *poly = static_cast<PolygonObject*>(md.result1);
But when i wanna get the active point from this object, seems like there is a problem with this following code, so that i could not
   
  Activept = poly->GetPoint();
  Activept[i].z = Activept[i].z - 3 + ZMove;
  poly->SetPos(Activept[i]);
  doc->InsertObject(poly,ObjToPolygon,NULL);
}
Can u plz tell me what's the problem of this?
Thanks and regards

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 15/02/2004 at 16:38, xxxxxxxx wrote:

Do you mean that the code doesn't compile or that there's a runtime error or that nothing happens at all? (The term "problem" is too wide I'm afraid.)