public SockProvider(ISockRepository sockRepository, IMaterialProvider materialProvider, IThicknessProvider thicknessProvider, ISizeProvider sizeProvider) { _sockRepository = sockRepository; _materialProvider = materialProvider; _thicknessProvider = thicknessProvider; _sizeProvider = sizeProvider; }
public void SetReferencedData(Table table, IMaterialProvider materialProvider, ITextureProvider textureProvider, Dictionary <string, IMainComponent> components) { var updatedComponents = _mainComponent.SetReferencedData(_item.Data, table, materialProvider, textureProvider, components); _updatedComponents.AddRange(updatedComponents); UpdateTransforms(); }
public RayEngineScene3(SceneGeometryInfo geometry, IMaterialProvider materials, ILight[] lights = null) { this.MaterialProvider = materials; this.SceneGeometry = geometry; Triangles = new List<TriangleDataInfo>(); Meshes = new List<ITriangleMesh>(); meshTriangleMap = new Dictionary<int, ITriangleMesh>(); this.Lights = lights; this.BuildSceneData(); }
public void SetReferencedData(Table table, IMaterialProvider materialProvider, ITextureProvider textureProvider, Dictionary <string, IMainComponent> components) { var playfieldComp = GameObject.GetComponent <PlayfieldComponent>(); if (playfieldComp) { var updatedComponents = playfieldComp.SetReferencedData(_primitive.Data, table, materialProvider, textureProvider); _updatedComponents.AddRange(updatedComponents); } }
public static Material ToUnityMaterial(this PbrMaterial vpMat, IMaterialProvider materialProvider, Material textureMaterial) { if (materialProvider.HasMaterial(vpMat)) { return(materialProvider.GetMaterial(vpMat)); } var unityMaterial = RenderPipeline.Current.MaterialConverter.MergeMaterials(vpMat, textureMaterial); materialProvider.SaveMaterial(vpMat, unityMaterial); return(unityMaterial); }
public static Material ToUnityMaterial(this PbrMaterial vpMat, IMaterialProvider materialProvider, ITextureProvider textureProvider, StringBuilder debug = null) { if (materialProvider.HasMaterial(vpMat)) { return(materialProvider.GetMaterial(vpMat)); } var unityMaterial = RenderPipeline.Current.MaterialConverter.CreateMaterial(vpMat, textureProvider, debug); materialProvider.SaveMaterial(vpMat, unityMaterial); return(unityMaterial); }
public void Set(FileTableContainer tableContainer, string fileName, IMaterialProvider materialProvider, ITextureProvider textureProvider) { _tableContainer = tableContainer; _materialProvider = materialProvider; _textureProvider = textureProvider; var types = typeof(Patcher).Assembly.GetTypes(); foreach (var type in types) { var classMatchers = type .GetCustomAttributes(typeof(TableMatchAttribute), false) .Select(a => a as TableMatchAttribute) .Where(a => a != null) .Where(a => a.Matches(_tableContainer, fileName)) .ToArray(); if (classMatchers.Length > 0) { _patchers.Add(Activator.CreateInstance(type)); } } Logger.Info("Table will be patched using the following patchers: [ {0} ]", string.Join(", ", _patchers.Select(o => o.GetType().Name))); }
public void Init(RayEngineScene scene, IMaterialProvider materialProvider) { var sceneModel = scene; meshes = new List<TriangleMesh>(); meshes.AddRange(scene.Meshes); this.sceneVertices = sceneModel.Vertices; AABB sceneBound = sceneVertices.Select(i => new AABB(i)).Aggregate((b1, b2) => b1.Union(b2)); var ltriangles = scene.Triangles; Comparison<Triangle> tc = (t1, t2) => CompareTriangles(t1, t2, (Axis)sceneBound.MaximumExtent() // Axis.PLANE_Z ); ltriangles.Sort(tc); this.materialProvider = materialProvider; Tracer.TraceLine("Building tree "); this.BuildTree(ltriangles, 0, ltriangles.Count); Tracer.TraceLine("BVH builded {0} nodes {1} object in leaf", bvhNodesCount, PrimitivesInNode); Tracer.TraceLine("Flattening tree..."); this.triangles = ltriangles.ToArray(); FlattenTree(); Tracer.TraceLine("Complete"); }
public IEnumerable <MonoBehaviour> SetReferencedData(PrimitiveData primitiveData, Table table, IMaterialProvider materialProvider, ITextureProvider textureProvider) { var mf = GetComponent <MeshFilter>(); var playfieldMeshComponent = GetComponent <PlayfieldMeshComponent>(); if (!mf || !playfieldMeshComponent) { return(Array.Empty <MonoBehaviour>()); } var updatedComponents = new List <MonoBehaviour> { this }; var mg = new PrimitiveMeshGenerator(primitiveData); var mesh = mg .GetTransformedMesh(table?.TableHeight ?? 0f, primitiveData.Mesh, Origin.Original, false) .Transform(mg.TransformationMatrix(PlayfieldHeight)); // apply transformation to mesh, because this is the playfield var material = new PbrMaterial( table.GetMaterial(_playfieldMaterial), table.GetTexture(_playfieldImage) ); MeshComponent <PrimitiveData, PrimitiveComponent> .CreateMesh(gameObject, mesh, material, "playfield_mesh", textureProvider, materialProvider); playfieldMeshComponent.AutoGenerate = false; updatedComponents.Add(playfieldMeshComponent); return(updatedComponents); }
public override IEnumerable <MonoBehaviour> SetReferencedData(TableData data, Table table, IMaterialProvider materialProvider, ITextureProvider textureProvider, Dictionary <string, IMainComponent> components) { var meshComponent = GetComponentInChildren <PlayfieldMeshComponent>(); if (meshComponent && meshComponent.AutoGenerate) { meshComponent.CreateMesh(data, table, textureProvider, materialProvider); } return(Array.Empty <MonoBehaviour>()); }
public override IEnumerable <MonoBehaviour> SetReferencedData(HitTargetData data, Table table, IMaterialProvider materialProvider, ITextureProvider textureProvider, Dictionary <string, IMainComponent> components) { var colliderComponent = GetComponent <HitTargetColliderComponent>(); if (colliderComponent) { colliderComponent.PhysicsMaterial = materialProvider.GetPhysicsMaterial(data.PhysicsMaterial); } // visibility SetEnabled <Renderer>(data.IsVisible); return(Array.Empty <MonoBehaviour>()); }
public void AddToList(List <Sprite> sprites, IMaterialProvider provider) { Material = provider.GetMaterial(Tag); sprites.Add(this); }
public MeshBuilder(SeparateStreamsMesh streamMesh, IMaterialProvider materialProvider) { this.streamMesh = streamMesh; this.materialProvider = materialProvider; }
/// <summary> /// Constructor /// </summary> /// <param name="_sender"></param> public ShaderAssignmentEventArgs(IMaterialProvider _sender) { MaterialProvider = _sender; }
/// <summary> /// Trigger the ShaderAssignment event to select materials in material editor. /// Can be called for any shape/material provider so this class is obviously not the ideal place for this global function. /// </summary> /// <param name="sender"></param> /// <param name="provider"></param> public static void SelectMaterialsFor(object sender, IMaterialProvider provider) { if (ShaderAssignment != null) ShaderAssignment(sender, new ShaderAssignmentEventArgs(provider)); }
public void CreateMesh(TData data, Table table, ITextureProvider texProvider, IMaterialProvider matProvider) { CreateMesh(gameObject, GetMesh(data), GetMaterial(data, table), data.GetName(), texProvider, matProvider); }
public static void CreateMesh(GameObject gameObject, Mesh m, PbrMaterial material, string name, ITextureProvider texProvider, IMaterialProvider matProvider) { if (m == null) { return; } var mesh = m.ToUnityMesh($"{name} Mesh ({gameObject.name})"); // apply mesh to game object var mf = gameObject.GetComponent <MeshFilter>(); mf.sharedMesh = mesh; // apply renderer and material if (m.AnimationFrames.Count > 0) // if number of animations frames are 1, the blend vertices are in the uvs are handle by the lerp shader. { var smr = gameObject.AddComponent <SkinnedMeshRenderer>(); smr.sharedMaterial = material.ToUnityMaterial(matProvider, texProvider); smr.sharedMesh = mesh; smr.SetBlendShapeWeight(0, m.AnimationDefaultPosition); } else { var mr = gameObject.AddComponent <MeshRenderer>(); mr.sharedMaterial = material.ToUnityMaterial(matProvider, texProvider); } }
public override IEnumerable <MonoBehaviour> SetReferencedData(TableData data, Table table, IMaterialProvider materialProvider, ITextureProvider textureProvider, Dictionary <string, IMainComponent> components) { return(Array.Empty <MonoBehaviour>()); }
/// <summary> /// Constructor /// </summary> /// <param name="_sender"></param> public ShaderAssignmentEventArgs(EntityShape _sender) { MaterialProvider = _sender.MaterialProvider; }
public void Init(SceneGeometryInfo scene, IMaterialProvider materialProvider, TriangleMesh[] geometry) { this.sceneGeometry = scene; this.geometry = geometry; }