code: @SuppressWarnings("unchecked")
      public <V3, M4, C, N, Q> C getDiffuseColor(
              AiWrapperProvider<V3, M4, C, N, Q> wrapperProvider) {
          
          Property p = getProperty(PropertyKey.COLOR_DIFFUSE.m_key);
          
          if (null == p || null == p.getData()) {
              Object def = m_defaults.get(PropertyKey.COLOR_DIFFUSE);
              if (def == null) {
                  return (C) Jassimp.wrapColor4(1.0f, 1.0f, 1.0f, 1.0f);
              }
              
              return (C) def;
          }
          
          return (C) p.getData();
      }
docs: Returns the diffuse color.<p>
  
  If missing, defaults to opaque white (1.0, 1.0, 1.0, 1.0)<p>
  
  This method is part of the wrapped API (see {@link AiWrapperProvider}
  for details on wrappers).<p>
  
  The built-in behavior is to return a {@link AiVector}.
  
  @param wrapperProvider the wrapper provider (used for type inference)
  @return the diffuse color