BRL-CAD
ged.h
Go to the documentation of this file.
1/* G E D . H
2 * BRL-CAD
3 *
4 * Copyright (c) 2008-2023 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 */
72GED_EXPORT extern int ged_delay(struct ged *gedp, int argc, const char *argv[]);
73
74/**
75 * Echo the specified arguments.
76 */
77GED_EXPORT extern int ged_echo(struct ged *gedp, int argc, const char *argv[]);
78
79/**
80 * Query or manipulate properties of a graph.
81 */
82GED_EXPORT extern int ged_graph(struct ged *gedp, int argc, const char *argv[]);
83
84/**
85 * Echo the specified arguments.
86 */
87GED_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:195