/* Auteur: Nicolas JANEY */ /* nicolas.janey@univ-fcomte.fr */ /* Octobre 2007 */ public class Facette4 { public Position p1; public Position p2; public Position p3; public Position p4; public Facette4() { p1 = new Position(); p2 = new Position(); p3 = new Position(); p4 = new Position(); } public Facette4(Position p1,Position p2,Position p3,Position p4) { this.p1 = new Position(p1); this.p2 = new Position(p2); this.p3 = new Position(p3); this.p4 = new Position(p4); } public Facette4(Facette4 f) { p1 = new Position(f.p1); p2 = new Position(f.p2); p3 = new Position(f.p3); p4 = new Position(f.p4); } public boolean testPlanarite() { Direction d12 = new Direction(p1,p2,false); Direction d13 = new Direction(p1,p3,false); Direction normale = d12.produitVectoriel(d13); Direction d14 = new Direction(p1,p4,false); return(d14.produitScalaire(normale) == 0.0F); } public boolean testConvexite() { Direction d12 = new Direction(p1,p2,false); Direction d14 = new Direction(p1,p4,false); Direction n1 = d12.produitVectoriel(d14); Direction d23 = new Direction(p2,p3,false); Direction d21 = new Direction(p2,p1,false); Direction n2 = d23.produitVectoriel(d21); if ( !n1.testCodirection(n2) ) return(false); Direction d34 = new Direction(p3,p4,false); Direction d32 = new Direction(p3,p2,false); Direction n3 = d34.produitVectoriel(d32); if ( !n1.testCodirection(n3) ) return(false); Direction d41 = new Direction(p4,p1,false); Direction d43 = new Direction(p4,p3,false); Direction n4 = d41.produitVectoriel(d43); if ( !n1.testCodirection(n4) ) return(false); return(true); } public String toString() { return("["+p1+",\n "+p2+",\n "+p3+",\n "+p4+"]"); } }