- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是一个关于 sebcrozet/kiss3d(用 Rust 编写的游戏的图形包)的具体问题:如何清除“场景”?
我可以通过 window.add_mesh()
和类似的方法向场景添加对象,似乎我可以通过 windows.remove_node()
删除特定对象,但是如何移除场景中的所有对象(例如开始一个新场景)?
我想我可以保留场景中所有对象的矢量,然后迭代该矢量以移除对象,但这不是必需的。
编辑:这里是一些重现错误的代码,摘 self 的代码。
use kiss3d::resource::Mesh;
use kiss3d::window::Window;
use na::Point3;
use na::Vector3;
use rand::Rng;
use std::cell::RefCell;
use std::rc::Rc;
extern crate kiss3d;
extern crate nalgebra as na;
extern crate rand;
fn main() {
let mut window = Window::new("Test");
const FRAMES_PER: u16 = 100;
let mut frame_count = FRAMES_PER;
let mut rng = rand::thread_rng();
window.set_point_size(5.0);
while window.render() {
frame_count += 1;
if frame_count > FRAMES_PER {
window
.scene_mut()
.apply_to_scene_nodes_mut(&mut |n| n.unlink());
let mut vertexes: Vec<Point3<f32>> = vec![];
let mut indexes: Vec<Point3<u16>> = vec![];
vertexes.push(Point3::new(
rng.gen_range(-500.0, 500.0),
rng.gen_range(-500.0, 500.0),
400.0,
));
vertexes.push(Point3::new(
rng.gen_range(-500.0, 500.0),
rng.gen_range(-500.0, 500.0),
400.0,
));
vertexes.push(Point3::new(
rng.gen_range(-500.0, 500.0),
rng.gen_range(-500.0, 500.0),
400.0,
));
indexes.push(Point3::new(0, 1, 2));
let mesh = Rc::new(RefCell::new(Mesh::new(
vertexes, indexes, None, None, false,
)));
let mut c = window.add_mesh(mesh, Vector3::new(1.0, 1.0, 1.0));
c.set_color(1.0, 0.0, 1.0);
c.enable_backface_culling(false);
frame_count = 0;
println!("scene regenerated");
}
}
}
最佳答案
你可以得到一个scene
来自window
与 Window::scene_mut
函数,它将返回 SceneNode
.
获得可变场景节点后,您可以使用 SceneNode::apply_to_scene_nodes
删除场景内的所有对象。功能。
如 kiss3d 文档页面中所述:
fn apply_to_scene_nodes_mut<F: FnMut(&mut SceneNode)>(&mut self, f: &mut F)
Applies a closure to each object contained by this node and its children.
这是在其中获取闭包并将其应用于场景内所有节点的方法。所以你不需要将所有对象添加到 Vec
.
请注意,此方法以递归方式工作,以将您提供的功能应用于父级及其自身的所有子级。
在您的情况下,只需要取消链接父场景,如下所示:
window.scene_mut().unlink();
每当您取消链接父场景节点时,子节点当然也会与父节点取消链接。所以在你的需要中你可能不需要 SceneNode::apply_to_scene_nodes
甚至。
关于rust - 我如何清除kiss3d中的场景?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55293051/
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 10 年前。 Improve thi
我对傅立叶变换的有限理解是,您应该能够在不更改原始数据的情况下在时域和频域之间切换。所以,这里是我(认为我)正在做的事情的总结: 使用 kiss_fft_next_fast_size(994) 确定我
关闭。这个问题是opinion-based 。目前不接受答案。 想要改进这个问题吗?更新问题,以便 editing this post 可以用事实和引文来回答它。 . 已关闭 4 年前。 Improv
我正在开发一个 C++ 项目,使用 FRDM-KL25Z 板来测量振动。我的代码正在运行,但我需要它循环运行。我的内存有问题,我没有足够的空间来存储两次值。我使用了 free() 命令,但即便如此我也
目录 封装变化 针对接口编程,不针对实现编程 多用组合(has-a),少用继承(is-a) 为交互对象之间的松耦合设计而努力 最少知识原则 LKP / 迪
前言 一个软件轻量简单的软件架构是非常重要的,它可以让我们花最小的代价就能满足业务上的需求。那如何保证轻量简单呢?那今天就和大家分享下这其中的秘密,也就是3个重要的指导原则,KISS原则,YAG
我目前正在尝试使用亲吻 fft 将 fft 实现到 avr32 微 Controller 中以进行信号处理。 我的输出有一个奇怪的问题。 基本上,我将 ADC 样本(使用函数发生器测试)传递到 fft
显然,YAGNI 和 KISS 之间存在语法差异,但我看不出它们之间有任何语义差异。它们本质上真的是一回事吗? 最佳答案 YAGNI(你不会需要它)指的是过度分析和实现可能需要也可能不需要的东西。当然
我正在尝试使用 visual studio 2013 让 kiss fft 在同一个应用程序中编译 float 和 double 实现。我看到我需要做的就是将 kiss_fft_scalar 设置为
什么是 KISS(Keep it Simple, Stupid)方法来记住 Boyce-Codd 范式是什么以及如何采用非规范化表和 BCNF? Wikipedia的信息:对我帮助不大。 最佳答案 C
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 10 年前。 Improve thi
我从一年后开始工作,遵循 Scrum、TDD、领域驱动设计和 Uncle Bob 的食谱……但我对我们是否应用了各种原则有一些疑问,主要是在阅读 Martin 系列的“Java 应用程序架构”(从现在
我是 FFT 概念的初学者,所以我的理解是,如果我输入 1024 个信号,我将得到 513 个从 0hz 到 22050Hz 的 bin(在 44100Hz 采样率的情况下)。在 Cinder 中使用
我正在使用 couchDB 并开始实现身份验证/授权。我发现最好和最简单的解决方案是通过 ssl 连接传递凭据,但我不太确定这种策略是否能确保我的站点真正安全。 我可以保留这个策略,购买一个真正的 s
我在编译我的程序时遇到问题。我在我的项目中使用 Kiss FFT 库,但是当我尝试构建它时,我遇到了这些错误: [Linker Error] Error: Unresolved external '_
标题解释了我的问题。 我想做的很简单: 加载 MP3 轨道(通过 libmpg123) 阅读样本 对样本应用 Kiss FFT 到目前为止我尝试了什么 inline float scale(kiss_
我已经从 here 下载了 kiss fft | .但我不知道如何在 Visual Studio 中使用它。例如,在 Visual Studio 中创建一个空的 win32 项目后,我应该如何复制粘贴
如何将 kiss fft 库添加到 Visual Studio 2012 项目?因为我想编译这段代码: #include "kiss_fft.h" #include "kiss_fftr.h" kis
是否有基于 javascript 的配置应用程序框架的简单约定,其外观和感觉就像开箱即用的富客户端应用程序?例如,有是GWT ...但它很重(即它需要编译)。 更具体地说,考虑到像 JQuery 这样
我有两个模型: 服务器(属于从属) 从站(有许多服务器) 在 Controller 中,我需要获取一个包含服务器/从站信息的数组(以及一些附加信息,例如 Controller 中无法包含的业务逻辑)。
我是一名优秀的程序员,十分优秀!