Doxygen documentation
This commit is contained in:
parent
8f9531d63f
commit
a56bec272b
@ -51,7 +51,7 @@ PROJECT_BRIEF =
|
|||||||
# pixels and the maximum width should not exceed 200 pixels. Doxygen will copy
|
# pixels and the maximum width should not exceed 200 pixels. Doxygen will copy
|
||||||
# the logo to the output directory.
|
# the logo to the output directory.
|
||||||
|
|
||||||
PROJECT_LOGO =
|
PROJECT_LOGO = /home/mari/projects/cpp/gds-render/icon/gds-render.svg
|
||||||
|
|
||||||
# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path
|
# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path
|
||||||
# into which the generated documentation will be written. If a relative path is
|
# into which the generated documentation will be written. If a relative path is
|
||||||
|
0
doxygen/additional-pages.dox
Normal file
0
doxygen/additional-pages.dox
Normal file
47
doxygen/main-page.dox
Normal file
47
doxygen/main-page.dox
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
/**
|
||||||
|
|
||||||
|
@mainpage
|
||||||
|
This programm converts GDS layout files to
|
||||||
|
|
||||||
|
- PDF Files using the @ref Cairo-Renderer
|
||||||
|
- Latex code (TikZ) using the @ref LaTeX-Renderer
|
||||||
|
|
||||||
|
See the @subpage usage page for details
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@page usage Usage
|
||||||
|
@section cmd Command Line Interface
|
||||||
|
To use the application on the command line check 'gds-render --help'.
|
||||||
|
|
||||||
|
Application options:
|
||||||
|
- -t, --tikz Output TikZ code
|
||||||
|
- -p, --pdf Output PDF document
|
||||||
|
- -s, --scale=<SCALE> Divide output coordinates by <SCALE>
|
||||||
|
- -o, --tex-output=PATH Optional path for TeX file
|
||||||
|
- -O, --pdf-output=PATH Optional path for PDF file
|
||||||
|
- -m, --mapping=PATH Path for Layer Mapping File
|
||||||
|
- -c, --cell=NAME Cell to render
|
||||||
|
- -a, --tex-standalone Configure TeX Code standalone
|
||||||
|
- -l, --tex-layers configure TeX code to create PDF Layers (OCG)
|
||||||
|
|
||||||
|
@section gui Graphical User Interface
|
||||||
|
|
||||||
|
The graphical user interface (GUI) can be used to Open GDS Files, configure the layer rendering (colors, order, transparency etc.) and convert cells.
|
||||||
|
|
||||||
|
It is possible to export the layer configurations so theycan be used later on. Even in the @ref cmd
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
*/
|
6
doxygen/widgets.dox
Normal file
6
doxygen/widgets.dox
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
/* This file only contains help information for doxygen */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @defgroup Widgets Custom GTK Widgets
|
||||||
|
*
|
||||||
|
*/
|
@ -23,8 +23,8 @@
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @file gds_parser.h
|
* @file gds-parser.c
|
||||||
* @brief Header file for the GDS-Parser
|
* @brief Implementation of the GDS-Parser
|
||||||
* @author Mario Hüttel <mario.huettel@gmx.net>
|
* @author Mario Hüttel <mario.huettel@gmx.net>
|
||||||
*
|
*
|
||||||
* What's missing? - A lot:
|
* What's missing? - A lot:
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @file gds_parser.h
|
* @file gds-parser.h
|
||||||
* @brief Header file for the GDS-Parser
|
* @brief Header file for the GDS-Parser
|
||||||
* @author Mario Hüttel <mario.huettel@gmx.net>
|
* @author Mario Hüttel <mario.huettel@gmx.net>
|
||||||
*/
|
*/
|
||||||
|
@ -1,7 +1,46 @@
|
|||||||
|
/*
|
||||||
|
* GDSII-Converter
|
||||||
|
* Copyright (C) 2018 Mario Hüttel <mario.huettel@gmx.net>
|
||||||
|
*
|
||||||
|
* This file is part of GDSII-Converter.
|
||||||
|
*
|
||||||
|
* GDSII-Converter is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License version 2 as
|
||||||
|
* published by the Free Software Foundation.
|
||||||
|
*
|
||||||
|
* GDSII-Converter is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with GDSII-Converter. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @file tree-store.h
|
||||||
|
* @brief Tree store implementation
|
||||||
|
* @author Mario Hüttel <mario.huettel@gmx.net>
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @addtogroup MainApplication
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
#include "tree-store.h"
|
#include "tree-store.h"
|
||||||
#include "lib-cell-renderer.h"
|
#include "lib-cell-renderer.h"
|
||||||
#include "../gds-parser/gds-types.h"
|
#include "../gds-parser/gds-types.h"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief this function olny allows cells to be selected
|
||||||
|
* @param selection
|
||||||
|
* @param model
|
||||||
|
* @param path
|
||||||
|
* @param path_currently_selected
|
||||||
|
* @param data
|
||||||
|
* @return TRUE if element is selectable, FALSE if not
|
||||||
|
*/
|
||||||
static gboolean tree_sel_func(GtkTreeSelection *selection,
|
static gboolean tree_sel_func(GtkTreeSelection *selection,
|
||||||
GtkTreeModel *model,
|
GtkTreeModel *model,
|
||||||
GtkTreePath *path,
|
GtkTreePath *path,
|
||||||
@ -21,6 +60,11 @@ static gboolean tree_sel_func(GtkTreeSelection *selection,
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Setup a GtkTreeView with the necessary columns
|
||||||
|
* @param view Tree view to set up
|
||||||
|
* @return TreeStore for storing data inside the GtkTreeView
|
||||||
|
*/
|
||||||
GtkTreeStore *setup_cell_selector(GtkTreeView* view)
|
GtkTreeStore *setup_cell_selector(GtkTreeView* view)
|
||||||
{
|
{
|
||||||
GtkTreeStore *cell_store;
|
GtkTreeStore *cell_store;
|
||||||
@ -77,3 +121,4 @@ GtkTreeStore *setup_cell_selector(GtkTreeView* view)
|
|||||||
|
|
||||||
return cell_store;
|
return cell_store;
|
||||||
}
|
}
|
||||||
|
/** @} */
|
||||||
|
@ -1,16 +1,49 @@
|
|||||||
|
/*
|
||||||
|
* GDSII-Converter
|
||||||
|
* Copyright (C) 2018 Mario Hüttel <mario.huettel@gmx.net>
|
||||||
|
*
|
||||||
|
* This file is part of GDSII-Converter.
|
||||||
|
*
|
||||||
|
* GDSII-Converter is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License version 2 as
|
||||||
|
* published by the Free Software Foundation.
|
||||||
|
*
|
||||||
|
* GDSII-Converter is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with GDSII-Converter. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @file tree-store.h
|
||||||
|
* @brief Header file for Tree store implementation
|
||||||
|
* @author Mario Hüttel <mario.huettel@gmx.net>
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @addtogroup MainApplication
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef __TREE_STORE_H__
|
#ifndef __TREE_STORE_H__
|
||||||
#define __TREE_STORE_H__
|
#define __TREE_STORE_H__
|
||||||
|
|
||||||
#include <gtk/gtk.h>
|
#include <gtk/gtk.h>
|
||||||
|
|
||||||
|
/** @brief Columns of selection tree view */
|
||||||
enum cell_store_columns {
|
enum cell_store_columns {
|
||||||
CELL_SEL_LIBRARY = 0,
|
CELL_SEL_LIBRARY = 0,
|
||||||
CELL_SEL_CELL,
|
CELL_SEL_CELL,
|
||||||
CELL_SEL_MODDATE,
|
CELL_SEL_MODDATE,
|
||||||
CELL_SEL_ACCESSDATE,
|
CELL_SEL_ACCESSDATE,
|
||||||
CELL_SEL_COLUMN_COUNT
|
CELL_SEL_COLUMN_COUNT /**< Not a column. Used to determine count of coumns **/
|
||||||
};
|
};
|
||||||
|
|
||||||
GtkTreeStore *setup_cell_selector(GtkTreeView* view);
|
GtkTreeStore *setup_cell_selector(GtkTreeView* view);
|
||||||
|
|
||||||
#endif /* __TREE_STORE_H__ */
|
#endif /* __TREE_STORE_H__ */
|
||||||
|
|
||||||
|
/** @} */
|
||||||
|
@ -17,6 +17,17 @@
|
|||||||
* along with GDSII-Converter. If not, see <http://www.gnu.org/licenses/>.
|
* along with GDSII-Converter. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @file conv-settings-dilaog.c
|
||||||
|
* @brief Implementation of the setting dialog
|
||||||
|
* @author Mario Hüttel <mario.huettel@gmx.net>
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @addtogroup Widgets
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
#include "conv-settings-dialog.h"
|
#include "conv-settings-dialog.h"
|
||||||
|
|
||||||
struct _RendererSettingsDialog {
|
struct _RendererSettingsDialog {
|
||||||
@ -126,3 +137,5 @@ void renderer_settings_dialog_set_settings(RendererSettingsDialog *dialog, struc
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** @} */
|
||||||
|
@ -17,6 +17,17 @@
|
|||||||
* along with GDSII-Converter. If not, see <http://www.gnu.org/licenses/>.
|
* along with GDSII-Converter. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @file conv-settings-dialog.h
|
||||||
|
* @brief Header file for the Conversion Settings Dialog
|
||||||
|
* @author Mario.Huettel@gmx.net <mario.huettel@gmx.net>
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @addtogroup Widgets
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef __CONV_SETTINGS_DIALOG_H__
|
#ifndef __CONV_SETTINGS_DIALOG_H__
|
||||||
#define __CONV_SETTINGS_DIALOG_H__
|
#define __CONV_SETTINGS_DIALOG_H__
|
||||||
|
|
||||||
@ -24,25 +35,46 @@
|
|||||||
|
|
||||||
G_BEGIN_DECLS
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
/** @brief return type of the RedererSettingsDialog */
|
||||||
enum output_renderer {RENDERER_LATEX_TIKZ, RENDERER_CAIROGRAPHICS};
|
enum output_renderer {RENDERER_LATEX_TIKZ, RENDERER_CAIROGRAPHICS};
|
||||||
|
|
||||||
G_DECLARE_FINAL_TYPE(RendererSettingsDialog, renderer_settings_dialog, RENDERER, SETTINGS_DIALOG, GtkDialog)
|
G_DECLARE_FINAL_TYPE(RendererSettingsDialog, renderer_settings_dialog, RENDERER, SETTINGS_DIALOG, GtkDialog)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Create a new RedererSettingsDialog GObject
|
||||||
|
* @param parent Parent window
|
||||||
|
* @return Created dialog object
|
||||||
|
*/
|
||||||
RendererSettingsDialog *renderer_settings_dialog_new(GtkWindow *parent);
|
RendererSettingsDialog *renderer_settings_dialog_new(GtkWindow *parent);
|
||||||
|
|
||||||
#define RENDERER_TYPE_SETTINGS_DIALOG (renderer_settings_dialog_get_type())
|
#define RENDERER_TYPE_SETTINGS_DIALOG (renderer_settings_dialog_get_type())
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief This struct holds the renderer configuration
|
||||||
|
*/
|
||||||
struct render_settings {
|
struct render_settings {
|
||||||
double scale;
|
double scale; /**< @brief Scale image down by this factor. @note Used to keep image in bound of maximum coordinate limit */
|
||||||
enum output_renderer renderer;
|
enum output_renderer renderer; /**< The renderer to use */
|
||||||
gboolean tex_pdf_layers;
|
gboolean tex_pdf_layers; /**< Create OCG layers when rendering with TikZ */
|
||||||
gboolean tex_standalone;
|
gboolean tex_standalone; /**< Create a standalone compile TeX file */
|
||||||
};
|
};
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Apply settings to dialog
|
||||||
|
* @param dialog
|
||||||
|
* @param settings
|
||||||
|
*/
|
||||||
void renderer_settings_dialog_set_settings(RendererSettingsDialog *dialog, struct render_settings *settings);
|
void renderer_settings_dialog_set_settings(RendererSettingsDialog *dialog, struct render_settings *settings);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Get the settings configured in the dialog
|
||||||
|
* @param dialog
|
||||||
|
* @param settings
|
||||||
|
*/
|
||||||
void renderer_settings_dialog_get_settings(RendererSettingsDialog *dialog, struct render_settings *settings);
|
void renderer_settings_dialog_get_settings(RendererSettingsDialog *dialog, struct render_settings *settings);
|
||||||
|
|
||||||
#endif /* __CONV_SETTINGS_DIALOG_H__ */
|
#endif /* __CONV_SETTINGS_DIALOG_H__ */
|
||||||
|
|
||||||
|
/** @} */
|
||||||
|
@ -17,6 +17,17 @@
|
|||||||
* along with GDSII-Converter. If not, see <http://www.gnu.org/licenses/>.
|
* along with GDSII-Converter. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @file layer-element.c
|
||||||
|
* @brief Omplementation of the layer element used for configuring layer colors etc.
|
||||||
|
* @author Mario Hüttel <mario.huettel@gmx.net>
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @addtogroup Widgets
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
#include "layer-element.h"
|
#include "layer-element.h"
|
||||||
|
|
||||||
G_DEFINE_TYPE(LayerElement, layer_element, GTK_TYPE_LIST_BOX_ROW)
|
G_DEFINE_TYPE(LayerElement, layer_element, GTK_TYPE_LIST_BOX_ROW)
|
||||||
@ -187,3 +198,5 @@ void layer_element_set_color(LayerElement *elem, GdkRGBA *rgba)
|
|||||||
{
|
{
|
||||||
gtk_color_chooser_set_rgba(GTK_COLOR_CHOOSER(elem->priv.color), rgba);
|
gtk_color_chooser_set_rgba(GTK_COLOR_CHOOSER(elem->priv.color), rgba);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** @} */
|
||||||
|
@ -17,6 +17,17 @@
|
|||||||
* along with GDSII-Converter. If not, see <http://www.gnu.org/licenses/>.
|
* along with GDSII-Converter. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @file layer-element.h
|
||||||
|
* @brief Omplementation of the layer element used for configuring layer colors etc.
|
||||||
|
* @author Mario Hüttel <mario.huettel@gmx.net>
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @addtogroup Widgets
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef __LAYER_ELEMENT_H__
|
#ifndef __LAYER_ELEMENT_H__
|
||||||
#define __LAYER_ELEMENT_H__
|
#define __LAYER_ELEMENT_H__
|
||||||
|
|
||||||
@ -45,17 +56,70 @@ struct _LayerElement {
|
|||||||
LayerElementPriv priv;
|
LayerElementPriv priv;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Create new layer element object
|
||||||
|
* @return new object
|
||||||
|
*/
|
||||||
GtkWidget *layer_element_new(void);
|
GtkWidget *layer_element_new(void);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief get name of the layer
|
||||||
|
* @param elem Layer element
|
||||||
|
* @return Name. Must not be changed, freed or anything else.
|
||||||
|
*/
|
||||||
const char *layer_element_get_name(LayerElement *elem);
|
const char *layer_element_get_name(LayerElement *elem);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief layer_element_set_name
|
||||||
|
* @param elem set the name of the layer
|
||||||
|
* @param name Name. Can be freed after call to this function
|
||||||
|
*/
|
||||||
void layer_element_set_name(LayerElement *elem, const char* name);
|
void layer_element_set_name(LayerElement *elem, const char* name);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Set layer number for this layer
|
||||||
|
* @param elem Layer element
|
||||||
|
* @param layer Layer number
|
||||||
|
*/
|
||||||
void layer_element_set_layer(LayerElement *elem, int layer);
|
void layer_element_set_layer(LayerElement *elem, int layer);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Get layer number
|
||||||
|
* @param elem Layer Element
|
||||||
|
* @return Number of this layer
|
||||||
|
*/
|
||||||
int layer_element_get_layer(LayerElement *elem);
|
int layer_element_get_layer(LayerElement *elem);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Set export flag for this layer
|
||||||
|
* @param elem Layer Element
|
||||||
|
* @param export flag
|
||||||
|
*/
|
||||||
void layer_element_set_export(LayerElement *elem, gboolean export);
|
void layer_element_set_export(LayerElement *elem, gboolean export);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Get export flag of layer
|
||||||
|
* @param elem Layer Element
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
gboolean layer_element_get_export(LayerElement *elem);
|
gboolean layer_element_get_export(LayerElement *elem);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Get color of layer
|
||||||
|
* @param elem Layer Element
|
||||||
|
* @param rgba RGBA color
|
||||||
|
*/
|
||||||
void layer_element_get_color(LayerElement *elem, GdkRGBA *rgba);
|
void layer_element_get_color(LayerElement *elem, GdkRGBA *rgba);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Set color of layer
|
||||||
|
* @param elem Layer Element
|
||||||
|
* @param rgba RGBA color
|
||||||
|
*/
|
||||||
void layer_element_set_color(LayerElement *elem, GdkRGBA *rgba);
|
void layer_element_set_color(LayerElement *elem, GdkRGBA *rgba);
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
#endif /* __LAYER_ELEMENT_H__ */
|
#endif /* __LAYER_ELEMENT_H__ */
|
||||||
|
|
||||||
|
/** @} */
|
||||||
|
Loading…
Reference in New Issue
Block a user