How the complex things become easy

Behind a Scene

An analogy between a scene and a text ...

To work effectively with Shadow Analyzer (or any other our product), it is enough to understand clearly some simple basic notions and the relationships between them. Let us discuss the relationships between a scene, its document, and its views. An analogy between a scene record and a text record will help us.

Let us compare a scene that you create with Shadow Analyzer and a text, which you are writing with any word processor like "Notepad" or "Word". However, both a "scene" and a "text" are general notions that have many meanings, which we need to distinguish.

Working with a text displayed in a window of a word processor, we can consider it as a place where we can put characters, add words and write sentences. We can write a word as a sequence of individual characters using the alphabetical keys of the keyboard, or we can insert an entire word taking it from a dictionary.

Working with a scene displayed in one or multiple 3D view windows of Shadow Analyzer, we can consider it as a place where we can put some objects of the predefined types using the combo box NEW and the button "N" of the toolbar Factory. The Factory plays a role of a dictionary. After an object is created and added to the scene, we can edit its attributes: parameters, location, colors, etc.

Unlike the case of a text, we combine a rather simple "object dictionary" (that declares only the types of objects) with the advanced parametric editing of objects' attributes to compose rather complex scenes.

The inner representation of a document, a scene, and scene objects ...

The greatest feature of a word processor is that it provides an illusion that we deal with a single entity like a sheet of paper. A sheet of paper with written words is all in one: a collection of words organized in sentences, a document, and a "display". But actually, we deal simultaneously with different entities.

Our actions are stored somewhere in the computer memory. We never see this inner representation of a text directly. We do not see it, but it exists and predefines all what we can do with a text. This inner representation of a text is something other than a file on a hard disc or an image of the text lines in the editor window. Files and views are other entities. However usually we use one word "text" to name all of them.

Shadow Analyzer works in the same way. It has a few kinds of inner representations: one for a document, another for a scene, and yet one for an object. A document (in its inner representation) is something like a manager that keeps and transforms the scene data. A scene (in its inner representation) does not contain objects themselves. It contains only a list of object addresses. The objects (in their inner representation) are pieces of the computer memory -- the records that hold the objects' parameters and attributes. All these entities exist dynamically in the computer memory.

The objects (as a set of the records) exist independently besides the scene. The scene is a list of object addresses but not a container of objects. However, for the simplicity, we are speaking about a scene that contains some objects.

When you create a blank scene, Shadow Analyzer creates a new inner representation for a document. One can say that the document "knows" about the scene objects but do not "contain" them. The scene is a list of the objects' addresses. Initially, this list is empty. When you select an object type in the combo box NEW and click on the button "N", Shadow Analyzer creates dynamically a place for the object record in the computer memory, fills the record by the default data according to the object type, and add the address of this record to the scene.

When you delete an object clicking on the button "D", Shadow Analyzer removes both the object record from the computer memory and its address from the inner representation of the scene.

A document ...

After the consideration above, it is logically to put some question: What is a document in the sense of its inner representation? What a role does it play? Why we name it "document" while it (as well as the inner representation of a scene) does not contain any objects?

Really, the usual meaning of the word "document" does not corresponds precisely to what the inner representation of a document is and what it does. However, it is the most suitable word, because the inner representation of a document is responsible for the writing of the scene data into a file, as well as for the reading of that data from a file.

When you save a scene in a file, all the object records are stored in a file on the hard disc of your PC. When you open a file, the Shadow Analyzer dynamically reconstructs the corresponding scene, creating, filling, and connecting all the necessary structures in the computer memory.

In this sense, the usual meaning of the word "document" corresponds more precisely to its file form. As to the inner representation of the document, it means something that connects and organizes different parts of the information associated with a scene. Both the forms are equivalent but are structured differently, because a scene (as a corresponding collection of its objects) is differently represented inside a file and inside the memory structures created dynamically by Shadow Analyzer.

A copy of an object ...

When you copy an object, Shadow Analyzer creates a copy and keeps it in the unbound state until you past it in any scene. This copy is not linked to any scene until you click on the button "Paste Obj". When you click on the button "Paste Obj", the active scene accepts the address of the object record and adds it to the list of the objects' addresses.

Shadow Analyzer holds only one copy. Therefore, if you copied an object but did not link it to any scene, then next time, when you copy another object, the old copy is automatically deleted as an obsolete unused one. The unlinked copy is also deleted automatically, when you end your session with Shadow Analyzer.

Unlike the Clipboard of the Windows system, this mechanism does not keep the copy of an object (in a separate storage) after the copy is linked to a scene. Therefore, you cannot paste any copy twice.

Once again, the common metaphoric terminology is not precise enough. Actually, in the case of Clipboard, we duplicate an object to keep its copy in Clipboard, and then duplicate it again each time when we "paste" it somewhere. In the contrast, Shadow Analyzer duplicates an object only once and then links the created copy to a scene. In other words, there is nothing to paste second time, you need to create a new copy to be able to paste it.

The scene and its views ...

We have discussed the relationship between a scene and its document stored in a file. Now we come to a view. Which features of a 3D view are stored in a file?

In essence, Shadow Analyzer stores in a file only the scene data, but not the 3D view properties like the Date, Time, the position of the viewpoint, and the zoom ratio. However, it stores all the settings of the appearance filters. The information stored in a file contains the geographical latitude of the scene, the list of all objects, the description of objects' parameters, attributes, and coordinates, as well as the tree of the object families (the relationships between parent objects and their children).

Because the file does not contain some details of a 3D view, you always start from 12:00 of March 21, the default viewpoint and the zoom ratio, when you open the file.

For what purpose you can use multiple views of the same scene? Initially this option was designed to compare shadows in different moments of different days. However, this option has also a more general sense, because it is always useful to be able to observe 3D objects from several viewpoints simultaneously.

You can manage the Date/Time and the viewpoint of each 3D view independently. These data belong to the view. Each 3D view window keeps them individually. They exist dynamically until you close the 3D view window. Other 3D views do not know about them.

In the contrast, when you change the combination of filters in the toolbar Show, all the views change their appearance synchronously, because the filter settings belong to the entire scene, but not to a separate view.

The simplified terminology ...

In spite of all these inner details, we mostly use the simplified terminology, speaking about documents, scenes, and collections of objects as if all these different entities are the same like a sheet of paper with a picture drawn on it.