Skip to content

Instantly share code, notes, and snippets.

@tbillington
Created August 5, 2014 09:39
Show Gist options
  • Save tbillington/0b4bb7b76eb7e271d51b to your computer and use it in GitHub Desktop.
Save tbillington/0b4bb7b76eb7e271d51b to your computer and use it in GitHub Desktop.
fn linked_face(vertexs: &[Rc<RefCell<Vertex>>], face: UnlinkedFace) -> Option<RefCell<Face>> {
Some(
RefCell::new(
Face {
a:match vertexs.slice(face.a,face.a+1).iter().next() {
Some(x) => x.clone(),
None => return None,
},
b:match vertexs.slice(face.b,face.b+1).iter().next() {
Some(x) => x.clone(),
None => return None,
},
c:match vertexs.slice(face.c,face.c+1).iter().next() {
Some(x) => x.clone(),
None => return None,
},
d:match vertexs.slice(face.d,face.d+1).iter().next() {
Some(x) => x.clone(),
None => return None,
}}))
}
fn linked_face(vertexs: &[Rc<RefCell<Vertex>>], face: UnlinkedFace) -> Option<RefCell<Face>> {
let a = match vertexs.slice(face.a,face.a+1).iter().next() {
Some(x) => x.clone(),
None => return None,
};
let b = match vertexs.slice(face.b,face.b+1).iter().next() {
Some(x) => x.clone(),
None => return None,
};
let c = match vertexs.slice(face.c,face.c+1).iter().next() {
Some(x) => x.clone(),
None => return None,
};
let d = match vertexs.slice(face.d,face.d+1).iter().next() {
Some(x) => x.clone(),
None => return None,
};
Some(
RefCell::new(
Face {
a:a,
b:b,
c:c,
d:d,
}}))
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment