vecci

Vecci is one of the few entities in VIDE which is not based on software of other programmers, so if you are not content with what you find here - all blame belongs to Malban alone!

Anyway... vecci is is the part of VIDE that concerns itself with vector drawing, vector lists and other display stuff. There are many functions hidden under the complicated seeming gui. But I promise you, once you programmed vecci, you know it by heart and can do wonderfull things with it!

Contents
Basic usage
Window entities in short
Drawing vectors
Additional navigation
Build animation
Shortcuts
Animations / Scenario
Vecci format (Save/Load)
Other stuff

Import
Export
Storyboard
Storyboard 2



vecci window


Basic

Colors

Using vecci you will notice different colorings in the vector display areas:

Entities

With vecci you can handle two different entities.

  1. Vectorlists

  2. Animations/Scenarios

Vectorlists

Vectorlists are vectrex basic vector lists. They come in different flavors, just as there are different BIOS routines in the vectrex BIOS. In general following permutations are possible:

Not all of these cases are implemented as exports as of now, but all of these factors can be edited and persisted by vecci.

The main "list" of vectors is displayed in the first tab named "Vector List" on the left side of the window.

Animations/Scenarios

Animations is what I call a collection of vectorlists which have a common "interest" this might be a rotation, a movement or a "real" animation.

An animation consists of an arbitrary number of vectorlists. As of now these can be saved/loaded in vecci format (and exported). Custom routines to use animations are as example provided...

Note!
The DISPLAY panel can be switched from "vectorlist" display to "animation/scenario" display using the "play" button!

Window entities in short

Vector panels

There are a number of "black" panels you see in the vecci window. These in general display vectors. The three largest (all in the upper half of the window (two are "hidden" on the tab "Y/Z") ) are "editor" panels. Here you can actually draw, select, delete and move vectors. The three largest also fathom a "grid". The grid can be toggled on/off with the small checkbox "grid" on the left of the window. You can also select the width of the grid. If the grid is enabled, vectors are placed on the current grid spacing!

The middle "smaller" vector display window is only a "DISPLAY", here you can see the current vectorlist:

  1. as a 3d setting

  2. as an animation

  3. as a scenario

depending on your current settings.

There are two sliders which you can see when you open vecci, both are used to change the scale of the nearby vector displays. If you center the sliders the scale value is one and you see approximatly a display with coordinates ranging from -150 to +150. You will probably also see a light blue border. This border I call "byteFrame" it can be switched on and off using the "byteFrame" checkbox in the upper left of the window. The byteFrame is drawn around the coordinates -128 to +127, this is the largest/smallest possible value a vector for vectrex should have, since it is a 8bit-machine and the values are signed.

Vector table

Right of the main vector editor panel you can see a table, this table holds (in vecci format) all vector information of the currently edited vectorlist. The relevant fields (coordinates, pattern, intensity) can be edited. Below the table are several buttons, with these you can persist or load single vectorlists.

If in the "select vector" mode (see below), you can also select vectors by selecting the rows in the table, if you want to move them, remember to press shift while draging!

The table also shows the selection you make by selecting vectors in the edit panel.

Start- and end- points selections are also shown in the table.

3d settings and other...

The above table is part of a tabbed pane surrounding it. The other tabs are:

Drawing vectors

Mode

There are as of yet three different modes, vecci can be set to. Depending on the mode settings you can do different things. The modes can be changed by a setting nearly in the middle of the window. In a tabbed pane with the heading "Mode/Select":



Mode


The "Set" mode, does what it is named after - it sets vectors. The other modes are "edit" modes.

Vecci starts of in Mode "Set".

Quick switch!
While the mouse is over the vectorlist edit panel, you can use the middle mouse button to switch thru the three available modes! The selected mode is also displayed in blue letters.

Mode "SET"

In the "set" mode, you can actually draw vectors. Left click on the "black" panel on the upper right, dragging the mouse and releasing the button draws one single vector. Right click after you have drawn your first vector will create a new vector from the last "end" position to the current click position.

The draw mode can have two additional "features" which can be turned on/off with the checkboxes directly to the left of the "Set" button.

  1. continue
    This option if enabled "continues" drawing directly to the next position. The resulting "multiple" vectors are connected (you can unconnect them later if needed - as you can also connect previously unconnected vectors later)

  2. points ok
    This option allows you to set points, vectors with a length of 0, don't know if one ever needs it, but here you go as an option.

Setting vectors is straight forward and thats all you can do in this mode!

Mode "select point"

In this mode you can select and move single points of vectors.

If you move the mouse over the vector panel, the point under the mouse is highlighted. With a click on the left mouse button you select the point (blue surrounding). You can "drag" a point with the mouse button.

If you shift/click you can select more than one point - draging, drags "all" selected points.

I you click on an "empty" spot (no highlighted point), you can drag a "rectangle" and capture points with it (select points). Shift/draging allows again to drag all of them.

To "unselect" a single point, keep shift pressed and click the point you want to remove with the middle mouse button.

Right click on a point gives you (depending on current circumstances) more options, a popup menu will be displayed.

For example, if you drag two points over each other AND have "continue" enabled, you can join vectors at these points.

Mode "select vector"

In this mode you can select and move vectors.

The settings are nearly identical to the "point" section...

If you move the mouse over the vector panel, the vector under the mouse is highlighted. With a click on the left mouse button you select the vector (blue surrounding). You can "drag" a vector with the mouse button.

If you shift/click you can select more than one vector - draging, drags "all" selected vectors.

I you click on an "empty" spot (no highlighted vector), you can drag a "rectangle" and capture vectors with it (select vectors). Shift/draging allows again to drag all of them.

To "unselect" a single vector, keep shift pressed and click the vector you want to remove with the middle mouse button.

Right click on a vector gives you (depending on current circumstances) more options, a popup menu will be displayed.

Note:
The copy and paste functions do only work with vectors. That also means, that these functions only work, if the mode is set to "select vector"

Popup / Point selection

Always

Without continue:
-----------------
2 points selected:

With continue:
--------------

x Points selected

2 Points selected

Popup / Vector selection

Here you only have selections:

Visual

On the same Tab as the mode selects there are also some additional options available:

Additional navigation

In the main view there is a button "pad" with which you can "scroll" the viewport in all directions (scrollstep width is the width of the current used grid) [double click the center → centers the viewport]

You can also "drag" the viewport by using the mouse. While keeping the CTRL key pressed you can drag the viewport location.

The button application_get.png below the mentioned button "pad" opens a large (resizable) editor window (the window is completely synchronized with vecci).

The button application_view_gallery.png below the mentioned button "pad" opens a large (resizable) 3d-editor window.
Here you can:

The advantage of this window is that you can chose a "perspective" view of a 3d-vectorlist and edit directly. The window is completely synchronized with vecci and any other editing "instance".



3d editor


Build animation

Under this tab there are a few functions to build animations or scenarios from the current vectorlist.

Rotation



Rotation example


Rotations can be calculated by vecci, you can chose the axis (1 or more axis) the maximal angle and the number of steps you would like to rotate.

If you use "large" coordinates in your vectorlists, the rotation list values can be higher than the byte range vectrex allows, to prevent this you can chose the extra option "scale to byte", this ensures that the resulting list still "fits".

A built "animation" of a rotation always has 3 parts:

  1. the origin

  2. the final result

  3. the steps in between

The "steps" counter where you can enter the "steps" represents c). 0 (zero) can be used!

  1. is always the original vectorlist

  2. is always the given "max angle" applied to the vectorlist

  3. are all steps in between

If you check the "+/-" checkbox behind the angle the rotation will be clockwise, if you leave it unchecked, the rotation will be anti-clockwise.



Rotation example


Morphing

You can also "morph" from one vectorlist to another. The two first vectorlists in the current animation (see below) are used as input. You can chose the number of steps you wish to use.

In order for the morphing to work correctly the vectorlists have to "good".



Morph example


Scenario

As of now only one function ist provided:
seperate paths as scenario entries:
Using this button you can split the current vectorlist in seperate vectorlists. For each "connected path" in the vectorlist one scenario entry is generated. The opposite function is the "join" function in the animation/scenario section.
Example:
splitExample1.png ←> splitExample2.png

Shortcuts



shortcuts


There are a couple of "helper" functions provided, these function on complete vectorlists (not animations(yet) ).

Note!
There are "strange" cases of vectorlists, when above implemented shortcuts may not lead to optimal results. One simple case is a construct like:
polygonError.png

Here you see a start vector going off in one direction and the start location is JOINED with two other vectors (a three-way join) which forms a closed polygon.
This and similar constructs are not easy to analyse and handle correctly. I have not even tried very hard - if you have vectorlists like that, please optimize them by hand!

Shortcuts 2

The second tab of shortcuts was introduced to automatically improve "large" vectorlists - mainly used for animation and storyboard purposes.

For "small" animations used as "sprites" in a game, these routines are "overkill" and might even be totally inappropriate, since the "structure" of the list will most likely be changed.

Due to the nature of the routines and depending on the available computing power/RAM. The routines may take some time to finish.

Please save the current work beforehand, the only way to "break" the current computation is to shutdown Vide.

The routines work best when combined. A good result can usually be achieved by pressing "Isidro All". That button executes the single functions:

But - possibly this is not the best result to achieve. Each vectorlist needs to be optimized (!) in different ways.

Animations / Scenario

(for a picture look at "Rotation")
Animations/Scenarios are both a collection of different vectorlists. I differ the two entities because one displays all vectorslists at the same time (scenario) the other plays each vectorlist after another (with a delay) to create the illusion of an animation.
The datastructure and the handling in vecci are identical!
In short what you can see/do:

Vecci format (Save/Load)

The vecci save format is a straight forward XML-File with all data in appropriate sub structures.

If need should arise I can also provide a "JSON" format.

Other stuff

Line



line


Per default line "settings" are off. With the checkboxes visible above you can switch line settings on. Two options are available:

  1. pattern
    Here you can set a pattern byte for the vectors to be used. The actual pattern is a the binary representation of the entered byte (you can enter either hex or dec numbers).
    The default pattern for lines is "255" which is a complete line.

  2. intensity
    The default intensity is 63, which is half of the available max intensity of 127 (negative values - values higher than 127 - result in non visible lines on a real vectrex)


Note:
Within vecci "moves" are represented with a pattern of 0 (zero). Vectors with an intensity of 0 (zero) are still not visible, but are not considered "move" vectors by vecci.

The above settings are (if switched on) always used for the next drawn vectors. If you want to change already defined vectors you can do so too.
Select (multi select is supported) the vectors you want to apply the new settings to, and press "set to selected" than the given values are applied.

2d-Tools



2d-Tools


The tools under this tab are all applied directly to the currently edited vectorlist. The first three are "shortcuts" to processings which can be acchieved by other means in vecci, but are a bit "cumbersume" (one has to generate rotation animations an extract single lists from those)

The button "image to vector" is explained in its own "Vector image" section.

Figure

Ignore these for now...

Faces- Hidden line removal



Faces


Vecci is capable of doing a HLR (Hidden line removal) from the display of 3d-"figures". In order to do HLR following steps have to be considered:

Moving points of a face can "destroy" the face. A face gets deleted automatically from the face list, when its points are no longer coplanar.

The HLR is executed with the 3d-settings which result in the DISPLAY image (that enables the user to chose the point of view to on the figure - see tab 3d-settings).

The result of the HLR is added to the animation/scenario list.