private void AddLighting(IfcSurfaceStyleLighting lighting) { DiffuseReflectionColour = new XbimColour(lighting.DiffuseReflectionColour); DiffuseTransmissionColour = new XbimColour(lighting.DiffuseTransmissionColour); TransmissionColour = new XbimColour(lighting.TransmissionColour); ReflectanceColour = new XbimColour(lighting.ReflectanceColour); }
public void SetFederationEnvironment(XbimReferencedModel refModel) { var federationColours = new XbimColourMap(StandardColourMaps.Federation); var key = refModel.DocumentInformation.DocumentOwner.RoleName(); _colour = federationColours[key]; }
private static WpfMeshGeometry3D PrepareMesh(XbimColour col) { var matRed = new WpfMaterial(); matRed.CreateMaterial(col); var mg = new WpfMeshGeometry3D(matRed, matRed); return mg; }
private void AddColour(XbimColour colour) { if (string.IsNullOrEmpty(colour.Name)) { colour.Name = "C" + (ColourMap.Count + 1); } ColourMap.Add(colour); }
private Material MaterialFromColour(XbimColour colour) { _description = "Colour " + colour; Color col = Color.FromScRgb(colour.Alpha, colour.Red, colour.Green, colour.Blue); Brush brush = new SolidColorBrush(col); if (colour.SpecularFactor > 0) return new SpecularMaterial(brush, colour.SpecularFactor * 100); if (colour.ReflectionFactor > 0) return new EmissiveMaterial(brush); return new DiffuseMaterial(brush); }
public XbimMeshLayer<WpfMeshGeometry3D, WpfMaterial> GetLayer(string layerKey, XbimModel model, XbimScene<WpfMeshGeometry3D, WpfMaterial> scene) { if (layerKey == "Even") { XbimColour colour = new XbimColour("Red", 1.0, 0.0, 0.0, 1); return new XbimMeshLayer<WpfMeshGeometry3D, WpfMaterial>(model, colour) { Name = layerKey }; } else { XbimColour colour = new XbimColour("Green", 0.0, 1.0, 0.0, 1); return new XbimMeshLayer<WpfMeshGeometry3D, WpfMaterial>(model, colour) { Name = layerKey }; } }
public override bool Equals(object obj) { XbimColour col = obj as XbimColour; if (col == null) { return(false); } return(col.Red == Red && col.Green == Green && col.Blue == Blue && col.Alpha == Alpha && col.DiffuseFactor == DiffuseFactor && col.TransmissionFactor == TransmissionFactor && col.DiffuseTransmissionFactor == DiffuseTransmissionFactor && col.ReflectionFactor == ReflectionFactor && col.SpecularFactor == SpecularFactor); }
public XbimMeshLayer(IModel m, XbimColour colour, XbimColourMap subCategoryColourMap) : this(m, colour) { _layerColourMap = subCategoryColourMap; }
/// <summary> /// Create a new layer that will display meshes in the specified colour /// If the mesh geometry item has a style specified in the IFC definition sub layers will be created for each style /// </summary> /// <param name="colour"></param> public XbimMeshLayer(IModel m, XbimColour colour) { Model = m; Style = XbimTexture.Create(colour); }
static XbimColour() { _default = new XbimColour("Default", 1, 1, 1); }
private void AddLighting(IfcSurfaceStyleLighting lighting) { DiffuseReflectionColour = new XbimColour(lighting.DiffuseReflectionColour); DiffuseTransmissionColour = new XbimColour(lighting.DiffuseTransmissionColour); TransmissionColour = new XbimColour(lighting.TransmissionColour); ReflectanceColour = new XbimColour(lighting.ReflectanceColour); }
private void AddColour(XbimColour colour) { if (string.IsNullOrEmpty(colour.Name)) colour.Name = "C" + (ColourMap.Count + 1); ColourMap.Add(colour); }
public XbimTexture CreateTexture(XbimColour colour) { ColourMap.Clear(); AddColour(colour); return this; }
private BaseMaterial CreateMaterial(XbimColour colour) { string name = colour.Name; //we need a name so make from values if (string.IsNullOrEmpty(name)) { name = colour.Red.ToString() + "," + colour.Green.ToString() + "," + colour.Blue.ToString() + "," + colour.Alpha.ToString() + "," + colour.SpecularFactor.ToString() + "," + colour.ReflectionFactor.ToString() + "," + colour.DiffuseFactor.ToString(); } _Description = "Colour " + name; Int32 id = 0; BaseMaterial mat = new BaseMaterial { Name = name, MaterialID = id, Red = colour.Red, Green = colour.Green, Blue = colour.Blue, Alpha = colour.Alpha }; if (colour.SpecularFactor > 0) mat.Specular = colour.SpecularFactor * 100; //not sure on 100, copy from WpfMaterial class so might need adjusting if (colour.ReflectionFactor > 0) mat.Emit = colour.ReflectionFactor; if (colour.DiffuseFactor > 0) mat.Diffusion = colour.DiffuseFactor; return mat; }
/// <summary> /// Create a new layer that will display meshes in the specified colour /// If the mesh geometry item has a style specified in the IFC definition sub layers will be created for each style /// </summary> /// <param name="colour"></param> public XbimMeshLayer(XbimModel m, XbimColour colour) { Model = m; Style = new XbimTexture().CreateTexture(colour); }
static XbimColour() { _default = new XbimColour("Default", 1, 1, 1); }
public void CreateMaterial(XbimColour colour) { _material = MaterialFromColour(colour); }
/// <summary> /// See if existing RGBA colour exists in Materials /// </summary> /// <param name="colour">XbimColour</param> /// <returns>Material</returns> private BaseMaterial RGBAExists(XbimColour colour) { return Materials.Where(c => DoubleFuzzEq(c.Red, colour.Red) && DoubleFuzzEq(c.Blue, colour.Blue) && DoubleFuzzEq(c.Green, colour.Green) && DoubleFuzzEq(c.Alpha, colour.Alpha)).FirstOrDefault(); }
private BaseMaterial EditMaterial(BaseMaterial mat, XbimColour colour) { if (colour.SpecularFactor > 0) mat.Specular = colour.SpecularFactor * 100; //not sure on 100, copy from WpfMaterial class so might need adjusting if (colour.ReflectionFactor > 0) mat.Emit = colour.ReflectionFactor; if (colour.DiffuseFactor > 0) mat.Diffusion = colour.DiffuseFactor; return mat; }
public XbimMeshLayer(XbimColour colour) { Style = XbimTexture.Create(colour); }
public XbimMeshLayer(XbimColour colour) { Style = new XbimTexture().CreateTexture(colour); }
public XbimTexture CreateTexture(XbimColour colour) { ColourMap.Clear(); AddColour(colour); return(this); }