Beispiel #1
0
 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;
 }
Beispiel #4
0
 private void AddColour(XbimColour colour)
 {
     if (string.IsNullOrEmpty(colour.Name))
     {
         colour.Name = "C" + (ColourMap.Count + 1);
     }
     ColourMap.Add(colour);
 }
Beispiel #5
0
 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 };
     }
 }
Beispiel #7
0
        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);
 }
Beispiel #10
0
 static XbimColour()
 {
     _default = new XbimColour("Default", 1, 1, 1);
 }
Beispiel #11
0
 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);
 }
Beispiel #12
0
 private void AddColour(XbimColour colour)
 {
     if (string.IsNullOrEmpty(colour.Name))
         colour.Name = "C" + (ColourMap.Count + 1);
     ColourMap.Add(colour);
 }
Beispiel #13
0
 public XbimTexture CreateTexture(XbimColour colour)
 {
     ColourMap.Clear();
     AddColour(colour);
     return this;
 }
Beispiel #14
0
        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;
        }
Beispiel #15
0
 /// <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);
 }
Beispiel #16
0
 static XbimColour()
 {
     _default = new XbimColour("Default", 1, 1, 1);
 }
Beispiel #17
0
 public void CreateMaterial(XbimColour colour)
 {
     _material = MaterialFromColour(colour);
 }
Beispiel #18
0
 /// <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();
 }
Beispiel #19
0
 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;
 }
Beispiel #20
0
 public XbimMeshLayer(XbimColour colour)
 {
     Style = XbimTexture.Create(colour);
 }
Beispiel #21
0
 public XbimMeshLayer(XbimColour colour)
 {
     Style = new XbimTexture().CreateTexture(colour);
 }
Beispiel #22
0
 public XbimTexture CreateTexture(XbimColour colour)
 {
     ColourMap.Clear();
     AddColour(colour);
     return(this);
 }