public SurfaceStyling(IEnumerable <SurfaceStyle> styles) { foreach (var style in styles) { switch (style.Side) { case IfcSurfaceSide.POSITIVE: FrontFaceStyle = style; break; case IfcSurfaceSide.NEGATIVE: BackFaceStyle = style; break; case IfcSurfaceSide.BOTH: FrontFaceStyle = style; BackFaceStyle = style; break; default: throw new ArgumentOutOfRangeException(); } } }
static SurfaceStyle() { NullSurfaceStyle = new SurfaceStyle(); }
/// <summary> /// returns the back face if defined or the default /// </summary> /// <param name="defaultStyle"></param> /// <returns></returns> public SurfaceStyle BackOrDefault(SurfaceStyle defaultStyle = null) { return(BackFaceStyle ?? defaultStyle); }
/// <summary> /// Returns the front face if not nul or the back face if not null or the default /// </summary> /// <param name="defaultStyle"></param> /// <returns></returns> public SurfaceStyle FrontBackOrDefault(SurfaceStyle defaultStyle = null) { return(FrontFaceStyle ?? BackFaceStyle ?? defaultStyle); }
/// <summary> /// Sets the front and back material to the style /// </summary> /// <param name="frontFaceStyle"></param> public SurfaceStyling(SurfaceStyle frontFaceStyle) { FrontFaceStyle = frontFaceStyle; BackFaceStyle = frontFaceStyle; }