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  
        }
    

Log in to reply