getting and setting a point selection
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 26/04/2004 at 19:43, xxxxxxxx wrote:
User Information:
Cinema 4D Version: 8.500
Platform: Windows ;
Language(s) : C++ ;---------
Hi,
I am trying to change some individual points in a point selection tag. I have a handle to the tag (i know that because it returns the correct name), but when I try and get the individual points, I'm having no luck.
I have searched the forums for info on this basic problem, but no luck so far.
Here's the code I have so far....
BaseTag* mTag = obj->GetTag(Tpointselection,0);
BaseContainer data = mTag->GetData();
Vector mVector = Vector();
while (TRUE)
{
id = data.GetIndexId(i++);
if (id==NOTOK)
break;
data.GetVector(id, mVector);
if(mVector.x)
{
mSelection= "mVectorx " + RealToString(mVector.x);
GePrint(mSelection);
}
mVector.x += 100;
data.SetVector(id, mVector);
//redraw the whole scene
EventAdd(EVENT_FORCEREDRAW);
}
This is just test code, to see what works, which is nothing so far.
My test string is just to see what I have, and I always have zero there. Then, when I try and change the x value, it does nothing anyway.
I am completely new to writing plugins, so don't be hard on me, and please help!
Thanks in advance,
K. <SCRIPT language=javascript>postamble();_<_Script_>_ -
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 26/04/2004 at 21:32, xxxxxxxx wrote:
OK, so I guess my question is really can I get at the vector information of the points stored in a Point Selection Tag? If so, then how?
Thanks! <SCRIPT language=javascript>postamble();_<_Script_>_ -
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 01/05/2004 at 17:38, xxxxxxxx wrote:
The Tpointselection tag is a SelectionTag. Just cast it:
BaseTag* tag = ...; if (tag->GetType() == Tpointselection) { SelectionTag* seltag = static_cast<SelectionTag*>(tag); BaseSelect* sel = seltag->GetBaseSelect(); ... }
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 01/05/2004 at 21:17, xxxxxxxx wrote:
Thank you so much for replying!
The thing is, I already successfuly have the correct information from the selection tag - I just don't know how to get to the guts of the information - the vector information, the x, y and z co-ordinates. BaseSelect class seems to be limited to point counts ans stuff like that - how do I read the actual information stored in the point selection?
Thank so much in advance again for a quick reply.
K. -
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 04/05/2004 at 06:00, xxxxxxxx wrote:
All the point counts in the BaseSelect class refer to the PointObject::GetPoint() array. So just do
BaseObject* obj = tag->GetObject(); if (obj->IsInstanceOf(Opoint)) { PointObject* pobj = static_cast<PointObject*>(obj); Vector p = pobj->GetPoint()[i]; // i is the point index from the selection }