Watertight Geometry
The last section touched on "Watertight geometry" and explored how it relates to Virtualwind's Building and Canopy Entities. The majority of the Tools offered by the Plugin are geared towards helping you identify, eliminate, or isolate geometry that is not watertight.
Using computational geometry language, watertight geometry in Virtualwind is a set of faces and edges that are arranged such that every edge in the geometry has exactly two faces. This is the golden rule of watertight geometry: "Every edge must have exactly two faces".
The golden rule of watertight geometry can be intuitively understood as "a collection of impermeable skins". To understand watertight geometry better, "Collections", "Skins", and "Impermeable" will be addressed.
As a running example, consider a model of a set of two "Russian dolls" to illustrate these various aspects of watertight geometry. Imagine that the Russian dolls are made of paper, so that only their exterior surfaces are modelled (in other words, the model is not capturing their thickness). Also, imagine that the Russian dolls are each "sealed" – you can not open them up. Thanks to the magic of computer graphics though, you can place the small one inside the big one without needing to open up the big one. As a starting point, assume that each Russian doll is watertight, when viewed independently.
Collections
Looking closer at the Golden Rule of Watertight Geometry, there is nothing in it that says that all the geometry has to be connected. In other words, the term "watertight geometry" does not mean that the geometry has to be only one object: you can have many objects as you want. If you consider the Russian dolls in their "separated" state (i.e. when they are not inside each other), every edge of every Russian doll satisfies the Golden Rule – so the Golden Rule is satisfied for all of them.
Skins
Saying that watertight geometry must be made up of "skins", means that each part of the geometry must be hollow: there can not be edges or faces connected to the inside of the skin. For example, you can not make a building with interior walls.
However, it was said that the geometry can not be connected to the inside of the skin – it was not said that you could not have any geometry inside the skin at all. If you now put the small Russian doll inside the big one, they are not actually connected – they are just inside one another. Therefore, the Russian doll model is still a watertight model, regardless of whether the small doll is inside or outside of the large one.
Impermeable
"Impermeable" refers to the "leakiness" of your model. If you imagine submerging your model in water, the water would never be able to get "inside" a watertight geometry. This is where the term "watertight" comes from.
In the case of the two Russian dolls, they were modelled as perfectly "sealed" – they do not have any opening the way a real Russian doll would. They therefore satisfy the impermeable criterion. Now suppose instead that the large one had been modelled in its "open" state, as two separate paper-thin halves. Intuitively, you can see that this is clearly no longer impermeable: if you put it in water, the water would fill the doll completely. You can also see that the Golden Rule is violated: the edges along the open end of the doll only have one face attached to them, not two. Therefore, an "open" Russian doll is an example of non-watertight geometry.
If you are careful, you can indeed make a model of an open Russian doll if you want – but you have to model each half as a three-dimensional object. The only way to do this is to give each half a thickness. In other words, each half would need to be an impermeable skin. In this case, "impermeable" still means that water can't get into the "inside" of the object, but now the notion of "inside" has been refined: instead of thinking of the "inside" as the cavity in the sealed doll, it is now the shell of the doll itself.
As far as Virtualwind is concerned, both of these ways of modelling a Russian doll – as a sealed, paper-thin model, or an open, thick model – produces valid solid geometry. The way you choose to construct your models will depend on what you want to do with your model.