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

    Getting a RayLight from a BaseObject?

    Scheduled Pinned Locked Moved SDK Help
    3 Posts 0 Posters 282 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 28/05/2007 at 04:07, xxxxxxxx wrote:

      User Information:
      Cinema 4D Version:   10 
      Platform:   Windows  ;   
      Language(s) :     C++  ;

      ---------
      Hello there!
      Is there any way to get a RayLight that corresponds to a BaseObject of type Olight or is that only available to a shader plugin?
      The example plugins (cinema4dsdk with all the stuff in it) only uses RayLight in some shading functions.
      I searched the SDK help forum for RayLight, but all I found were some code snippets using GetParameter or something like that. I'm quite new to the C4D SDK, have just started yesterday evening, and I am trying to write a custom scene exporter, which should also be able to export the lights (or an approximation to them fitting in my "file format"), so it would be handy to just have the RayLight instead of having to somehow find out all the constants needed for GetParameter and stuff.
      If there is no way to get a RayLight from a BaseObject of type Olight: Does anyone know where I could look up how to get all the light parameters from the "General" and "Details" tab in C4D?

      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 29/05/2007 at 01:18, xxxxxxxx wrote:

        You can't get a Raylight from a BaseObject.

        To get all the light parameters you have to use the GetParameter function. Here a little example how to get the light's Contrast.

          
        GeData d;  
        if(op->GetParameter(DescLevel(LIGHT_DETAILS_CONTRAST),d,0))  
        {  
             Real brightness = d.GetReal();  
             GePrint(RealToString(brightness));  
        }  
        

        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 29/05/2007 at 02:43, xxxxxxxx wrote:

          Weird.
          After I checked in the SDK docs for something helpful about lights and did come up with nothing, except that GetParameter(...) requires those DescIDs which again require some constants I don't know yet, I just gave AllocRayLight(BaseObject* ) a shot and it seems to work just fine (at least for a BaseObject* with GetType() == Olight, of course) :

          ('bo' is a BaseObject* with GetType() == Olight)
          RayLight* rl = AllocRayLight(bo);
          switch(rl->type)
          {
          //handle different light types
          case RT_LT_OMNI:...
          }

          all the members of 'rl' are what I would expect (tested it with one omni and one area light including falloff).
          The reason why I didn't try that earlier was because I read in the forums that the parameter for AllocRaylight(...) had to be a RayLight anyway.
          I guess the way I do it is not supposed to work then and I'm just lucky it did in my scenes so far?

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