BRL-CAD
ged.h
Go to the documentation of this file.
1 /* G E D . H
2  * BRL-CAD
3  *
4  * Copyright (c) 2008-2024 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/database.h"
54 #include "ged/commands.h"
55 #include "ged/objects.h"
56 #include "ged/framebuffer.h"
57 #include "ged/view.h"
58 #include "ged/analyze.h"
59 #include "ged/debug.h"
60 #include "ged/rt.h"
61 
62 /** @} */
63 
64 __BEGIN_DECLS
65 
66 /** @addtogroup ged_misc */
67 /** @{ */
68 
69 /**
70  * Delay the specified amount of time
71  */
72 GED_EXPORT extern int ged_delay(struct ged *gedp, int argc, const char *argv[]);
73 
74 /**
75  * Echo the specified arguments.
76  */
77 GED_EXPORT extern int ged_echo(struct ged *gedp, int argc, const char *argv[]);
78 
79 /**
80  * Query or manipulate properties of a graph.
81  */
82 GED_EXPORT extern int ged_graph(struct ged *gedp, int argc, const char *argv[]);
83 
84 /**
85  * Echo the specified arguments.
86  */
87 GED_EXPORT extern int ged_help(struct ged *gedp, int argc, const char *argv[]);
88 
89 /** @} */
90 
91 /** @addtogroup libged */
92 /** @{ */
93 /***************************************
94  * Conceptual Documentation for LIBGED *
95  ***************************************
96  *
97  * Below are developer notes for a data structure layout that this
98  * library is being migrated towards. This is not necessarily the
99  * current status of the library, but rather a high-level concept for
100  * how the data might be organized down the road for the core data
101  * structures available for application and extension management.
102  *
103  * struct ged {
104  * dbip
105  * views * >-----.
106  * result() |
107  * } |
108  * |
109  * struct view { <-'
110  * geometry * >------.
111  * update() |
112  * } |
113  * |
114  * struct geometry { <-'
115  * display lists
116  * directory *
117  * update()
118  * }
119  *
120  */
121 
122 __END_DECLS
123 
124 #endif /* GED_H */
125 
126 /** @} */
127 
128 /*
129  * Local Variables:
130  * tab-width: 8
131  * mode: C
132  * indent-tabs-mode: t
133  * c-file-style: "stroustrup"
134  * End:
135  * ex: shiftwidth=4 tabstop=8
136  */
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:205