• Discussions about spline ik

    10
    0 Votes
    10 Posts
    2k Views
    chuanzhenC
    @zipit Thanks,this paper Parallel Transport Approach to Curve Framing I will follow your suggestion to explore RMF. It may be that the language barrier prevents us from communicating well, but I still get a lot of help from your answer. I use Google translate
  • Modeling Kernel Error : Invalid Object

    2
    0 Votes
    2 Posts
    543 Views
    ManuelM
    Hello and welcome to the forum, For your next threads, please help us keeping things organised and clean. I know it's not your priority but it really simplify our work here. Q&A New Functionality. How to Post Questions especially the tagging part. I've added marked this thread as a question so when you considered it as solved, please change the state In your code you Resize the object after initialized for the modeling command. That's why. but probably a simpler way to achieve what you want is to access the polygon's data. The PolygonObject is inherit from PointObject where you can retrieve the pointer of the points' vectors with GetPointW sometthing like so will work Vector* padr{ pol->GetPointW() }; if (padr == nullptr) return maxon::NullptrError(MAXON_SOURCE_LOCATION); padr[3] = Vector(-2, 0, 0); You can have a look at our "roundtube" example in the sdk.zip file that ship with every Cinema 4D version. This example will show you how to create a primitive from scratch. Cheers, Manuel.
  • C4D R21 does not run on macOS within deamon any more

    Moved
    7
    0 Votes
    7 Posts
    2k Views
    H
    Any update?
  • Vertex map python setup

    Moved
    3
    0 Votes
    3 Posts
    777 Views
    CairynC
    Just to point out, I already answered & posted a full sample scene in this thread: https://www.c4dcafe.com/ipb/forums/topic/109504-python-vertex-map/ plus a detailed explanation on how vertex map calculation works in a free post on my Patreon: https://www.patreon.com/posts/script-club-1-07-34384586 (Just so we don't get work duplicated.)
  • This topic is deleted!

    1
    0 Votes
    1 Posts
    2 Views
    No one has replied
  • Error in strings file documentation?

    4
    0 Votes
    4 Posts
    904 Views
    r_giganteR
    Hi @heilei thanks again for the comment! We'll try, where meaningful, to improve the typography in future releases. Best, R
  • Are PluginStart() and PluginEnd() only for C++ plugins?

    python r21
    4
    0 Votes
    4 Posts
    943 Views
    H
    Ok, got it. Thank you for your reply and clear explanation, r_gigante, much appreciated!
  • c4dpy + Atom

    python
    4
    0 Votes
    4 Posts
    820 Views
    D
    OK, thanks a lot for the quick answer! Cheers
  • Looking for help!

    Moved jobs
    2
    0 Votes
    2 Posts
    564 Views
    CairynC
    Hi; if you're looking for Python development - I'd have some time on my hands. Long-time C4D user and developer (currently creating a Python-for-C4D course actually). Not in the UK though (mainland Europe). If you want to talk about some details, drop me a mail under cairyn (at) tigress (dot) com.
  • Determine if a polygon is facing the camera

    python r20
    5
    0 Votes
    5 Posts
    1k Views
    R
    Once again, thank you, Manuel. I had to do a few changes and it is working now. I even made it select the faces that are within a certain angle from the camera. Here is my code: for i,poly in enumerate(faces): a,b,c,d = poly.a,poly.b,poly.c,poly.d pta = points[a]*mg ptb = points[b]*mg ptc = points[c]*mg ptd = points[d]*mg v1 = pta-ptb v2 = ptb-ptc normal = v1.Cross(v2) normal.Normalize() if c != d: center = c4d.Vector((pta.x+ptb.x+ptc.x+ptd.x)/4.0,(pta.y+ptb.y+ptc.y+ptd.y)/4.0,(pta.z+ptb.z+ptc.z+ptd.z)/4.0) else: center = c4d.Vector((pta.x+ptb.x+ptc.x)/3.0,(pta.y+ptb.y+ptc.y)/3.0,(pta.z+ptb.z+ptc.z)/3.0) direction = cam_off - center norm_dir = direction.GetNormalized() angle = NINETY - normal.Dot(norm_dir) if (angle > 0.0 and angle < max_ang): selection.Select(i)
  • This topic is deleted!

    2
    0 Votes
    2 Posts
    5 Views
  • Ptex Shader Progress

    Moved c++ windows r21
    8
    2
    2 Votes
    8 Posts
    2k Views
    r_giganteR
    Hi @wuzelwazel, thanks a lot for sharing your progresses on the Ptex Shader and for sharing your code. I've moved the thread to the more appropriate "General Programming & Plugin Discussions" hoping other developers could contribute to the discussion. Cheers, Riccardo
  • Error reading resource for Cinema4D after installing redshift.

    Moved r20
    2
    2
    0 Votes
    2 Posts
    1k Views
    M
    https://developers.maxon.net/forum/topic/11570/plugin-affecting-c4d-modules-startup/9
  • Calculate the rounding radius max value of a n-Side object

    Moved c++ sdk
    3
    0 Votes
    3 Posts
    674 Views
    mfersaouiM
    @Cairyn Hi, Thank you. Solution: Float GeIncircle(Int32 n, Float r) { return r * cos(PI / n); } Float max_rrad = GeIncircle(n, r);
  • Formula to calculate cloner radius

    Moved c++ sdk
    3
    1
    0 Votes
    3 Posts
    795 Views
    mfersaouiM
    @r_gigante Hi Riccardo, thank you for your detailed response. That allowed me to find the exact formula. l / (2 * tan((180 / n) * 3.14159 / 180)) Regards, Mustapha
  • How to Generate Dynamic Functions?

    r21 python
    3
    0 Votes
    3 Posts
    609 Views
    B
    Gotcha. Thanks for the code and confirmation. For my code, it's not really a simple printing the ID. Each ID corresponds with a separate function/script. I guess I'll just store them in a separate list. Separate ID list and separate function script list. Then execute them by matching index.
  • Tips for GeDialog GUI ID Management?

    r21 python
    4
    0 Votes
    4 Posts
    753 Views
    B
    Thanks for the response @mp5gosu Yea, this "another level of abstraction" might bite me in other sections of the code but this is the only way I can be sane for now. hehe @m_adam RE: it's also advised to use only iD superior to 1000. Thanks for the note. RE:here is one of the few possible ways The code works as expected. Thanks again! Should make things easier now
  • Calculate FPS tool?

    r21
    3
    0 Votes
    3 Posts
    678 Views
    chuanzhenC
    @m_magalhaes Thanks for your reply
  • Communication between DescriptionTool and GeUserArea

    4
    0 Votes
    4 Posts
    866 Views
    C4DSC
    @s_bach said in Communication between DescriptionTool and GeUserArea: The typical modern approaches are patterns like Model-View-Controller or Model-View-Presenter. In such models, you don't "send data around". Thanks for mentioning this. As stated in my opening post, this is what I have been using, where the "model" is a singleton class, available as a global variable to all plugins to synchronize and share data. Maybe not quite the exact wording. I was just wondering if there is another means of providing this "model" instead of using an instanced (singleton) class via a global variable? So in your example, the interaction with the DescriptionToolData would write data into the model. And the GeUserArea would read that data from the model. The example I provided isn't making use of a "model" as it already represented too much code just to point out the bug that slipped into R21. There I indeed used a very simplified solution by "sending data around". But an overall "thank you" for bringing up the model-view discussion, as this made me realize I could use an observer pattern in another project of mine which would fix its current poorly chosen design. Daniel
  • LinkBoxList and ProcessBar Cinema-4D GUI Script Example

    2
    1
    2 Votes
    2 Posts
    958 Views
    r_giganteR
    Hi Ashton, thanks for sharing your code. Best wishes for the incoming new year! Riccardo