wx_BGI_Graphics
Classic BGI-compatible graphics API with modern OpenGL extension API
Loading...
Searching...
No Matches
bgi_dds.h
Go to the documentation of this file.
1#pragma once
2
27#include "bgi_types.h" // Camera3D, CoordSystem, WorldExtents, linesettingstype, …
28
29#include <cstdint>
30#include <memory>
31#include <string>
32#include <unordered_map>
33#include <unordered_set>
34#include <vector>
35
36#include <glm/glm.hpp>
37
38namespace bgi
39{
40
41// =============================================================================
42// Coordinate-space tag
43// =============================================================================
44
50enum class CoordSpace
51{
52 BgiPixel,
53 World3D,
54 UcsLocal,
55};
56
57// =============================================================================
58// Per-object style snapshot
59// =============================================================================
60
77
79{
80 std::unordered_map<std::string, std::string> values;
81};
82
83// =============================================================================
84// Object type discriminator
85// =============================================================================
86
87enum class DdsObjectType
88{
89 // Scene-configuration objects ─────────────────────────────────────────────
90 Camera,
91 Ucs,
93
94 // Retained composition objects ────────────────────────────────────────────
99
100 // Drawing-primitive objects ───────────────────────────────────────────────
101 Point,
102 Line,
103 Circle,
104 Arc,
105 Ellipse,
107 PieSlice,
108 Sector,
109 Rectangle,
110 Bar,
111 Bar3D,
112 Polygon,
113 FillPoly,
114 Text,
115 Image,
116
117 // Phase 4 — 3D Solid Primitives ──────────────────────────────────────────
118 Box,
119 Sphere,
120 Cylinder,
121 Cone,
122 Torus,
123
124 // Phase 5 — 3D Surfaces ──────────────────────────────────────────────────
125 HeightMap,
127
128 // Phase 6 — 2D→3D Extrusion ──────────────────────────────────────────────
129 Extrusion,
130};
131
132// =============================================================================
133// Base class
134// =============================================================================
135
137{
138public:
139 std::string id;
140 std::string label;
142 bool visible{true};
143 bool deleted{false};
146
147 virtual ~DdsObject() = default;
148};
149
150// =============================================================================
151// Scene-configuration objects (DDS is the source of truth)
152// =============================================================================
153
160class DdsCamera : public DdsObject
161{
162public:
163 std::string name;
165
167};
168
175class DdsUcs : public DdsObject
176{
177public:
178 std::string name;
180
182};
183
192
194{
195public:
196 glm::mat4 matrix{1.f};
197 std::vector<std::string> children;
198
200};
201
202class DdsSetUnion : public DdsObject
203{
204public:
205 int drawMode{1};
206 int edgeColor{15};
207 int faceColor{7};
208 std::vector<std::string> operands;
209
211};
212
214{
215public:
216 int drawMode{1};
217 int edgeColor{15};
218 int faceColor{7};
219 std::vector<std::string> operands;
220
222};
223
225{
226public:
227 int drawMode{1};
228 int edgeColor{15};
229 int faceColor{7};
230 std::vector<std::string> operands;
231
233};
234
235// =============================================================================
236// Drawing-primitive objects
237// =============================================================================
238
239// All positions are stored as world-space glm::vec3.
240// CoordSpace::BgiPixel objects record pixel integers cast to float with Z=0.
241
242struct DdsPoint : public DdsObject
243{
245 std::string ucsName;
246 glm::vec3 pos{0.f, 0.f, 0.f};
247 int color{0};
248
250};
251
252struct DdsLine : public DdsObject
253{
255 std::string ucsName;
256 glm::vec3 p1{0.f, 0.f, 0.f};
257 glm::vec3 p2{0.f, 0.f, 0.f};
258
260};
261
262struct DdsCircle : public DdsObject
263{
265 std::string ucsName;
266 glm::vec3 centre{0.f, 0.f, 0.f};
267 float radius{0.f};
268
270};
271
272struct DdsArc : public DdsObject
273{
275 std::string ucsName;
276 glm::vec3 centre{0.f, 0.f, 0.f};
277 float radius{0.f};
278 float startAngle{0.f};
279 float endAngle{0.f};
280
282};
283
284struct DdsEllipse : public DdsObject
285{
287 std::string ucsName;
288 glm::vec3 centre{0.f, 0.f, 0.f};
289 float rx{0.f};
290 float ry{0.f};
291 float startAngle{0.f};
292 float endAngle{0.f};
293
295};
296
298{
300 std::string ucsName;
301 glm::vec3 centre{0.f, 0.f, 0.f};
302 float rx{0.f};
303 float ry{0.f};
304
306};
307
308struct DdsPieSlice : public DdsObject
309{
311 std::string ucsName;
312 glm::vec3 centre{0.f, 0.f, 0.f};
313 float radius{0.f};
314 float startAngle{0.f};
315 float endAngle{0.f};
316
318};
319
320struct DdsSector : public DdsObject
321{
323 std::string ucsName;
324 glm::vec3 centre{0.f, 0.f, 0.f};
325 float rx{0.f};
326 float ry{0.f};
327 float startAngle{0.f};
328 float endAngle{0.f};
329
331};
332
333struct DdsRectangle : public DdsObject
334{
336 std::string ucsName;
337 glm::vec3 p1{0.f, 0.f, 0.f};
338 glm::vec3 p2{0.f, 0.f, 0.f};
339
341};
342
343struct DdsBar : public DdsObject
344{
346 std::string ucsName;
347 glm::vec3 p1{0.f, 0.f, 0.f};
348 glm::vec3 p2{0.f, 0.f, 0.f};
349
351};
352
353struct DdsBar3D : public DdsObject
354{
356 std::string ucsName;
357 glm::vec3 p1{0.f, 0.f, 0.f};
358 glm::vec3 p2{0.f, 0.f, 0.f};
359 float depth{0.f};
360 bool topFlag{true};
361
363};
364
365struct DdsPolygon : public DdsObject
366{
368 std::string ucsName;
369 std::vector<glm::vec3> pts;
370
372};
373
374struct DdsFillPoly : public DdsObject
375{
377 std::string ucsName;
378 std::vector<glm::vec3> pts;
379
381};
382
383struct DdsText : public DdsObject
384{
386 std::string ucsName;
387 glm::vec3 pos{0.f, 0.f, 0.f};
388 std::string text;
389
391};
392
393struct DdsImage : public DdsObject
394{
396 glm::vec3 pos{0.f, 0.f, 0.f};
397 int width{0};
398 int height{0};
399 std::vector<uint8_t> pixels;
400
402};
403
404// =============================================================================
405// Phase 4/5/6 — 3D Solid, Surface and Extrusion objects
406// =============================================================================
407
408enum class SolidDrawMode { Wireframe = 0, Flat = 1, Smooth = 2, Solid = 1 };
409enum class ParamSurfaceFormula { Sphere = 0, Cylinder = 1, Torus = 2, Saddle = 3, Mobius = 4 };
410
423
424struct DdsBox : public DdsSolid3D {
425 float width{1.f};
426 float depth{1.f};
427 float height{1.f};
429};
430
431struct DdsSphere : public DdsSolid3D {
432 float radius{1.f};
434};
435
436struct DdsCylinder : public DdsSolid3D {
437 float radius{1.f};
438 float height{1.f};
439 int caps{1};
441};
442
443struct DdsCone : public DdsSolid3D {
444 float radius{1.f};
445 float height{1.f};
446 int cap{1};
448};
449
450struct DdsTorus : public DdsSolid3D {
451 float majorRadius{2.f};
452 float minorRadius{0.5f};
453 // slices = segments around the main axis; stacks = segments of tube cross-section.
455};
456
457struct DdsHeightMap : public DdsSolid3D {
458 int rows{0};
459 int cols{0};
460 float cellWidth{1.f};
461 float cellHeight{1.f};
462 std::vector<float> heights;
464};
465
474
475struct DdsExtrusion : public DdsSolid3D {
476 std::vector<glm::vec3> baseProfile;
477 glm::vec3 extrudeDir{0.f, 0.f, 1.f};
478 int capStart{1};
479 int capEnd{1};
481};
482
483// =============================================================================
484// DdsScene — the scene container
485// =============================================================================
486
502{
503public:
504 DdsScene() = default;
505 ~DdsScene() = default;
506
507 // Non-copyable (scene is always accessed through gState.dds)
508 DdsScene(const DdsScene &) = delete;
509 DdsScene &operator=(const DdsScene &) = delete;
510
511 // -------------------------------------------------------------------------
512 // Insert
513 // -------------------------------------------------------------------------
514
516 std::shared_ptr<DdsObject> append(std::shared_ptr<DdsObject> obj);
517
523 std::shared_ptr<DdsObject> appendWithId(std::shared_ptr<DdsObject> obj);
524
525 // -------------------------------------------------------------------------
526 // Lookup
527 // -------------------------------------------------------------------------
528
530 std::shared_ptr<DdsObject> findById(const std::string &id) const;
531
536 std::shared_ptr<DdsObject> findByLabel(const std::string &label) const;
537
539 std::string findIdByLabel(const std::string &label) const;
540
541 // -------------------------------------------------------------------------
542 // Removal
543 // -------------------------------------------------------------------------
544
546 bool remove(const std::string &id);
547
553
555 void clearAll();
556
558 void compact();
559
560 // -------------------------------------------------------------------------
561 // Introspection
562 // -------------------------------------------------------------------------
563
565 int count() const;
566
568 int countDrawing() const;
569
574 std::string idAt(int index) const;
575
576 // -------------------------------------------------------------------------
577 // Traversal
578 // -------------------------------------------------------------------------
579
581 template <typename Fn>
582 void forEach(Fn &&fn) const
583 {
584 for (const auto &id : order)
585 {
586 auto it = index.find(id);
587 if (it != index.end() && !it->second->deleted)
588 fn(*it->second);
589 }
590 }
591
593 template <typename Fn>
594 void forEachDrawing(Fn &&fn) const
595 {
596 for (const auto &id : order)
597 {
598 auto it = index.find(id);
599 if (it == index.end() || it->second->deleted)
600 continue;
601 const auto t = it->second->type;
602 if (t == DdsObjectType::Camera || t == DdsObjectType::Ucs ||
604 continue;
605 fn(*it->second);
606 }
607 }
608
616 template <typename Fn>
617 void forEachRenderRoot(Fn &&fn) const
618 {
619 std::unordered_set<std::string> referenced;
620 referenced.reserve(order.size());
621
622 for (const auto &id : order)
623 {
624 auto it = index.find(id);
625 if (it == index.end() || it->second->deleted)
626 continue;
627
628 const auto *children = [&]() -> const std::vector<std::string> * {
629 switch (it->second->type)
630 {
632 return &static_cast<const DdsTransform &>(*it->second).children;
634 return &static_cast<const DdsSetUnion &>(*it->second).operands;
636 return &static_cast<const DdsSetIntersection &>(*it->second).operands;
638 return &static_cast<const DdsSetDifference &>(*it->second).operands;
639 default:
640 return nullptr;
641 }
642 }();
643
644 if (!children)
645 continue;
646 for (const auto &childId : *children)
647 referenced.insert(childId);
648 }
649
650 for (const auto &id : order)
651 {
652 auto it = index.find(id);
653 if (it == index.end() || it->second->deleted)
654 continue;
655 const auto t = it->second->type;
656 if (t == DdsObjectType::Camera || t == DdsObjectType::Ucs ||
658 continue;
659 if (referenced.find(id) != referenced.end())
660 continue;
661 fn(*it->second);
662 }
663 }
664
665 // -------------------------------------------------------------------------
666 // Data members (public for direct access by bgi_state.cpp only)
667 // -------------------------------------------------------------------------
668 std::vector<std::string> order;
669 std::unordered_map<std::string, std::shared_ptr<DdsObject>> index;
670 uint64_t nextId{1};
671 uint64_t revision{1};
672
673private:
674 std::string genId() { return std::to_string(nextId++); }
675};
676
677} // namespace bgi
Camera stored in the DDS.
Definition bgi_dds.h:161
DdsCamera()
Definition bgi_dds.h:166
std::string name
Registry key in BgiState::cameras.
Definition bgi_dds.h:163
Camera3D camera
Full camera data.
Definition bgi_dds.h:164
Definition bgi_dds.h:137
DdsStyle style
Baked draw state at creation time.
Definition bgi_dds.h:144
std::string label
Optional user label; empty = unlabelled.
Definition bgi_dds.h:140
bool visible
Definition bgi_dds.h:142
DdsExternalAttributes externalAttributes
Generic external metadata for bridge/export workflows.
Definition bgi_dds.h:145
DdsObjectType type
Definition bgi_dds.h:141
bool deleted
Soft-delete; object stays in index.
Definition bgi_dds.h:143
virtual ~DdsObject()=default
std::string id
Auto-generated sequential key ("1", "2", …).
Definition bgi_dds.h:139
In-memory DDS scene graph.
Definition bgi_dds.h:502
DdsScene()=default
void forEachDrawing(Fn &&fn) const
Calls fn(DdsObject&) for non-deleted drawing-primitive objects only.
Definition bgi_dds.h:594
uint64_t revision
Definition bgi_dds.h:671
~DdsScene()=default
bool remove(const std::string &id)
Soft-deletes the object with the given id.
void compact()
Physically removes soft-deleted entries from order and index.
std::string idAt(int index) const
Returns the insertion-order ID at position index (0-based).
DdsScene(const DdsScene &)=delete
DdsScene & operator=(const DdsScene &)=delete
void clearAll()
Clears ALL objects (cameras, UCS, drawing objects).
std::vector< std::string > order
Definition bgi_dds.h:668
std::shared_ptr< DdsObject > appendWithId(std::shared_ptr< DdsObject > obj)
Appends an object that already has its id field set (used during deserialization to restore the origi...
void forEach(Fn &&fn) const
Calls fn(DdsObject&) for every non-deleted object in insertion order.
Definition bgi_dds.h:582
uint64_t nextId
Definition bgi_dds.h:670
std::string findIdByLabel(const std::string &label) const
Returns the ID of the first non-deleted object with the given label, or "".
std::shared_ptr< DdsObject > findByLabel(const std::string &label) const
Returns the first non-deleted object whose label equals label, or nullptr if none found.
std::shared_ptr< DdsObject > findById(const std::string &id) const
Returns the object with the given id, or nullptr if not found / deleted.
void forEachRenderRoot(Fn &&fn) const
Calls fn(DdsObject&) for top-level render roots only.
Definition bgi_dds.h:617
std::unordered_map< std::string, std::shared_ptr< DdsObject > > index
Definition bgi_dds.h:669
int count() const
Returns the number of non-deleted objects in the scene.
std::shared_ptr< DdsObject > append(std::shared_ptr< DdsObject > obj)
Assigns an auto-generated ID to obj and appends it to the scene.
int countDrawing() const
Returns the number of non-deleted drawing-primitive objects only.
void clearDrawingObjects()
Clears all drawing-primitive objects (type not Camera, Ucs, WorldExtentsObj).
Definition bgi_dds.h:225
DdsSetDifference()
Definition bgi_dds.h:232
int faceColor
Definition bgi_dds.h:229
int drawMode
Definition bgi_dds.h:227
std::vector< std::string > operands
Definition bgi_dds.h:230
int edgeColor
Definition bgi_dds.h:228
Definition bgi_dds.h:214
DdsSetIntersection()
Definition bgi_dds.h:221
std::vector< std::string > operands
Definition bgi_dds.h:219
int drawMode
Definition bgi_dds.h:216
int faceColor
Definition bgi_dds.h:218
int edgeColor
Definition bgi_dds.h:217
Definition bgi_dds.h:203
std::vector< std::string > operands
Definition bgi_dds.h:208
int faceColor
Definition bgi_dds.h:207
DdsSetUnion()
Definition bgi_dds.h:210
int edgeColor
Definition bgi_dds.h:206
int drawMode
Definition bgi_dds.h:205
Definition bgi_dds.h:194
glm::mat4 matrix
Definition bgi_dds.h:196
std::vector< std::string > children
Definition bgi_dds.h:197
DdsTransform()
Definition bgi_dds.h:199
UCS stored in the DDS.
Definition bgi_dds.h:176
CoordSystem ucs
Full UCS data.
Definition bgi_dds.h:179
std::string name
Registry key in BgiState::ucsSystems.
Definition bgi_dds.h:178
DdsUcs()
Definition bgi_dds.h:181
World-extents AABB stored in the DDS.
Definition bgi_dds.h:186
WorldExtents extents
Definition bgi_dds.h:188
DdsWorldExtentsObj()
Definition bgi_dds.h:190
Definition bgi_camera.h:28
SolidDrawMode
Definition bgi_dds.h:408
DdsObjectType
Definition bgi_dds.h:88
ParamSurfaceFormula
Definition bgi_dds.h:409
CoordSpace
Indicates the coordinate space in which a drawing object's coordinates are expressed when it was reco...
Definition bgi_dds.h:51
@ World3D
World-space 3-D coordinates (from wxbgi_world_* functions).
@ BgiPixel
Pixel integers from classic BGI, stored as (x, y, 0) world coords.
@ UcsLocal
UCS-local coordinates; ucsName identifies the frame.
3-D camera definition (Z-up, right-handed world coordinate system).
Definition bgi_types.h:348
A named user coordinate system (UCS).
Definition bgi_types.h:415
Definition bgi_dds.h:273
glm::vec3 centre
Definition bgi_dds.h:276
float startAngle
Definition bgi_dds.h:278
float radius
Definition bgi_dds.h:277
DdsArc()
Definition bgi_dds.h:281
float endAngle
Definition bgi_dds.h:279
CoordSpace coordSpace
Definition bgi_dds.h:274
std::string ucsName
Definition bgi_dds.h:275
Definition bgi_dds.h:354
CoordSpace coordSpace
Definition bgi_dds.h:355
float depth
Definition bgi_dds.h:359
bool topFlag
Definition bgi_dds.h:360
glm::vec3 p1
Definition bgi_dds.h:357
std::string ucsName
Definition bgi_dds.h:356
glm::vec3 p2
Definition bgi_dds.h:358
DdsBar3D()
Definition bgi_dds.h:362
Definition bgi_dds.h:344
glm::vec3 p2
Definition bgi_dds.h:348
DdsBar()
Definition bgi_dds.h:350
std::string ucsName
Definition bgi_dds.h:346
CoordSpace coordSpace
Definition bgi_dds.h:345
glm::vec3 p1
Definition bgi_dds.h:347
Definition bgi_dds.h:424
float depth
Extent along world Y axis.
Definition bgi_dds.h:426
DdsBox()
Definition bgi_dds.h:428
float width
Extent along world X axis.
Definition bgi_dds.h:425
float height
Extent along world Z axis.
Definition bgi_dds.h:427
Definition bgi_dds.h:263
CoordSpace coordSpace
Definition bgi_dds.h:264
float radius
Definition bgi_dds.h:267
glm::vec3 centre
Definition bgi_dds.h:266
std::string ucsName
Definition bgi_dds.h:265
DdsCircle()
Definition bgi_dds.h:269
Definition bgi_dds.h:443
DdsCone()
Definition bgi_dds.h:447
float radius
Definition bgi_dds.h:444
float height
Definition bgi_dds.h:445
int cap
Non-zero = draw the base disc cap.
Definition bgi_dds.h:446
Definition bgi_dds.h:436
float height
Definition bgi_dds.h:438
float radius
Definition bgi_dds.h:437
DdsCylinder()
Definition bgi_dds.h:440
int caps
Non-zero = draw top and bottom disc caps.
Definition bgi_dds.h:439
Definition bgi_dds.h:285
std::string ucsName
Definition bgi_dds.h:287
float rx
Definition bgi_dds.h:289
float startAngle
Definition bgi_dds.h:291
glm::vec3 centre
Definition bgi_dds.h:288
float endAngle
Definition bgi_dds.h:292
float ry
Definition bgi_dds.h:290
DdsEllipse()
Definition bgi_dds.h:294
CoordSpace coordSpace
Definition bgi_dds.h:286
Definition bgi_dds.h:79
std::unordered_map< std::string, std::string > values
Definition bgi_dds.h:80
Definition bgi_dds.h:475
glm::vec3 extrudeDir
Direction vector; its magnitude is the extrusion length.
Definition bgi_dds.h:477
int capEnd
Non-zero = fill the top polygon.
Definition bgi_dds.h:479
DdsExtrusion()
Definition bgi_dds.h:480
int capStart
Non-zero = fill the base polygon.
Definition bgi_dds.h:478
std::vector< glm::vec3 > baseProfile
2-D profile vertices (Z may be non-zero for UCS support).
Definition bgi_dds.h:476
Definition bgi_dds.h:298
CoordSpace coordSpace
Definition bgi_dds.h:299
DdsFillEllipse()
Definition bgi_dds.h:305
float ry
Definition bgi_dds.h:303
float rx
Definition bgi_dds.h:302
std::string ucsName
Definition bgi_dds.h:300
glm::vec3 centre
Definition bgi_dds.h:301
Definition bgi_dds.h:375
std::string ucsName
Definition bgi_dds.h:377
DdsFillPoly()
Definition bgi_dds.h:380
CoordSpace coordSpace
Definition bgi_dds.h:376
std::vector< glm::vec3 > pts
Definition bgi_dds.h:378
Definition bgi_dds.h:457
float cellWidth
World-unit spacing between columns (X direction).
Definition bgi_dds.h:460
int cols
Definition bgi_dds.h:459
int rows
Definition bgi_dds.h:458
DdsHeightMap()
Definition bgi_dds.h:463
float cellHeight
World-unit spacing between rows (Y direction).
Definition bgi_dds.h:461
std::vector< float > heights
row-major flat array of rows*cols Z values.
Definition bgi_dds.h:462
Definition bgi_dds.h:394
std::vector< uint8_t > pixels
Raw BGI palette-indexed pixels (width × height bytes).
Definition bgi_dds.h:399
int height
Definition bgi_dds.h:398
CoordSpace coordSpace
Definition bgi_dds.h:395
int width
Definition bgi_dds.h:397
DdsImage()
Definition bgi_dds.h:401
glm::vec3 pos
Definition bgi_dds.h:396
Definition bgi_dds.h:253
glm::vec3 p2
Definition bgi_dds.h:257
CoordSpace coordSpace
Definition bgi_dds.h:254
glm::vec3 p1
Definition bgi_dds.h:256
DdsLine()
Definition bgi_dds.h:259
std::string ucsName
Definition bgi_dds.h:255
Definition bgi_dds.h:466
float param2
Secondary parameter (e.g. minor radius for torus).
Definition bgi_dds.h:469
int vSteps
Definition bgi_dds.h:471
DdsParamSurface()
Definition bgi_dds.h:472
int uSteps
Definition bgi_dds.h:470
ParamSurfaceFormula formula
Definition bgi_dds.h:467
float param1
Primary parameter (e.g. radius for sphere).
Definition bgi_dds.h:468
Definition bgi_dds.h:309
float endAngle
Definition bgi_dds.h:315
DdsPieSlice()
Definition bgi_dds.h:317
glm::vec3 centre
Definition bgi_dds.h:312
CoordSpace coordSpace
Definition bgi_dds.h:310
float startAngle
Definition bgi_dds.h:314
float radius
Definition bgi_dds.h:313
std::string ucsName
Definition bgi_dds.h:311
Definition bgi_dds.h:243
CoordSpace coordSpace
Definition bgi_dds.h:244
int color
Definition bgi_dds.h:247
DdsPoint()
Definition bgi_dds.h:249
glm::vec3 pos
Definition bgi_dds.h:246
std::string ucsName
Definition bgi_dds.h:245
Definition bgi_dds.h:366
std::vector< glm::vec3 > pts
Definition bgi_dds.h:369
DdsPolygon()
Definition bgi_dds.h:371
CoordSpace coordSpace
Definition bgi_dds.h:367
std::string ucsName
Definition bgi_dds.h:368
Definition bgi_dds.h:334
DdsRectangle()
Definition bgi_dds.h:340
CoordSpace coordSpace
Definition bgi_dds.h:335
glm::vec3 p2
Definition bgi_dds.h:338
std::string ucsName
Definition bgi_dds.h:336
glm::vec3 p1
Definition bgi_dds.h:337
Definition bgi_dds.h:321
DdsSector()
Definition bgi_dds.h:330
CoordSpace coordSpace
Definition bgi_dds.h:322
float endAngle
Definition bgi_dds.h:328
float rx
Definition bgi_dds.h:325
glm::vec3 centre
Definition bgi_dds.h:324
std::string ucsName
Definition bgi_dds.h:323
float ry
Definition bgi_dds.h:326
float startAngle
Definition bgi_dds.h:327
Base for all Phase 4/5/6 solid/surface/extrusion objects.
Definition bgi_dds.h:413
glm::vec3 origin
Definition bgi_dds.h:416
int slices
Tessellation: segments around circular axis.
Definition bgi_dds.h:420
int edgeColor
Color for wireframe edges (BGI palette index).
Definition bgi_dds.h:418
std::string ucsName
Definition bgi_dds.h:415
CoordSpace coordSpace
Definition bgi_dds.h:414
int stacks
Tessellation: segments along height/depth axis.
Definition bgi_dds.h:421
int faceColor
Color for filled faces (BGI palette index).
Definition bgi_dds.h:419
SolidDrawMode drawMode
Definition bgi_dds.h:417
Definition bgi_dds.h:431
DdsSphere()
Definition bgi_dds.h:433
float radius
Definition bgi_dds.h:432
Baked rendering state captured at draw-call time.
Definition bgi_dds.h:69
int color
Definition bgi_dds.h:70
linesettingstype lineStyle
Definition bgi_dds.h:71
int writeMode
Definition bgi_dds.h:74
fillsettingstype fillStyle
Definition bgi_dds.h:72
int bkColor
Definition bgi_dds.h:75
textsettingstype textStyle
Definition bgi_dds.h:73
Definition bgi_dds.h:384
DdsText()
Definition bgi_dds.h:390
std::string ucsName
Definition bgi_dds.h:386
CoordSpace coordSpace
Definition bgi_dds.h:385
glm::vec3 pos
Definition bgi_dds.h:387
std::string text
Definition bgi_dds.h:388
Definition bgi_dds.h:450
float minorRadius
Radius of the tube.
Definition bgi_dds.h:452
DdsTorus()
Definition bgi_dds.h:454
float majorRadius
Distance from torus centre to tube centre.
Definition bgi_dds.h:451
Axis-aligned bounding box (AABB) representing the programmer's declared drawing extents in world spac...
Definition bgi_types.h:475
Definition bgi_types.h:264
Definition bgi_types.h:270
Definition bgi_types.h:283