@prefix : <http://smartlab.elis.ugent.be/ontologies/regulations/geometry/ifctox3d#>.
@prefix x3d: <http://smartlab.elis.ugent.be/aimontologies/geometry/ontologyx3d20091015#> .
@prefix math: <http://www.w3.org/2000/10/swap/math#>.
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.
@prefix list: <http://www.co-ode.org/ontologies/lists/2008/09/11/list.owl#>.
@prefix xsd: <http://www.w3.org/2001/XMLSchema#>.
@prefix inst: <http://multimedialab.elis.ugent.be/ontologies/ifc/instances#>.
@prefix ifc: <http://multimedialab.elis.ugent.be/ontologies/ifc/ontology#>.
@prefix xsd:     <http://www.w3.org/2001/XMLSchema#> .
@prefix log: <http://www.w3.org/2000/10/swap/log#> . 
@prefix e: <http://eulersharp.sourceforge.net/2003/03swap/log-rules#>.
@prefix stl:     <http://smartlab.elis.ugent.be/aimontologies/geometry/ontologySTL20091101#> .
@prefix we: <http://smartlab.elis.ugent.be/ontologies/regulations/geometry/wingededge#>.


  # Search for finalobjects and give the face's elements
	{
    ?x a we:FinalFaceEdge.
    ?x we:faceedges ?objectTrianglesList.
    ?x we:faceedgescount ?count.
    ?x we:length ?length.
    ?x we:normalizedvector ?NV.
  }
  =>
  {
    ?x a we:FinalFaceEdge.
    ?x we:faceedges ?objectTrianglesList.
    ?x we:faceedgescount ?count.
    ?x we:length ?length.
    ?x we:normalizedvector ?NV.
  }.
  
  # Show all face edges
	{
    ?x we:partoftotalfaceedge ?y.
  }
  =>
  {
    ?x we:partoftotalfaceedge ?y.
  }.
  
  # Show all edges
	{
  ?Triangle we:edge (?edge1 ?edge2 ?edge3).
  ?edge1 we:vertexStart (?v1x ?v1y ?v1z).
  ?edge1 we:vertexEnd (?v2x ?v2y ?v2z).
  ?edge1 we:isEdgeOf ?Triangle.
  ?edge2 we:vertexStart (?v2x ?v2y ?v2z).
  ?edge2 we:vertexEnd (?v3x ?v3y ?v3z).
  ?edge2 we:isEdgeOf ?Triangle.
  ?edge3 we:vertexStart (?v3x ?v3y ?v3z).
  ?edge3 we:vertexEnd (?v1x ?v1y ?v1z).
  ?edge3 we:isEdgeOf ?Triangle.
  }
  =>
  {
  ?Triangle we:edge (?edge1 ?edge2 ?edge3).
  ?edge1 we:vertexStart (?v1x ?v1y ?v1z).
  ?edge1 we:vertexEnd (?v2x ?v2y ?v2z).
  ?edge1 we:isEdgeOf ?Triangle.
  ?edge2 we:vertexStart (?v2x ?v2y ?v2z).
  ?edge2 we:vertexEnd (?v3x ?v3y ?v3z).
  ?edge2 we:isEdgeOf ?Triangle.
  ?edge3 we:vertexStart (?v3x ?v3y ?v3z).
  ?edge3 we:vertexEnd (?v1x ?v1y ?v1z).
  ?edge3 we:isEdgeOf ?Triangle.
  }.
