/// <summary> /// Override this function to provide information about which texture is used for /// the standard (ie - defined in ON_Texture) texture channels. /// </summary> /// <param name="slot">An valid slot.</param> /// <returns>The texture used for the channel.</returns> public virtual string TextureChildSlotName(StandardChildSlots slot) { if (IsNativeWrapper()) { StringIds iString = StringIds.DiffuseChildSlotName; switch (slot) { case StandardChildSlots.Diffuse: iString = StringIds.DiffuseChildSlotName; break; case StandardChildSlots.Transparency: iString = StringIds.TransparencyChildSlotName; break; case StandardChildSlots.Bump: iString = StringIds.BumpChildSlotName; break; case StandardChildSlots.Environment: iString = StringIds.EnvironmentChildSlotName; break; } return(GetString(iString)); } using (Rhino.Runtime.StringHolder sh = new Rhino.Runtime.StringHolder()) { IntPtr pString = sh.NonConstPointer(); UnsafeNativeMethods.Rdk_RenderMaterial_CallTextureChildSlotNameBase(ConstPointer(), pString, (int)slot); return(sh.ToString()); } }
/// <summary> /// Internal method used to get string values from the C++ SDK /// </summary> /// <param name="which">Id of string value to get</param> /// <returns>Returns the requested string value.</returns> internal string GetString(StringIds which) { IntPtr pConstThis = ConstPointer(); using (Runtime.StringHolder sh = new Runtime.StringHolder()) { IntPtr pString = sh.NonConstPointer(); UnsafeNativeMethods.Rdk_RenderContent_GetString(pConstThis, pString, (int)which); return sh.ToString(); } }