GeomApi.r.h
Go to the documentation of this file.
1 /*--------------------------------------------------------------------------------------+
2 |
3 | Supplied under applicable software license agreement.
4 |
5 | Copyright (c) 2018 Bentley Systems, Incorporated. All rights reserved.
6 |
7 +---------------------------------------------------------------------------------------*/
8 #pragma once
9 #include <Bentley/Bentley.r.h>
11 
12 #if defined (mdl_resource_compiler) || defined (mdl_type_resource_generator)
13 
14 typedef struct {int32_t x,y;} Point2d;
15 typedef struct {T_Adouble x,y;} DPoint2d;
16 typedef struct {T_Adouble x,y,z;} DPoint3d;
17 typedef DPoint3d* DPoint3dP;
18 typedef DPoint3d const* DPoint3dCP;
19 typedef DPoint3d DVec3d;
20 typedef struct {T_Adouble form3d[3][3];} RotMatrix;
21 typedef struct {T_Adouble form3d[3][4];} Transform;
22 typedef struct {DPoint3d low, high;} DRange3d;
23 
24 struct BsplineParam
25  {
26  int32_t order;
27  int32_t closed;
28  int32_t numPoles;
29  int32_t numKnots;
30  int32_t numRules;
31  };
32 
33 struct BsplineDisplay
34  {
35  int32_t polygonDisplay;
36  int32_t curveDisplay;
37  int32_t rulesByLength;
38  };
39 
40 typedef struct msbsplinecurve
41  {
42  // Classic microstation bspline curve data members .....
43  int32_t type;
44  int32_t rational;
45  BsplineDisplay display;
46  BsplineParam params;
47  DPoint3d *poles; /* In homogeneous coordinates (weighted) */
48  T_Adouble *knots; /* Full knot vector */
49  T_Adouble *weights; /* Weights only if rational */
51 
52 #endif // defined (mdl_resource_compiler) || defined (mdl_type_resource_generator)
53 
54 
56 
58 typedef struct faceId
59  {
62 
63 #ifdef __cplusplus
64  bool operator < (struct faceId const& rhs) const { return (rhs.nodeId == nodeId) ? (entityId < rhs.entityId) : (nodeId < rhs.nodeId); }
65 #endif
66  } FaceId;
67 
69 typedef struct edgeId
70  {
71  FaceId faces[2];
72  } EdgeId;
73 
75 typedef struct vertexId
76  {
77  FaceId faces[3];
78  } VertexId;
79 
81 typedef struct FloatRgb {float red, green, blue;} FloatRgb;
82 
83 
85 typedef struct RgbFactor
86 {
87 T_Adouble red, green, blue;
88 #ifdef __cplusplus
89 static GEOMDLLIMPEXP RgbFactor FromIntColor (int32_t intColor);
92 static GEOMDLLIMPEXP RgbFactor From (DPoint3dCR data);
93 static GEOMDLLIMPEXP RgbFactor From (double r, double g, double b);
94 void GEOMDLLIMPEXP AddInPlace (RgbFactor const &other);
95 void GEOMDLLIMPEXP ScaleInPlace (double a);
97 int32_t ToIntColor () const;
98 #endif
99 } RgbFactor;
100 
MSBsplineCurve is a "Non uniform, rational Bspline curve".
Definition: MSBsplineCurve.h:46
struct DPoint3d const * DPoint3dCP
Definition: msgeomstructs_typedefs.h:79
T_Adouble red
Definition: GeomApi.r.h:87
uint32_t entityId
Definition: GeomApi.r.h:61
#define END_BENTLEY_GEOMETRY_NAMESPACE
Definition: Bentley.r.h:30
Contains common typedefs and #defines to be used by .cpp, .r and .mt source files (Bentley/Bentley...
vertex triple for solid topology references.
Definition: GeomApi.r.h:75
struct Bentley::vertexId VertexId
vertex triple for solid topology references.
face pair for solid topology references.
Definition: GeomApi.r.h:69
{nodeId, entityId} pair for solid topology references.
Definition: GeomApi.r.h:58
int int32_t
Definition: Bentley.r.h:92
Red, green, blue color data as doubles.
Definition: GeomApi.r.h:85
struct DPoint3d * DPoint3dP
Definition: msgeomstructs_typedefs.h:79
bool operator<(const basic_string< _CharT, _Traits, _Allocator > &__lhs, const basic_string< _CharT, _Traits, _Allocator > &__rhs)
Definition: basic_string.h:1326
struct Bentley::FloatRgb FloatRgb
Red, green, blue color data as floats.
Definition: msgeomstructs_typedefs.h:225
Red, green, blue color data as floats.
Definition: GeomApi.r.h:81
struct bSplineParam BsplineParam
Definition: msgeomstructs_typedefs.h:152
float red
Definition: GeomApi.r.h:81
struct Bentley::RgbFactor RgbFactor
Red, green, blue color data as doubles.
Definition: msgeomstructs_typedefs.h:226
struct bsplineDisplay BsplineDisplay
Definition: msgeomstructs_typedefs.h:155
uint32_t nodeId
Definition: GeomApi.r.h:60
#define BEGIN_BENTLEY_GEOMETRY_NAMESPACE
Definition: Bentley.r.h:29
struct DPoint3d const & DPoint3dCR
Definition: msgeomstructs_typedefs.h:79
struct Bentley::edgeId EdgeId
face pair for solid topology references.
unsigned int uint32_t
Definition: Bentley.r.h:93
struct Bentley::faceId FaceId
{nodeId, entityId} pair for solid topology references.
A 3d low and high corner pair for range boxes.
Definition: drange3d.h:20

Copyright © 2017 Bentley Systems, Incorporated. All rights reserved.