BRL-CAD
Loading...
Searching...
No Matches
ged.h
Go to the documentation of this file.
1/* G E D . H
2 * BRL-CAD
3 *
4 * Copyright (c) 2008-2025 United States Government as represented by
5 * the U.S. Army Research Laboratory.
6 *
7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Lesser General Public License
9 * version 2.1 as published by the Free Software Foundation.
10 *
11 * This library is distributed in the hope that it will be useful, but
12 * WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
15 *
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this file; see the file named COPYING for more
18 * information.
19 */
20/** @addtogroup libged
21 *
22 * Functions provided by the LIBGED geometry editing library. These routines
23 * are a procedural basis for the geometric editing capabilities available in
24 * BRL-CAD. The library is tightly coupled to the LIBRT library for geometric
25 * representation and analysis. The libdm API is assumed for commands that
26 * manipulate geometric views.
27 *
28 * A note to C/C++ developers - calling libged's commands programmatically has
29 * a disadvantage compared to calling lower level routines in that input values
30 * must pass through string processing. In addition to the overhead induced,
31 * this decoupling prevents the compiler from performing a wide variety of
32 * checks and optimizations. Generally speaking, if you're writing C/C++ code
33 * and are having to construct argc/argv inputs to call a libged function,
34 * you'll want to consider calling lower level routines instead to allow the
35 * compiler to have more insight into what the code is doing.
36 *
37 * If the above isn't possible because the core functionality of the command
38 * is implemented only in libged with no lower level interface available, that
39 * logic is probably a candidate for refactoring.
40 */
41/** @{ */
42/** @file ged.h */
43
44#ifndef GED_H
45#define GED_H
46
47#include "common.h"
48
49#include "bv/defines.h"
50#include "raytrace.h"
51#include "analyze.h"
52#include "ged/defines.h"
53#include "ged/version.h"
54#include "ged/database.h"
55#include "ged/commands.h"
56#include "ged/objects.h"
57#include "ged/view.h"
58#include "ged/debug.h"
59
60// At least for the moment these wrappers are not public API - include them
61// only for the BRL-CAD build itself.
62#ifdef BRLCADBUILD
63#include "ged/ged_cmds.h"
64#endif
65
66/** @} */
67
69
70/** @addtogroup ged_misc */
71/** @{ */
72
73/**
74 * Delay the specified amount of time
75 */
76GED_EXPORT extern int ged_delay(struct ged *gedp, int argc, const char *argv[]);
77
78/**
79 * Echo the specified arguments.
80 */
81GED_EXPORT extern int ged_echo(struct ged *gedp, int argc, const char *argv[]);
82
83/**
84 * Query or manipulate properties of a graph.
85 */
86GED_EXPORT extern int ged_graph(struct ged *gedp, int argc, const char *argv[]);
87
88/**
89 * Echo the specified arguments.
90 */
91GED_EXPORT extern int ged_help(struct ged *gedp, int argc, const char *argv[]);
92
93/** @} */
94
95/** @addtogroup libged */
96/** @{ */
97/***************************************
98 * Conceptual Documentation for LIBGED *
99 ***************************************
100 *
101 * Below are developer notes for a data structure layout that this
102 * library is being migrated towards. This is not necessarily the
103 * current status of the library, but rather a high-level concept for
104 * how the data might be organized down the road for the core data
105 * structures available for application and extension management.
106 *
107 * struct ged {
108 * dbip
109 * views * >-----.
110 * result() |
111 * } |
112 * |
113 * struct view { <-'
114 * geometry * >------.
115 * update() |
116 * } |
117 * |
118 * struct geometry { <-'
119 * display lists
120 * directory *
121 * update()
122 * }
123 *
124 */
125
127
128#endif /* GED_H */
129
130/** @} */
131
132/*
133 * Local Variables:
134 * tab-width: 8
135 * mode: C
136 * indent-tabs-mode: t
137 * c-file-style: "stroustrup"
138 * End:
139 * ex: shiftwidth=4 tabstop=8
140 */
Definition dvec.h:74
Header file for the BRL-CAD common definitions.
int ged_echo(struct ged *gedp, int argc, const char *argv[])
int ged_help(struct ged *gedp, int argc, const char *argv[])
int ged_graph(struct ged *gedp, int argc, const char *argv[])
int ged_delay(struct ged *gedp, int argc, const char *argv[])
Definition defines.h:167