Maxon Developers Maxon Developers
    • Documentation
      • Cinema 4D Python API
      • Cinema 4D C++ API
      • Cineware API
      • ZBrush Python API
      • ZBrush GoZ API
      • Code Examples on Github
    • Forum
    • Downloads
    • Support
      • Support Procedures
      • Registered Developer Program
      • Plugin IDs
      • Contact Us
    • Categories
      • Overview
      • News & Information
      • Cinema 4D SDK Support
      • Cineware SDK Support
      • ZBrush 4D SDK Support
      • Bugs
      • General Talk
    • Recent
    • Tags
    • Users
    • Login

    Polygon Flow

    Scheduled Pinned Locked Moved SDK Help
    3 Posts 0 Posters 266 Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • H Offline
      Helper
      last edited by

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

      On 27/08/2008 at 12:58, xxxxxxxx wrote:

      User Information:
      Cinema 4D Version:   r10.1 
      Platform:   Windows  ;   
      Language(s) :   C.O.F.F.E.E  ;

      ---------
         Hi, i am currently facing a problem with creating a proper polygonflow for an object. Generally it would help me if i could see how for example the "ebenen"-object is created with c.o.f.f.e.e.

      my current snippet is this, btw, the
      if (op#ID_USERDATA:1==1) is just a boole userdata to start the script:

      > `

        
      \>  main(doc,op)  
      \>  {  
      \>  var random = new(Random);  
      \>  random->Init(time());  
      \>    
      \>       if (op#ID_USERDATA:1==1)  
      \>       {  
      \>            op#ID_USERDATA:1=0;  
      \>            op#ID_USERDATA:2="Gestartet";  
      \>            var newObj = new(PolygonObject);  
      \>            newObj->SetName("terra");  
      \>    
      \>            doc->InsertObject(newObj,NULL,NULL);  
      \>            GeEventAdd(DOCUMENT_CHANGED);       
      \>              
      \>            var vc = new(VariableChanged); if (!vc) return FALSE;  
      \>    
      \>            var cnt;  
      \>            var ok;  
      \>            var _xCnt,_yCnt,_xPos,_yPos,_vPos;  
      \>            var _p1,_p2,_p3,_p4;  
      \>            var _xMax = op#ID_USERDATA:3; var _yMax = op#ID_USERDATA:4;  
      \>            var _pNum;  
      \>    
      \>            var pArr = new(array,_xMax*_yMax);  
      \>    
      \>            for (_xCnt=0;_xCnt<_xMax;_xCnt++)  
      \>            {  
      \>                 for (_yCnt=0;_yCnt<_yMax;_yCnt++)  
      \>                 {  
      \>                      cnt = newObj->GetPointCount();  
      \>                      vc->Init(cnt,cnt+1);  
      \>                      ok =newObj->MultiMessage(MSG_POINTS_CHANGED,vc);  
      \>                      _pNum = cnt;//_xCnt*_yMax + _yCnt;  
      \>                      _xPos = (_xCnt-_xMax/2)*200;  
      \>                      _yPos = (_yCnt-_yMax/2)*200;  
      \>                      _vPos = 512*random->Get01();  
      \>                      newObj->SetPoint(_pNum,vector(_xPos-100,_vPos,_yPos+100));  
      \>                 }  
      \>            }  
      \>    
      \>            for(_xCnt=0;_xCnt<_xMax;_xCnt++)  
      \>            {  
      \>                 for(_yCnt=0;_yCnt<_yMax-1;_yCnt++)  
      \>                 {  
      \>                      cnt = newObj->GetPolygonCount();  
      \>                      vc->Init(cnt,cnt+1);  
      \>                      ok =newObj->MultiMessage(MSG_POLYGONS_CHANGED,vc);  
      \>                      _pNum = cnt;//_xCnt*_yMax + _yCnt;//  
      \>                      _p1 = _pNum;  
      \>                      _p2 = _pNum + 1;  
      \>                      _p3 = _pNum + _yMax + 1;  
      \>                      _p4 = _pNum + _yMax;  
      \>                      newObj->SetPolygon(_pNum, _p1,_p2,_p3,_p4);  
      \>                 }  
      \>            }  
      \>            var t = AllocTag(Tphong);  
      \>            newObj->InsertTag(t,NULL);  
      \>            newObj->Message(MSG_UPDATE);  
      \>         
      \>            doc->SetActiveObject(newObj);  
      \>            op#ID_USERDATA:2+="\nFertitsch";  
      \>       }  
      \>  }  
      \>  
      

      `

      but it creates a big polygon when one row is finished and the other starts.

      it would be cool if someone points me to the solution
      thanks in advance,
      ello

      1 Reply Last reply Reply Quote 0
      • H Offline
        Helper
        last edited by

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

        On 28/08/2008 at 01:44, xxxxxxxx wrote:

        here you go:

        > \> var x = 10; //x resolution \> var y = 10; //y resolution \> \> var op = doc->GetActiveObject(); \> \> if (!op || !instanceof(op,PolygonObject)) return; \> \> var vc = new(VariableChanged); if (!vc) return; \> \> var vcnt = op->GetPointCount(); \> vc->Init(vcnt, (x+1)\*(y+1)); \>                                                                                  \> if(!op->MultiMessage(MSG_POINTS_CHANGED,vc)) return; \> println("points changed"); \> \> var fcnt = op->GetPolygonCount(); \> vc->Init(fcnt, x\*y); \> \> if(!op->MultiMessage(MSG_POLYGONS_CHANGED,vc)) return; \> println("polygons changed"); \> \> println("set points"); \> \> var i,j,k=0; \> for(i=0; i<(y+1); i++) \> { \>      for(j=0; j<(x+1); j++) \>      { \>           op->SetPoint(k,vector(j\*20,0,i\*20)); \>           k++; \>      } \> } \> \> k=0; \> for(i=0; i<y; i++) \> { \>      for(j=0; j<x; j++) \>      { \>           var poly = new(Polygon); \>           poly->a = j+(i\*(x+1)); \>           poly->b = j+(i\*(x+1))+x+1; \>           poly->c = j+(i\*(x+1))+x+2; \>           poly->d = j+(i\*(x+1))+1; \>           op->SetPolygon(k,poly); \>           k++; \>      } \> } \> \> op->Message(MSG_UPDATE); \>

        cheers,
        Matthias

        1 Reply Last reply Reply Quote 0
        • H Offline
          Helper
          last edited by

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

          On 28/08/2008 at 02:04, xxxxxxxx wrote:

          thank you very,very much!

          best greetings,
          christian

          1 Reply Last reply Reply Quote 0
          • First post
            Last post