Material Channels on/off missing in Data



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

    On 21/09/2003 at 09:53, xxxxxxxx wrote:

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

    ---------
    Hi,

    I'm trying to read the on/off settings (MATERIAL_USE_* ) of the material channels from a standard material. However, these are missing in the BaseContainer, while other settings of the material such as MATERIAL_ENVIRONMENT_EXCLUSIVE are present!?

    I've tried the following on a scene with a single standard material:

      
    Bool MyDialog::CoreMessage(LONG id, const BaseContainer& msg)  
    {  
         switch(id)  
         {  
         case EVMSG_CHANGE:  
         {  
              BaseContainer* bc = GetActiveDocument() -> GetFirstMaterial() - >GetDataInstance();  
              Bool a = bc->GetBool(MATERIAL_USE_COLOR);  
              LONG resa = bc->FindIndex(MATERIAL_USE_COLOR);  
              Bool b = bc->GetBool(MATERIAL_ENVIRONMENT_EXCLUSIVE);  
              LONG resb = bc->FindIndex(MATERIAL_ENVIRONMENT_EXCLUSIVE);  
              // and so on  
         }  
    // and so on  
    

    resa is always NOTOK, resb is always != NOTOK, and only b correctly reflects the adjustments I make in the attribute editor.

    How can I get at the state of the check boxes of the material's first parameter page?

    Thanks in advance.

    Jörn



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

    On 23/09/2003 at 23:46, xxxxxxxx wrote:

    It's some days later, but I still didn't find out ...

    Jörn



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

    On 24/09/2003 at 09:47, xxxxxxxx wrote:

    this data is no longer available in this way.
    i did it something like this
    i f d is false the then this channel is not in use (unchecked)

        
        
        
        
        for (LONG channel=0;channel<MAXCHANNELS;channel++)  
         {
        
        
        
        
          mat->GetParameter(DescID(MATERIAL_USE_COLOR+channel), d, NULL);  
          if (d==false) continue;
        
        
        
        
         
        
        
        
        
         
        
        
        
    


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

    On 25/09/2003 at 01:20, xxxxxxxx wrote:

    Great, I'll try that!

    Jörn


Log in to reply