CFx SDK Documentation 2026 SP0
Loading...
Searching...
No Matches
GiPatternAttributes.h
Go to the documentation of this file.
1
2// Copyright (C) 2002-2024, Open Design Alliance (the "Alliance").
3// All rights reserved.
4//
5// This software and its documentation and related materials are owned by
6// the Alliance. The software may only be incorporated into application
7// programs owned by members of the Alliance, subject to a signed
8// Membership Agreement and Supplemental Software License Agreement with the
9// Alliance. The structure and organization of this software are the valuable
10// trade secrets of the Alliance and its suppliers. The software is also
11// protected by copyright law and international treaty provisions. Application
12// programs incorporating this software must include the following statement
13// with their copyright notices:
14//
15// This application incorporates Open Design Alliance software pursuant to a license
16// agreement with Open Design Alliance.
17// Open Design Alliance Copyright (C) 2002-2024 by Open Design Alliance.
18// All rights reserved.
19//
20// By use of this software, its documentation or related materials, you
21// acknowledge and accept the above terms.
23
24
25#ifndef __OD_GI_PATTERNATTRIBUTES__
26#define __OD_GI_PATTERNATTRIBUTES__
27
28#include "TD_PackPush.h"
29
30#include "Gi/GiExport.h"
31
32#include "Int32Array.h"
33#include "Ge/GeDoubleArray.h"
34
35#include "Ge/GePoint2dArray.h"
36#include "Ge/GeVector2dArray.h"
37
38#include "Ge/GePoint3dArray.h"
39
40class OdGeMatrix3d;
41class OdGeScale2d;
42
49{
50public:
56
63 bool isEmpty() const;
64
68 void clear();
69
95 void calcAttribs(const OdGeSurface* pSrf, const OdGePoint2d& faceFillOrigin, double rotAngle,
96 const OdGePoint2dArray& basePts, const OdGeDoubleArray& angles, const OdGeVector2dArray& offsets,
97 const OdInt32Array& faceList, const OdGePoint3dArray& vertexList,
98 const OdGePoint2dArray& trMidPts, const OdGeDoubleArray& annotationScales,
99 const OdGeScale2d& globalScaleUv, bool swapUv, double uDerScale,
100 const OdGeMatrix3d* pTransfMx);
101
116 double calcAngleBetweenCurves(const OdGeSurface* pSrf, bool swapUv, double uDerScale, const OdGePoint2d& uvPt, const OdGeVector2d& dir, bool mirror);
117
120
123
126
129
132
133private:
134
135 void init(const OdGeSurface* pSrf, bool swapUv, double uDerScale, const OdGeMatrix3d* pTransfMx = NULL);
136
137 void resize(unsigned int nTr, unsigned int nLines, const OdGePoint2d& orig, double rotAngle, double sc);
138
139 bool calcAttribsInt(const OdGePoint2d& faceFillOrigin, double rotAngle,
140 const OdGePoint2dArray& basePts, const OdGeDoubleArray& angles, const OdGeVector2dArray& offsets,
141 const OdInt32Array& faceList, const OdGePoint3dArray& vertexList,
142 const OdGePoint2dArray& trMidPts, const OdGeDoubleArray& annotationScale,
143 const OdGeScale2d& scaleUv);
144
145 OdGePoint3d srfEvalPoint(const OdGePoint2d& uvPt, OdGeVector3d& derU, OdGeVector3d& derV, OdGeVector3d* pNrml = NULL) const;
146
147 OdGeCurve3d* srfMakeIsoparamCurve(bool byU, double param) const;
148
149 double calcAngleBetweenCurvesIntMirror(const OdGePoint2d& uvPt, const OdGeVector2d& dir_, bool mirror, OdGeMatrix2d* pFffMx = NULL) const;
150 double calcAngleBetweenCurvesInt(const OdGePoint2d& uvPt, const OdGeVector2d& dir, OdGeMatrix2d* pFffMx) const;
151
152 bool isUnitScaling() const;
153
154 const OdGeSurface* m_pSrf;
155 double m_uDerScale;
156 bool m_swapUv;
157
158 const OdGeMatrix3d* m_pTransfMx;
159};
160
161#endif // __OD_GI_PATTERNATTRIBUTES__
OdArray< OdGePoint3d, OdMemoryAllocator< OdGePoint3d > > OdGePoint3dArray
OdArray< double, OdMemoryAllocator< double > > OdGeDoubleArray
OdArray< OdGePoint2d, OdMemoryAllocator< OdGePoint2d > > OdGePoint2dArray
Definition GeGbl.h:45
OdArray< OdGeVector2d > OdGeVector2dArray
#define ODGI_EXPORT
Definition GiExport.h:35
OdArray< OdInt32, OdMemoryAllocator< OdInt32 > > OdInt32Array
Definition Int32Array.h:34
OdGeVector2dArray fillOffsetDirectionArr
OdGePoint2dArray fillOriginArr
OdGeVector2dArray fillDirectionArr
OdGeDoubleArray fillOffsetScaleArr
OdGeDoubleArray fillDashesScaleArr
void calcAttribs(const OdGeSurface *pSrf, const OdGePoint2d &faceFillOrigin, double rotAngle, const OdGePoint2dArray &basePts, const OdGeDoubleArray &angles, const OdGeVector2dArray &offsets, const OdInt32Array &faceList, const OdGePoint3dArray &vertexList, const OdGePoint2dArray &trMidPts, const OdGeDoubleArray &annotationScales, const OdGeScale2d &globalScaleUv, bool swapUv, double uDerScale, const OdGeMatrix3d *pTransfMx)
bool isEmpty() const
double calcAngleBetweenCurves(const OdGeSurface *pSrf, bool swapUv, double uDerScale, const OdGePoint2d &uvPt, const OdGeVector2d &dir, bool mirror)