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
    • Unread
    • Recent
    • Tags
    • Users
    • Login

    Reflectance Layer Interface [SOLVED]

    SDK Help
    0
    7
    605
    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
      Helper
      last edited by

      On 11/05/2016 at 16:25, xxxxxxxx wrote:

      User Information:
      Cinema 4D Version:   16 
      Platform:    Mac  ;  
      Language(s) :     C++  ;

      ---------
      Hi, I've been trying to replicate the visual functionality of Reflectance Layers within the Material Editor.  When you drag and drop them you get an orange bar to show an indication of where you are going to drop it, how would I replicate that?

      I have a GeUserArea with a GeClipMap inside of it to allow DragAndDrop and to draw the text for the name when I receive that it's being moused over I redraw it with an bar overlaid on top of it.  But I'm not able to deal with the spacing between elements like Reflectance does, with the orange bar being drawn between elements.

      Dan

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

        On 12/05/2016 at 02:19, xxxxxxxx wrote:

        Hello,

        the reflectance layer GUI is a quite complex custom GUI composed of several elements. The separator you describe is no build in function of any existing GUI element. This separator is created by having user areas between the other GUI elements. Depending on the position of the drag and drop operation these user areas draw an orange rectangle.

        Best wishes,
        Sebastian

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

          On 12/05/2016 at 13:16, xxxxxxxx wrote:

          Thanks for the response, it does look complicated!  I guess my main question is if there is a way to have no space between different GUI elements, there always seems to be a small one no matter what I do, with control over the space I could do what I want I think.   Like between the groups here, I have several subgroups with GeUserAreas but I can't them any closer than this.

          Dan

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

            On 13/05/2016 at 02:49, xxxxxxxx wrote:

            Hello,

            could you share some code that shows how you create this layout?

            Best wishes,
            Sebastian

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

              On 13/05/2016 at 15:29, xxxxxxxx wrote:

              Sure, here you go!

                
              GroupBegin(idParentGroup, BFH_SCALEFIT|BFV_TOP, 1, 0, "",0,0);  
                      
              GroupBorderNoTitle(BORDER_NONE);  
                          
              GroupBorderSpace(0,0,0,0);  
                          
              GroupSpace(0,0);  
              for (Int32 currentarea =0; currentarea<AreaList.GetCount(); currentarea++)  
                {  
                 GroupBegin(idGroup+currentarea, BFH_LEFT|BFV_TOP, 0, 1, "",0,0,15);  
                  
                 GroupBorderNoTitle(BORDER_ACTIVE_1);  
                 GroupSpace(0, 0);  
                 C4DGadget* userarea = AddUserArea(idArea+currentarea, BFH_CENTER | BFV_BOTTOM, 0, 0);  
                 if(userarea == nullptr) return TRUE;  
                      
                AttachUserArea(AreaList[currentarea], userarea);  
                  
                GroupEnd();  
              }  
                
              GroupEnd();  
              

              AreaList is just a BaseArray of GeUserAreas.

              Dan

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

                On 17/05/2016 at 02:15, xxxxxxxx wrote:

                Hello,

                it seems to work fine if you omit that extra group around your user area in your loop. With only one group there is no extra space.

                Best wishes,
                Sebastian

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

                  On 20/05/2016 at 15:59, xxxxxxxx wrote:

                  Thanks!  I had to rework a couple layout things but that did exactly what I needed!

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