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 * Echo the specified arguments.
85 */
86GED_EXPORT extern int ged_help(struct ged *gedp, int argc, const char *argv[]);
87
88/** @} */
89
90/** @addtogroup libged */
91/** @{ */
92/***************************************
93 * Conceptual Documentation for LIBGED *
94 ***************************************
95 *
96 * Below are developer notes for a data structure layout that this
97 * library is being migrated towards. This is not necessarily the
98 * current status of the library, but rather a high-level concept for
99 * how the data might be organized down the road for the core data
100 * structures available for application and extension management.
101 *
102 * struct ged {
103 * dbip
104 * views * >-----.
105 * result() |
106 * } |
107 * |
108 * struct view { <-'
109 * geometry * >------.
110 * update() |
111 * } |
112 * |
113 * struct geometry { <-'
114 * display lists
115 * directory *
116 * update()
117 * }
118 *
119 */
120
122
123#endif /* GED_H */
124
125/** @} */
126
127/*
128 * Local Variables:
129 * tab-width: 8
130 * mode: C
131 * indent-tabs-mode: t
132 * c-file-style: "stroustrup"
133 * End:
134 * ex: shiftwidth=4 tabstop=8
135 */
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_delay(struct ged *gedp, int argc, const char *argv[])
Definition defines.h:160