Determining channel type

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

On 11/11/2002 at 16:08, xxxxxxxx wrote:

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

---------
How can I determine what channel my channel shader plugin has been loaded into? In R7, this was passed in PLUGIN_DATA.
Thanks,
Jane

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

On 12/11/2002 at 00:04, xxxxxxxx wrote:

Quote: Originally posted by jane on 11  November 2002
>
> * * *
>
> How can I determine what channel my channel shader plugin has been loaded into? In R7, this was passed in PLUGIN_DATA.
Perhaps this was left out in R8. I couldn't find any other way than this: (Though this should be relatively fast since it's only scanning through at most 13 items.)

    
    
    LONG GetShaderChannel(PluginShader* s)  
    {  
     if (!s) return CHANNEL_ANY;
    
    
    
    
     GeListHead* h = s->GetListHead();  
     if (!h) return CHANNEL_ANY;
    
    
    
    
     Material* m = static_cast<Material*>(h->GetParent());  
     if (!m || m->GetType() != Mmaterial) return CHANNEL_ANY;
    
    
    
    
     for (int c = 0; c < MAXCHANNELS; ++c)  
     {  
      BaseChannel* chn = m->GetChannel(c);  
      if (!chn) continue;
    
    
    
    
      if (chn->GetShader() == s)  
      {  
       return c;  
      }  
     }  
       
     return CHANNEL_ANY;  
    }

I'll ask the programmers...