KZNodes 0.1.3

KZNodes 0.1.3

测试已测试
Lang语言 Obj-CObjective C
许可 MIT
Released最后发布2017年2月

Krzysztof ZablockiKrzysztof Zabłocki维护。



KZNodes 0.1.3

KZNodes - 像折纸一样简单的编辑器。

观看演示

您想过如何创建一个像Origami一样的编辑器吗?如何在不到100行代码中创建Origami的一个子集呢?

节点连接就像函数式编程,但更直观。

特性

  • 无域相关,可以用于创建以下编辑器
    • 动画
    • 3D图形
    • 图像处理
    • 数据处理
    • 人工智能
    • 您能表达为数据/函数流式传输的任何内容?
  • 套接字有数据类型,您可以指定哪些类受支持,这样您可以避免不支持的连接。
  • 完全原生且无依赖
  • 开箱即用,外观精美
  • 创建新的节点类超简单,想添加一个可以对其输入应用sqrtf的类?只需3行代码。

创建节点类型

将NodeTypes视为ObjC类,它们定义了所有实例的常见行为。您可以按如下方式创建新的节点类

[KZNNodeType registerType:@"sqrtf" inputs:@{ @"Input" : NSNumber.class } outputs:@{ @"Output" : NSNumber.class } processingBlock:^(KZNNode *node, NSDictionary *inputs, NSMutableDictionary *outputs) {
    outputs[@"Output"] = @(sqrtf([inputs[@"Input"] floatValue]));
  }];
  • sqrtf是名称
  • 它有一个名为“Input”的输入套接字,它接受NSNumbers
  • 它有一个名为“Output”的输出套接字,它生成NSNumbers
  • 输出 = sqrtf(输入)

还有一些更高级的创建函数

  1. KZNNodeType withClass 允许您更改用于节点的基类,例如使用带有滑块的节点。
  2. KZNNodeType withBuilder 允许您使用建造者模式代替简化语法。

设置代码块

您还可以添加设置代码块,这将允许您进一步配置新的NodeType实例,例如禁用连续滑块。

节点评估模式

节点默认是懒惰评估的,只有在它们的套接字或连接节点发生变化时才会进行评估。更改将传播到连接,因此如果您在图的开头修改节点,它将传播到所有连接的节点。

如果您标记节点类型以使用连续评估,则在可能的情况下,它会每秒评估60次,例如在示例应用中的时间节点。

内置节点类

KZNNodeWithSlider

KZNNodeWithText

添加新的节点类

很简单

  1. 创建KZNNode的子类
  2. 自由地使用它
  3. 当你注册节点类型时,可以将你的类指定为基础类,并在处理块中引用它。

安装和设置

KZNodes通过CocoaPods分发:可以使用pod 'KZNodes'将它们添加到现有项目,或者克隆此存储库进行玩耍。

路线图 & 贡献

  • 工作空间的序列化。
  • 减少出错。
  • 延迟评估插槽。

欢迎使用Pull-requests。

从我想到发布大约需要18小时,因此代码在1.0发布之前可能会发生变化。

如果您想获得特定的功能,请联系我进行iOS咨询

变更记录

0.1.1

  • 根据the-graph改进了更美观的贝塞尔曲线。

0.1.0

  • 初始发布

许可

KZNodes在MIT许可下可用。有关更多信息,请参阅LICENSE文件。

作者

Krzysztof Zablocki,[email protected]

在推特上关注我。

查看我的博客GitHub个人资料了解更多有趣的内容。