#wfc #c #ffi

sys wfc-rs

绑定到krychu/wfc C库

14个版本 (5个重大更改)

0.6.1 2022年4月26日
0.5.3 2022年4月23日
0.5.2 2022年3月27日

#5 in #wfc

每月下载量47次

MIT许可证

115KB
483

WFC

wfc-rs crate是对krychu/wfc实现Wave Function Collapse的封装。

使用extern函数手动封装了wfc库,并提供了一个小型、更符合Rust风格的封装。

请注意,这是一个早期但可用的版本。

用法

一旦将crate添加到Cargo.toml中

wfc_rs = "0.5"

使用from_vec或from_file创建一个WfcImage

let image = WfcImage::from_file("data/cave.png")?;

这创建了一个可选的NonNull,其中包含指向底层WfcImage结构的指针。这个结构是一个repr(C)结构,与'wfc.h'结构中的'wfc_image'相匹配。

然后从这个图像创建一个Wfc结构以及配置设置

    let mut wfc = Wfc::overlapping(32, 32, image, 3, 3, true, true, true, true)?;

使用这个Wfc,你可以通过'run'运行一个迭代

wfc.run();

然后导出一个输入

wfc.export("output.png");

或获取原始像素数据作为Vec

let bytes = wfc.vec();

依赖