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 }