public override void AddDefaultProperty(PropertyCollector properties, GenerationMode generationMode) { if (!generationMode.IsPreview()) return; var matOwner = owner as AbstractMaterialNode; if (matOwner == null) throw new Exception(string.Format("Slot {0} either has no owner, or the owner is not a {1}", this, typeof(AbstractMaterialNode))); AbstractShaderProperty property; switch (concreteValueType) { case ConcreteSlotValueType.Matrix4: property = new Matrix4ShaderProperty(); break; case ConcreteSlotValueType.Matrix3: property = new Matrix3ShaderProperty(); break; case ConcreteSlotValueType.Matrix2: property = new Matrix2ShaderProperty(); break; default: throw new ArgumentOutOfRangeException(); } property.overrideReferenceName = matOwner.GetVariableNameForSlot(id); property.generatePropertyBlock = false; properties.AddShaderProperty(property); }
public override IShaderProperty Copy() { var copied = new Matrix3ShaderProperty(); copied.displayName = displayName; copied.value = value; return(copied); }
public override void AddDefaultProperty(PropertyCollector properties, GenerationMode generationMode) { if (!generationMode.IsPreview()) { return; } var matOwner = owner as AbstractMaterialNode; if (matOwner == null) { throw new Exception(string.Format("Slot {0} either has no owner, or the owner is not a {1}", this, typeof(AbstractMaterialNode))); } var property = new Matrix3ShaderProperty() { overrideReferenceName = matOwner.GetVariableNameForSlot(id), generatePropertyBlock = false, value = value }; properties.AddShaderProperty(property); }