• String compare

    Cinema 4D SDK
    7
    0 Votes
    7 Posts
    874 Views
    C4DSC
    @m_magalhaes Thanks for bringing this up, as it seems I had overlooked it on multiple occasions. Which also points me to the fact that the R19 SDK did have a String::operator == () Also overlooked that all those years. I need better glasses.
  • Layers with the same name?

    Cinema 4D SDK r20 python
    10
    0 Votes
    10 Posts
    1k Views
    M
    Since R21 sp1 issue regarding ByteSeq not being able to be printed in the Python Console is resolved. Cheers, Maxime.
  • Best way to get Enable status of an object?

    Cinema 4D SDK r20 python
    3
    1
    0 Votes
    3 Posts
    384 Views
    P
    Sorry I was not clear enough. Your answer (polygon object is "enabled" by definition) triggered me and now I understand. Thanks and my best wishes for a great 2020 for you, your family and your Maxon family. -Pim
  • Communication between DescriptionTool and GeUserArea

    General Talk
    4
    0 Votes
    4 Posts
    806 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
  • GeUserArea lag in R21 versus R20

    Cinema 4D SDK r21 r20 c++
    8
    0 Votes
    8 Posts
    1k Views
    M
    Yes your code could be optimized but we agree with you here this is not really the point, a R20 code is expected to have the same performance with R21 and here this is not the case. And @C4DS I agree using GeIsMainThread() == false I would say partially fix the issue (sometimes it works as R20, sometimes not) We keep investigating it. Cheers, Maxime.
  • Multiple animation import

    Cinema 4D SDK python r20 r21
    9
    2
    0 Votes
    9 Posts
    2k Views
    S
    @kbar @m_adam Thanks for the help lads, the markers were already added thanks to Kent suggestion in his previous reply. Now the only things left are a little "GlTF-fighting", and some more polishing, packaging and testing before updating the plugin with a - hopefully - nice animation support ! I'll let you know when that's done (probably not before 2020 though ). Cheers, Loïc
  • Reverse iterators, how to use them?

    Cinema 4D SDK r21 r20 c++
    8
    0 Votes
    8 Posts
    827 Views
    C4DSC
    @m_adam said in Reverse iterators, how to use them?: Hi @C4DS Here the message from the development team which confirms what I said to you previously. Hi Maxime, I didn't doubt what you said earlier. I only wanted to point out that it wasn't clear from reading the documentation which collection could be used with reverse iterators. It's nice mentioning in the documentation about RBegin/REnd, Range based loops, etc ... but not everyone looks into the collection implementation to see which types do have RBegin/REnd or are range based, ... HashMap doesn’t support -- so you can’t use a reverse iterator for that. It wouldn’t make sense anyway because HashMap iteration is unordered. Having used std::map some might expect HashMap to be ordered, but it isn't mentioned anywhere it isn't. But the point has been made, and it is now clear how to use reverse iterator. Topic well be closed as "solved".
  • Attach XPresso Graph to GUI via Python

    Cinema 4D SDK
    9
    1
    0 Votes
    9 Posts
    2k Views
    DunhouD
    @ashton_fcs_plugindev That is so cool , Is it finish yet? I am new to GeUserArea too , That's a dreamly example to learn GeUserArea.
  • 0 Votes
    4 Posts
    529 Views
    ManuelM
    Hello Sorry for the delay, Christmas time didn't helped. I've opened a bug entry for that issue. I'll be back when i'll have more information. I've added the "Bug report" tag to this thread Cheers, Manuel
  • Strange crashes in R20 & R21

    Cinema 4D SDK c++ r21 r20 macos
    5
    0 Votes
    5 Posts
    1k Views
    r_giganteR
    Thanks for the update Frank. Looking at your "resolutions" I think that the actions you took were responsible, in the first case, to clean the existing derived data for the R20 project, whilst in the second, to refresh the DerivedData subfolder where the newly re-created R21 project was supposed to store intermediate files. Please keep us updated and for the mean time I'm going to set this thread as solved. Cheers
  • Get CustomGUI Data in python

    Cinema 4D SDK python c++ r20 sdk
    9
    0 Votes
    9 Posts
    2k Views
    N
    Hello Sebastian, I now understand what the difference is, thank you very much! With the customdata_customgui example file I actually made both a GUI and a custom DataType. So I only needed to change my resource file and modifiy my data code a bit! Best Regards, Florian
  • 0 Votes
    9 Posts
    1k Views
    S
    @m_magalhaes Hello, thank you very much for your inspiration. You've been very helpful. There is no need to overwrite TranslateDescID(), only two macros HandleDescGetVector and HandleDescSetVector can realize my idea. Thanks again! Cheers, Sean
  • UserData Insert New Data

    Moved Cinema 4D SDK
    4
    1
    0 Votes
    4 Posts
    642 Views
    G
    Hey Guys! I think I figured it out! Will resoond if there's any questions! Cheers! MattG
  • TreeView: c4d.DRAGTYPE_FILES

    Cinema 4D SDK r20 python
    10
    0 Votes
    10 Posts
    2k Views
    M
    Hello Maxime, thanks for that detailed answer. Much appreciated. I see, drawing slows down things massively. (3minutes vs. a few seconds) Bad luck for me then. But it still helped me though, I'm now going for another approach. (The GUI part was just for convenience, so everything is fine) Thank you and cheers, Robert
  • Output all renderpaths

    Cinema 4D SDK r20 r21 windows python
    3
    1 Votes
    3 Posts
    582 Views
    B
    Thanks Maxime! In the mean time I will cycle through takes, AOVs and Frames manually to get the paths.
  • Disable default Right-Click Menu

    Cinema 4D SDK python r19 r20 r21
    9
    0 Votes
    9 Posts
    2k Views
    U
    @m_adam Thanks! Thats a perfect explanation that solves many of my issues - even in some of my other Plugins. I am sorry, I did in fact refer to c4d freezing when I said crashing. Sorry for the confusion.
  • Catch other object's delete/undo

    Cinema 4D SDK c++ r19 r20 r21
    5
    0 Votes
    5 Posts
    912 Views
    rsodreR
    @m_adam , AddEventNotification was exactly what I needed. I created a notification to NOTIFY_EVENT_UNDO, and then add my object to it. Now if I delete anything from my object after a polygon is deleted, it will be restored with Undo. Thanks! case MSG_NOTIFY_EVENT: { CHECK_BREAK( data != nullptr ); const auto eventData = static_cast<NotifyEventData*>( data ); if( eventData->eventid == NOTIFY_EVENT_UNDO ) { NotifyEventMsg* notifyMessage = static_cast<NotifyEventMsg*>( eventData->event_data ); CHECK_BREAK( notifyMessage != nullptr ); if( notifyMessage->msg_id == Int32( UNDOTYPE_DELETE ) ) { eventData->doc->AddUndo( UNDOTYPE_CHANGE, Get() ); } } break; }
  • Inconsistent Matrix Behavior

    Cinema 4D SDK r20 c++
    13
    1
    0 Votes
    13 Posts
    2k Views
    J
    Thanks for the response. I changed my code to match the example you gave and it seems like that fixes the immediate problem I was running into. It will take some tests to verify if this covers all of the circumstances that I need it to. I appreciate the help. John Thomas
  • 0 Votes
    5 Posts
    932 Views
    B
    Thanks! I'll try that.
  • Dynamic VertexMap

    Cinema 4D SDK python sdk r20
    6
    0 Votes
    6 Posts
    1k Views
    N
    Hello Maxime, thanks for your answer! Its too bad that I can't do it without some hacky way, but thanks for your code snipped and example. I'll mark this thread as solved, so thanks! Best Regards, Florian