DBilinearPatch3d.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 
12 
18 struct GEOMDLLIMPEXP DBilinearPatch3d
20 {
22 DPoint3d point[2][2];
25 
27 DBilinearPatch3d (DPoint3dCR xyz0, DPoint3dCR xyz10, DPoint3dCR xyz01, DPoint3dCR xyz11);
29 DBilinearPatch3d (DPoint2dCR xyz0, DPoint2dCR xyz10, DPoint2dCR xyz01, DPoint2dCR xyz11);
30 
32 DBilinearPatch3d (DSegment3dCR lowerEdge, DSegment3dCR upperEdge);
33 
35 DPoint3d Evaluate (double u, double v) const;
37 void Evaluate (double u, double v, DPoint3dR xyz, DVec3dR dXdu, DVec3dR dXdv) const;
39 void EvaluateNormal (double u, double v, DPoint3dR xyz, DVec3dR unitNormal) const;
40 
41 // fill a grid with (at least 2 points) on each edge.
42 void EvaluateGrid (int numUPoint, int numVPoint, bvector<DPoint3d> &gridPoints) const;
43 
46 bool PerpendicularsOnBoundedPatch (DPoint3dCR spacePoint, bvector<DPoint2d> &uv) const;
49 DSegment3d GetCCWEdge (int i) const;
50 
53 DVec3d GetUEdgeVector (int i) const;
54 
56 DVec3d GetDiagonalFrom00 () const;
58 DVec3d GetDiagonalFrom01 () const;
59 
60 
63 DVec3d GetVEdgeVector (int i) const;
64 
66 bool IsParallelogram () const;
67 
69 bool IsPlanar () const;
70 
73 bool IsPlanar (double angleTol) const;
74 };
75 
struct DVec3d & DVec3dR
Definition: msgeomstructs_typedefs.h:89
#define END_BENTLEY_GEOMETRY_NAMESPACE
Definition: Bentley.r.h:30
4-sided patch defined by its 4 vertices.
Definition: DBilinearPatch3d.h:19
struct DPoint2d const & DPoint2dCR
Definition: msgeomstructs_typedefs.h:78
struct DPoint3d & DPoint3dR
Definition: msgeomstructs_typedefs.h:79
struct DSegment3d const & DSegment3dCR
Definition: msgeomstructs_typedefs.h:115
#define BEGIN_BENTLEY_GEOMETRY_NAMESPACE
Definition: Bentley.r.h:29
Start and end points of a line segment.
Definition: dsegment3d.h:16
struct DPoint3d const & DPoint3dCR
Definition: msgeomstructs_typedefs.h:79

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