public virtual SearcherFilter GetEdgeSearcherFilter(IEdgeModel edgeModel) { Type it = edgeModel.InputPortModel.DataTypeHandle.Resolve(m_Stencil); IPortModel opm = edgeModel.OutputPortModel; TypeHandle oth = opm.DataTypeHandle == TypeHandle.ThisType ? m_Stencil.GetThisType() : opm.DataTypeHandle; Type ot = oth.Resolve(m_Stencil); return(new SearcherFilter(SearcherContext.Graph) .WithVisualScriptingNodesExcept(new[] { typeof(ThisNodeModel) }) // TODO : We should be able to determine if a VSNode type has input port instead of doing this .WithUnaryOperators(ot, opm.NodeModel is IConstantNodeModel) .WithBinaryOperators(ot)); }
public virtual SearcherFilter GetOutputToStackSearcherFilter(IPortModel portModel, IStackModel stackModel) { // TODO : Need to be handled by TypeHandle.Resolve TypeHandle typeHandle = portModel.DataTypeHandle == TypeHandle.ThisType ? m_Stencil.GetThisType() : portModel.DataTypeHandle; Type type = typeHandle.Resolve(m_Stencil); GraphAssetModel assetModel = portModel.AssetModel as GraphAssetModel; return(new SearcherFilter(SearcherContext.Stack) .WithVisualScriptingNodes() .WithUnaryOperators(type) .WithGraphAsset(assetModel)); }
public SearcherFilter GetOutputToGraphSearcherFilter(IPortModel portModel) { // TODO : Need to be handled by TypeHandle.Resolve TypeHandle typeHandle = portModel.DataTypeHandle == TypeHandle.ThisType ? m_Stencil.GetThisType() : portModel.DataTypeHandle; Type type = typeHandle.Resolve(m_Stencil); VSGraphAssetModel assetModel = portModel.AssetModel as VSGraphAssetModel; return(new SearcherFilter(SearcherContext.Graph) .WithVisualScriptingNodes() .WithUnaryOperators(type, portModel.NodeModel is IConstantNodeModel) .WithBinaryOperators(type) .WithGraphAsset(assetModel)); }
public virtual Type GetConstantNodeModelType(TypeHandle typeHandle) { if (s_TypeToConstantNodeModelTypeCache == null) { s_TypeToConstantNodeModelTypeCache = new Dictionary <TypeHandle, Type> { { typeof(Boolean).GenerateTypeHandle(this), typeof(BooleanConstantNodeModel) }, { typeof(Color).GenerateTypeHandle(this), typeof(ColorConstantModel) }, { typeof(AnimationCurve).GenerateTypeHandle(this), typeof(CurveConstantNodeModel) }, { typeof(Double).GenerateTypeHandle(this), typeof(DoubleConstantModel) }, { typeof(Unknown).GenerateTypeHandle(this), typeof(EnumConstantNodeModel) }, { typeof(Single).GenerateTypeHandle(this), typeof(FloatConstantModel) }, { typeof(InputName).GenerateTypeHandle(this), typeof(InputConstantModel) }, { typeof(Int32).GenerateTypeHandle(this), typeof(IntConstantModel) }, { typeof(LayerName).GenerateTypeHandle(this), typeof(LayerConstantModel) }, { typeof(LayerMask).GenerateTypeHandle(this), typeof(LayerMaskConstantModel) }, { typeof(Object).GenerateTypeHandle(this), typeof(ObjectConstantModel) }, { typeof(Quaternion).GenerateTypeHandle(this), typeof(QuaternionConstantModel) }, { typeof(String).GenerateTypeHandle(this), typeof(StringConstantModel) }, { typeof(TagName).GenerateTypeHandle(this), typeof(TagConstantModel) }, { typeof(Vector2).GenerateTypeHandle(this), typeof(Vector2ConstantModel) }, { typeof(Vector3).GenerateTypeHandle(this), typeof(Vector3ConstantModel) }, { typeof(Vector4).GenerateTypeHandle(this), typeof(Vector4ConstantModel) }, { typeof(SceneAsset).GenerateTypeHandle(this), typeof(ConstantSceneAssetNodeModel) }, }; } if (s_TypeToConstantNodeModelTypeCache.TryGetValue(typeHandle, out var result)) { return(result); } Type t = typeHandle.Resolve(this); if (t.IsEnum || t == typeof(Enum)) { return(typeof(EnumConstantNodeModel)); } return(null); }
public static TypeSyntax ToTypeSyntax(this TypeHandle handle, Stencil stencil) { return(handle.Resolve(stencil).ToTypeSyntax()); }
public static ITypeMetadata GetMetadata(this TypeHandle th, ITypeMetadataResolver resolver) { return(resolver.Resolve(th)); }
public static ITypeMetadata GetMetadata(this TypeHandle th, Stencil stencil) { return(th.GetMetadata(stencil.GraphContext.TypeMetadataResolver)); }
public static Type Resolve(this TypeHandle th, CSharpTypeSerializer serializer) { return(serializer.ResolveType(th)); }
public static Type Resolve(this TypeHandle th, Stencil stencil) { return(th.Resolve(stencil.GraphContext.CSharpTypeSerializer)); }
public Type ResolveType(TypeHandle th) { return(Deserialize(th.Identification)); }