CFx SDK Documentation 2026 SP0
Loading...
Searching...
No Matches
GiLightTraits.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#ifndef __OD_GI_LIGHT_TRAITS__
25#define __OD_GI_LIGHT_TRAITS__
26
27#include "TD_PackPush.h"
28
29#include "OdaDefs.h"
30#include "Gi/Gi.h"
31#include "GiDrawable.h"
32#include "OdString.h"
33#include "Ge/GeVector3d.h"
34#include "Gs/GsFiler.h"
35
43{
44public:
46
52 virtual void setOn(bool on) = 0;
53
60 virtual bool isOn() const = 0;
61};
62
67
73{
75 double red;
77 double green;
79 double blue;
80
84 OdGiColorRGB() : red(0.0), green(0.0), blue(0.0) { }
85
93 OdGiColorRGB(double _red, double _green, double _blue) : red(_red), green(_green), blue(_blue) { }
94
95 friend OdGiColorRGB operator +(const OdGiColorRGB &c1, const OdGiColorRGB &c2)
96 {
97 return OdGiColorRGB(c1.red + c2.red, c1.green + c2.green, c1.blue + c2.blue);
98 }
99 friend OdGiColorRGB operator +(const OdGiColorRGB &c, double s)
100 {
101 return OdGiColorRGB(c.red + s, c.green + s, c.blue + s);
102 }
103 friend OdGiColorRGB operator +(double s, const OdGiColorRGB &c)
104 {
105 return OdGiColorRGB(s + c.red, s + c.green, s + c.blue);
106 }
107
109 {
110 return OdGiColorRGB(c1.red - c2.red, c1.green - c2.green, c1.blue - c2.blue);
111 }
112 friend OdGiColorRGB operator -(const OdGiColorRGB &c, double s)
113 {
114 return OdGiColorRGB(c.red - s, c.green - s, c.blue - s);
115 }
116 friend OdGiColorRGB operator -(double s, const OdGiColorRGB &c)
117 {
118 return OdGiColorRGB(s - c.red, s - c.green, s - c.blue);
119 }
120
122 {
123 return OdGiColorRGB(c1.red * c2.red, c1.green * c2.green, c1.blue * c2.blue);
124 }
125 friend OdGiColorRGB operator *(const OdGiColorRGB &c, double s)
126 {
127 return OdGiColorRGB(c.red * s, c.green * s, c.blue * s);
128 }
129 friend OdGiColorRGB operator *(double s, const OdGiColorRGB &c)
130 {
131 return OdGiColorRGB(s * c.red, s * c.green, s * c.blue);
132 }
133
135 {
136 return OdGiColorRGB(c1.red / c2.red, c1.green / c2.green, c1.blue / c2.blue);
137 }
138 friend OdGiColorRGB operator /(const OdGiColorRGB &c, double s)
139 {
140 return OdGiColorRGB(c.red / s, c.green / s, c.blue / s);
141 }
142 friend OdGiColorRGB operator /(double s, const OdGiColorRGB &c)
143 {
144 return OdGiColorRGB(s / c.red, s / c.green, s / c.blue);
145 }
146};
147
155{
156public:
175
182
192
201 bool operator ==(const OdGiShadowParameters &parms) const;
202
211 bool operator !=(const OdGiShadowParameters &parms) const;
212
225
241
247 void setShadowsOn(bool on);
248
255 bool shadowsOn() const;
256
257
258
264 void setShadowType(ShadowType typ);
265
272 ShadowType shadowType() const;
273
274
275
285 bool setShadowMapSize(OdUInt16 sz);
286
297 OdUInt16 shadowMapSize() const;
298
299
300
310 bool setShadowMapSoftness(OdUInt8 soft);
311
319
320
333 bool setShadowSamples(OdUInt16 nSamples);
334
345 OdUInt16 shadowSamples() const;
346
347
348
354 void setShapeVisibility(bool bVisibility);
355
362 bool shapeVisibility() const;
363
364
365
375
383
384
385
395 bool setExtendedLightLength(double dLength);
396
403 double extendedLightLength() const;
404
405
406
416 bool setExtendedLightWidth(double dWidth);
417
424 double extendedLightWidth() const;
425
426
427
440 bool setExtendedLightRadius(double dRadius);
441
448 double extendedLightRadius() const;
449
450
451
457 inline void save(OdGsFiler * pFiler) const {
458 pFiler->wrBool(shadowsOn());
459 pFiler->wrUInt8((OdUInt8)shadowType());
460 pFiler->wrUInt16(shadowMapSize());
461 pFiler->wrUInt8(shadowMapSoftness());
462 pFiler->wrBool(shapeVisibility());
464 pFiler->wrDouble(extendedLightLength());
465 pFiler->wrDouble(extendedLightWidth());
466 pFiler->wrDouble(extendedLightRadius());
467 }
468
474 inline void load(OdGsFiler * pFiler) {
475 setShadowsOn(pFiler->rdBool());
476 setShadowType((ShadowType)pFiler->rdUInt8());
477 setShadowMapSize(pFiler->rdUInt16());
478 setShadowMapSoftness(pFiler->rdUInt8());
479 setShapeVisibility(pFiler->rdBool());
484 }
485
486
487private:
488 bool m_bShadowsOn;
489 OdUInt8 m_shadowMapSoftness;
490 bool m_bShapeVisible;
491 ShadowType m_shadowType;
492 OdUInt16 m_shadowMapSize;
493 OdUInt16 m_shadowSamples;
494 ExtendedLightShape m_lightShape;
495 double m_lightLength;
496 double m_lightWidth;
497 double m_lightRadius;
498};
499
501 : m_bShadowsOn(true)
502 , m_shadowMapSoftness(1)
503 , m_bShapeVisible(false)
505 , m_shadowMapSize(256)
506 , m_shadowSamples(16)
507 , m_lightShape(kSphere)
508 , m_lightLength(0.0)
509 , m_lightWidth(0.0)
510 , m_lightRadius(0.0)
511{
512}
513
515{
516 return (m_bShadowsOn == parms.m_bShadowsOn) &&
517 (m_shadowType == parms.m_shadowType) &&
518 (m_shadowMapSize == parms.m_shadowMapSize) &&
519 (m_shadowMapSoftness == parms.m_shadowMapSoftness) &&
520 (m_shadowSamples == parms.m_shadowSamples) &&
521 (m_bShapeVisible == parms.m_bShapeVisible) &&
522 (m_lightShape == parms.m_lightShape) &&
523 OdEqual(m_lightLength , parms.m_lightLength) &&
524 OdEqual(m_lightWidth , parms.m_lightWidth) &&
525 OdEqual(m_lightRadius , parms.m_lightRadius);
526}
527
529{
530 return (m_bShadowsOn != parms.m_bShadowsOn) ||
531 (m_shadowType != parms.m_shadowType) ||
532 (m_shadowMapSize != parms.m_shadowMapSize) ||
533 (m_shadowMapSoftness != parms.m_shadowMapSoftness) ||
534 (m_shadowSamples != parms.m_shadowSamples) ||
535 (m_bShapeVisible != parms.m_bShapeVisible) ||
536 (m_lightShape != parms.m_lightShape) ||
537 !OdEqual(m_lightLength, parms.m_lightLength) ||
538 !OdEqual(m_lightWidth , parms.m_lightWidth) ||
539 !OdEqual(m_lightRadius, parms.m_lightRadius);
540}
541
543{
544 m_bShadowsOn = on;
545}
546
548{
549 return m_bShadowsOn;
550}
551
553{
554 m_shadowType = typ;
555}
556
558{
559 return m_shadowType;
560}
561
563{
564 if((sz & (sz-1)) == 0 && sz >= 64 && sz <= 4096) // valid values are 64, 128, 256, 512, 1024, 2048, and 4096
565 {
566 m_shadowMapSize = sz;
567 return true;
568 }
569 else
570 {
571 return false;
572 }
573}
574
576{
577 return m_shadowMapSize;
578}
579
581{
582 m_shadowMapSoftness = soft;
583 return true;
584}
585
587{
588 return m_shadowMapSoftness;
589}
590
592{
593 m_shadowSamples = nSamples;
594 return true;
595}
596
598{
599 return m_shadowSamples;
600}
601
602inline void OdGiShadowParameters::setShapeVisibility(bool bVisibility)
603{
604 m_bShapeVisible = bVisibility;
605}
606
608{
609 return m_bShapeVisible;
610}
611
613{
614 m_lightShape = lightShape;
615}
616
621
623{
624 m_lightLength = dLength;
625 return true;
626}
627
629{
630 return m_lightLength;
631}
632
634{
635 m_lightWidth = dWidth;
636 return true;
637}
638
640{
641 return m_lightWidth;
642}
643
645{
646 m_lightRadius = dRadius;
647 return true;
648}
649
651{
652 return m_lightRadius;
653}
654
664{
665public:
678
689
690
691
698
706
707
708
714 void setUseLimits(bool on);
715
722 bool useLimits() const;
723
724
725
732 void setLimits(double startlim, double endlim);
733
743 double startLimit() const;
744
754 double endLimit() const;
755
756
757
763 void save(OdGsFiler *pFiler) const;
764
770 void load(OdGsFiler *pFiler);
771
778 bool operator ==(const OdGiLightAttenuation &other) const;
779
786 bool operator !=(const OdGiLightAttenuation &other) const;
787
788private:
789 AttenuationType m_attenType;
790 bool m_bUseAttenLimits;
791 double m_dAttenStartLimit;
792 double m_dAttenEndLimit;
793};
794
796: m_attenType(OdGiLightAttenuation::kNone)
797, m_bUseAttenLimits(false)
798, m_dAttenStartLimit(1.0)
799, m_dAttenEndLimit(10.0)
800{
801}
802
804{
805 m_attenType = typ;
806}
807
812
814{
815 m_bUseAttenLimits = on;
816}
817
819{
820 return m_bUseAttenLimits;
821}
822
823inline void OdGiLightAttenuation::setLimits(double startlim, double endlim)
824{
825 m_dAttenStartLimit = startlim;
826 m_dAttenEndLimit = endlim;
827}
828
830{
831 return m_dAttenStartLimit;
832}
833
835{
836 return m_dAttenEndLimit;
837}
838
839inline void OdGiLightAttenuation::save(OdGsFiler * pFiler) const {
840 pFiler->wrUInt8(OdUInt8(m_attenType));
841 pFiler->wrBool(m_bUseAttenLimits);
842 pFiler->wrDouble(m_dAttenStartLimit);
843 pFiler->wrDouble(m_dAttenEndLimit);
844}
845
847 m_attenType = AttenuationType(pFiler->rdUInt8());
848 m_bUseAttenLimits = pFiler->rdBool();
849 m_dAttenStartLimit = pFiler->rdDouble();
850 m_dAttenEndLimit = pFiler->rdDouble();
851}
852
854{
855 return (m_attenType == other.m_attenType) &&
856 (m_bUseAttenLimits == other.m_bUseAttenLimits) &&
857 (m_dAttenStartLimit == other.m_dAttenStartLimit) &&
858 (m_dAttenEndLimit == other.m_dAttenEndLimit);
859 }
860
862{
863 return (m_attenType != other.m_attenType) ||
864 (m_bUseAttenLimits != other.m_bUseAttenLimits) ||
865 (m_dAttenStartLimit != other.m_dAttenStartLimit) ||
866 (m_dAttenEndLimit != other.m_dAttenEndLimit);
867}
868
878{
879public:
904
913 bool operator==(const OdGiSkyParameters& params) const;
914
915
916
922 void setIllumination(bool enable);
923
930 bool illumination() const;
931
932
933
939 void setIntensityFactor(double intensity);
940
947 double intensityFactor() const;
948
949
950
956 void setHaze(double haze);
957
964 double haze() const;
965
966
967
973 void setHorizonHeight(double height);
974
981 double horizonHeight() const;
982
983
984
990 void setHorizonBlur(double blur);
991
998 double horizonBlur() const;
999
1000
1001
1007 void setGroundColor(const OdCmEntityColor& color);
1008
1016
1017
1018
1024 void setNightColor(const OdCmEntityColor& color);
1025
1033
1034
1035
1041 void setAerialPerspective(bool apply);
1042
1049 bool aerialPerspective() const;
1050
1051
1057 void setVisibilityDistance(double distance);
1058
1065 double visibilityDistance() const;
1066
1067
1068
1074 void setDiskScale(double scale);
1075
1082 double diskScale() const;
1083
1084
1085
1091 void setGlowIntensity(double intensity);
1092
1099 double glowIntensity() const;
1100
1101
1102
1108 void setDiskIntensity(double intensity);
1109
1116 double diskIntensity() const;
1117
1118
1119
1125 void setSolarDiskSamples(OdUInt16 samples);
1126
1133 OdUInt16 solarDiskSamples() const;
1134
1135
1136
1142 void setSunDirection(const OdGeVector3d& sundir);
1143
1150 const OdGeVector3d& sunDirection() const;
1151
1152
1153
1159 void setRedBlueShift(double redBlueShift);
1160
1167 double redBlueShift() const;
1168
1169
1170
1176 void setSaturation(double saturation);
1177
1184 double saturation() const;
1185private:
1186 bool m_status;
1187 double m_intensityFactor;
1188 double m_haze;
1189 double m_horizonHeight;
1190 double m_horizonBlur;
1191 OdCmEntityColor m_groundColor;
1192 OdCmEntityColor m_nightColor;
1193 bool m_aerialPerspective;
1194 double m_visibilityDistance;
1195 double m_diskScale;
1196 double m_glowIntensity;
1197 double m_diskIntensity;
1198 OdUInt16 m_solarDiskSamples;
1199 OdGeVector3d m_sunDirection;
1200 double m_redBlueShift;
1201 double m_saturation;
1202};
1203
1205: m_status(false)
1206, m_intensityFactor(1.0)
1207, m_haze(0.0)
1208, m_horizonHeight(0.0)
1209, m_horizonBlur(0.1)
1210, m_aerialPerspective(false)
1211, m_visibilityDistance(10000.0)
1212, m_diskScale(4.0)
1213, m_glowIntensity(1.0)
1214, m_diskIntensity(1.0)
1215, m_solarDiskSamples(8)
1216, m_redBlueShift(0.0)
1217, m_saturation(1.0)
1218{
1219 m_groundColor.setColor(0xc2808080);
1220 m_nightColor.setColor(0xc2010205);
1221 m_sunDirection.set(0.35, 1.0, -0.25);
1222}
1223
1225{
1226 if (m_status != params.m_status) return false;
1227 if (m_intensityFactor != params.m_intensityFactor) return false;
1228 if (m_haze != params.m_haze) return false;
1229 if (m_horizonHeight != params.m_horizonHeight) return false;
1230 if (m_horizonBlur != params.m_horizonBlur) return false;
1231 if (m_groundColor != params.m_groundColor) return false;
1232 if (m_nightColor != params.m_nightColor) return false;
1233 if (m_aerialPerspective != params.m_aerialPerspective) return false;
1234 if (m_visibilityDistance != params.m_visibilityDistance) return false;
1235 if (m_diskScale != params.m_diskScale) return false;
1236 if (m_glowIntensity != params.m_glowIntensity) return false;
1237 if (m_diskIntensity != params.m_diskIntensity) return false;
1238 if (m_solarDiskSamples != params.m_solarDiskSamples) return false;
1239 if (m_sunDirection != params.m_sunDirection) return false;
1240 if (m_redBlueShift != params.m_redBlueShift) return false;
1241 if (m_saturation != params.m_saturation) return false;
1242 return true;
1243}
1244
1246{
1247 m_status = enable;
1248}
1250{
1251 return m_status;
1252}
1253inline void OdGiSkyParameters::setIntensityFactor(double intensity)
1254{
1255 m_intensityFactor = intensity;
1256}
1258{
1259 return m_intensityFactor;
1260}
1262{
1263 m_haze = haze;
1264}
1265inline double OdGiSkyParameters::haze() const
1266{
1267 return m_haze;
1268}
1270{
1271 m_horizonHeight = height;
1272}
1274{
1275 return m_horizonHeight;
1276}
1278{
1279 m_horizonBlur = blur;
1280}
1282{
1283 return m_horizonBlur;
1284}
1286{
1287 m_groundColor = color;
1288}
1290{
1291 return m_groundColor;
1292}
1294{
1295 m_nightColor = color;
1296}
1298{
1299 return m_nightColor;
1300}
1302{
1303 m_aerialPerspective = apply;
1304}
1306{
1307 return m_aerialPerspective;
1308}
1310{
1311 m_visibilityDistance = distance;
1312}
1314{
1315 return m_visibilityDistance;
1316}
1318{
1319 m_diskScale = scale;
1320}
1321inline double OdGiSkyParameters::diskScale() const
1322{
1323 return m_diskScale;
1324}
1325inline void OdGiSkyParameters::setGlowIntensity(double intensity)
1326{
1327 m_glowIntensity = intensity;
1328}
1330{
1331 return m_glowIntensity;
1332}
1333inline void OdGiSkyParameters::setDiskIntensity(double intensity)
1334{
1335 m_diskIntensity = intensity;
1336}
1338{
1339 return m_diskIntensity;
1340}
1342{
1343 m_solarDiskSamples = samples;
1344}
1346{
1347 return m_solarDiskSamples;
1348}
1350{
1351 m_sunDirection = sundir;
1352}
1354{
1355 return m_sunDirection;
1356}
1358{
1359 m_redBlueShift = redBlueShift;
1360}
1362{
1363 return m_redBlueShift;
1364}
1366{
1367 m_saturation = saturation;
1368}
1370{
1371 return m_saturation;
1372}
1373
1383{
1384public:
1386
1392 virtual void setIntensity(double inten) = 0;
1393
1400 virtual double intensity() const = 0;
1401
1402
1403
1409 virtual void setLightColor(const OdCmEntityColor& color) = 0;
1410
1417 virtual OdCmEntityColor lightColor() const = 0;
1418
1419
1420
1427
1435};
1436
1441
1451{
1452public:
1454
1460 virtual void setPosition(const OdGePoint3d& pos) = 0;
1461
1468 virtual OdGePoint3d position() const = 0;
1469
1470
1471
1479
1485 virtual void setAttenuation(const OdGiLightAttenuation& atten) = 0;
1486
1487
1488
1494 virtual void setPhysicalIntensity(double fIntensity) = 0;
1495
1502 virtual double physicalIntensity() const = 0;
1503
1504
1505
1511 virtual void setLampColor(const OdGiColorRGB& color) = 0;
1512
1519 virtual OdGiColorRGB lampColor() const = 0;
1520
1521
1522
1528 virtual void setHasTarget(bool bTarget) = 0;
1529
1536 virtual bool hasTarget() const = 0;
1537
1538
1539
1545 virtual void setTargetLocation(const OdGePoint3d &loc) = 0;
1546
1553 virtual OdGePoint3d targetLocation() const = 0;
1554
1555
1556
1557 virtual void setHemisphericalDistribution(bool bHemisphere) = 0;
1558 virtual bool hemisphericalDistribution() const = 0;
1559};
1560
1565
1566
1575{
1576public:
1578
1584 virtual void setPosition(const OdGePoint3d& pos) = 0;
1585
1592 virtual OdGePoint3d position() const = 0;
1593
1594
1595
1601 virtual void setTargetLocation(const OdGePoint3d& loc) = 0;
1602
1609 virtual OdGePoint3d targetLocation() const = 0;
1610
1611
1612
1619 virtual bool setHotspotAndFalloff(double hotspot, double falloff) = 0;
1620
1627 virtual double hotspot() const = 0;
1628
1635 virtual double falloff() const = 0;
1636
1637
1638
1646
1652 virtual void setAttenuation(const OdGiLightAttenuation& atten) = 0;
1653
1654
1655
1661 virtual void setPhysicalIntensity(double fIntensity) = 0;
1662
1669 virtual double physicalIntensity() const = 0;
1670
1671
1672
1678 virtual void setLampColor(const OdGiColorRGB& color) = 0;
1679
1686 virtual OdGiColorRGB lampColor() const = 0;
1687};
1688
1693
1694
1703{
1704public:
1706
1712 virtual void setLightDirection(const OdGeVector3d& vec) = 0;
1713
1720 virtual OdGeVector3d lightDirection() const = 0;
1721
1722
1723
1729 virtual void setIsSunlight(bool isSunlight) = 0;
1730
1737 virtual bool isSunlight() const = 0;
1738
1739
1740
1746 virtual void setPhysicalIntensity(double fIntensity) = 0;
1747
1754 virtual double physicalIntensity() const = 0;
1755
1756
1757
1763 virtual void setLampColor(const OdGiColorRGB& color) = 0;
1764
1771 virtual OdGiColorRGB lampColor() const = 0;
1772
1773
1774
1781
1788 virtual void skyParameters(OdGiSkyParameters &params) const = 0;
1789};
1790
1795
1807{
1808public:
1810
1815 {
1822 };
1823
1838
1844 virtual void setWebFile(const OdString &fileName) = 0;
1845
1849 virtual OdString webFile() const = 0;
1850
1856 virtual void setWebFileStream(OdStreamBufPtr& pWebStream) = 0;
1857
1861 virtual OdStreamBufPtr webFileStream() const = 0;
1862
1869 virtual void setWebRotation(OdGeVector3d fRot) = 0;
1870
1874 virtual OdGeVector3d webRotation() const = 0;
1875
1881 virtual void setWebFlux(double fFlux) = 0;
1882
1886 virtual double webFlux() const = 0;
1887
1894
1898 virtual WebFileType webFileType() const = 0;
1899
1905 virtual void setWebSymmetry(WebSymmetry sym) = 0;
1906
1910 virtual WebSymmetry webSymmetry() const = 0;
1911
1917 virtual void setWebHorzAng90to270(bool bFlag) = 0;
1918
1925 virtual bool webHorzAng90to270() const = 0;
1926};
1927
1932
1933
1939{
1940public:
1942 // returned via subSetAttributes()
1943 enum
1944 {
1946 };
1947
1951 virtual OdUInt32 viewportId() const = 0;
1952
1958 virtual OdDbStub* viewportObjectId() const = 0;
1959
1960
1966 virtual void setOn(bool on) = 0;
1967
1974 virtual bool isOn() const = 0;
1975
1976 virtual void setDimming(double dim) = 0;
1977 virtual double dimming() const = 0;
1978};
1979
1984
1985#include "TD_PackPop.h"
1986
1987#endif // __OD_GI_LIGHT_TRAITS__
OdSmartPtr< OdStreamBuf > OdStreamBufPtr
true
scale
false
Definition DimVarDefs.h:165
OdSmartPtr< OdGiLightTraitsVpDep > OdGiLightTraitsVpDepPtr
OdSmartPtr< OdGiPointLightTraits > OdGiPointLightTraitsPtr
OdSmartPtr< OdGiWebLightTraits > OdGiWebLightTraitsPtr
OdSmartPtr< OdGiStandardLightTraits > OdGiStandardLightTraitsPtr
OdSmartPtr< OdGiSpotLightTraits > OdGiSpotLightTraitsPtr
OdSmartPtr< OdGiDistantLightTraits > OdGiDistantLightTraitsPtr
OdSmartPtr< OdGiLightTraits > OdGiLightTraitsPtr
unsigned int OdUInt32
unsigned short OdUInt16
unsigned char OdUInt8
bool OdEqual(double x, double y, double tol=1.e-10)
Definition OdaDefs.h:542
#define FIRSTDLL_EXPORT
Definition RootExport.h:39
virtual OdGiColorRGB lampColor() const =0
virtual void skyParameters(OdGiSkyParameters &params) const =0
virtual void setLightDirection(const OdGeVector3d &vec)=0
virtual bool isSunlight() const =0
virtual void setSkyParameters(const OdGiSkyParameters &params)=0
virtual void setLampColor(const OdGiColorRGB &color)=0
virtual void setPhysicalIntensity(double fIntensity)=0
virtual void setIsSunlight(bool isSunlight)=0
ODRX_DECLARE_MEMBERS(OdGiDistantLightTraits)
virtual double physicalIntensity() const =0
virtual OdGeVector3d lightDirection() const =0
void save(OdGsFiler *pFiler) const
double startLimit() const
AttenuationType attenuationType() const
bool operator==(const OdGiLightAttenuation &other) const
void setUseLimits(bool on)
void load(OdGsFiler *pFiler)
bool operator!=(const OdGiLightAttenuation &other) const
void setAttenuationType(AttenuationType typ)
double endLimit() const
void setLimits(double startlim, double endlim)
virtual void setOn(bool on)=0
ODRX_DECLARE_MEMBERS(OdGiLightTraits)
virtual bool isOn() const =0
virtual double dimming() const =0
virtual void setDimming(double dim)=0
virtual OdDbStub * viewportObjectId() const =0
virtual bool isOn() const =0
virtual OdUInt32 viewportId() const =0
ODRX_DECLARE_MEMBERS(OdGiLightTraitsVpDep)
virtual void setOn(bool on)=0
virtual void setPosition(const OdGePoint3d &pos)=0
virtual OdGePoint3d targetLocation() const =0
virtual OdGePoint3d position() const =0
ODRX_DECLARE_MEMBERS(OdGiPointLightTraits)
virtual void setLampColor(const OdGiColorRGB &color)=0
virtual void setAttenuation(const OdGiLightAttenuation &atten)=0
virtual double physicalIntensity() const =0
virtual void setHemisphericalDistribution(bool bHemisphere)=0
virtual bool hasTarget() const =0
virtual void setPhysicalIntensity(double fIntensity)=0
virtual bool hemisphericalDistribution() const =0
virtual void setTargetLocation(const OdGePoint3d &loc)=0
virtual void setHasTarget(bool bTarget)=0
virtual OdGiLightAttenuation lightAttenuation() const =0
virtual OdGiColorRGB lampColor() const =0
bool setShadowSamples(OdUInt16 nSamples)
double extendedLightWidth() const
void save(OdGsFiler *pFiler) const
OdUInt16 shadowMapSize() const
double extendedLightLength() const
ShadowType shadowType() const
void setShapeVisibility(bool bVisibility)
OdGiShadowParameters & operator=(const OdGiShadowParameters &parms)=default
bool setExtendedLightWidth(double dWidth)
ExtendedLightShape extendedLightShape() const
double extendedLightRadius() const
OdUInt8 shadowMapSoftness() const
bool shapeVisibility() const
OdGiShadowParameters(const OdGiShadowParameters &parms)=default
void load(OdGsFiler *pFiler)
void setShadowType(ShadowType typ)
bool setExtendedLightLength(double dLength)
void setShadowsOn(bool on)
bool setShadowMapSize(OdUInt16 sz)
bool setShadowMapSoftness(OdUInt8 soft)
OdUInt16 shadowSamples() const
bool operator!=(const OdGiShadowParameters &parms) const
bool setExtendedLightRadius(double dRadius)
bool operator==(const OdGiShadowParameters &parms) const
void setExtendedLightShape(ExtendedLightShape lightShape)
void setRedBlueShift(double redBlueShift)
void setNightColor(const OdCmEntityColor &color)
void setSolarDiskSamples(OdUInt16 samples)
void setIntensityFactor(double intensity)
double diskIntensity() const
double visibilityDistance() const
double haze() const
double saturation() const
double horizonHeight() const
void setHorizonBlur(double blur)
OdCmEntityColor nightColor() const
bool aerialPerspective() const
void setDiskIntensity(double intensity)
void setGlowIntensity(double intensity)
bool operator==(const OdGiSkyParameters &params) const
double glowIntensity() const
void setSunDirection(const OdGeVector3d &sundir)
void setAerialPerspective(bool apply)
void setSaturation(double saturation)
double horizonBlur() const
OdCmEntityColor groundColor() const
OdUInt16 solarDiskSamples() const
void setIllumination(bool enable)
double diskScale() const
void setGroundColor(const OdCmEntityColor &color)
void setHaze(double haze)
void setDiskScale(double scale)
bool illumination() const
void setVisibilityDistance(double distance)
void setHorizonHeight(double height)
double redBlueShift() const
double intensityFactor() const
const OdGeVector3d & sunDirection() const
virtual double hotspot() const =0
ODRX_DECLARE_MEMBERS(OdGiSpotLightTraits)
virtual void setPhysicalIntensity(double fIntensity)=0
virtual OdGiColorRGB lampColor() const =0
virtual bool setHotspotAndFalloff(double hotspot, double falloff)=0
virtual OdGePoint3d position() const =0
virtual OdGiLightAttenuation lightAttenuation() const =0
virtual void setTargetLocation(const OdGePoint3d &loc)=0
virtual void setAttenuation(const OdGiLightAttenuation &atten)=0
virtual void setLampColor(const OdGiColorRGB &color)=0
virtual OdGePoint3d targetLocation() const =0
virtual double falloff() const =0
virtual void setPosition(const OdGePoint3d &pos)=0
virtual double physicalIntensity() const =0
virtual double intensity() const =0
virtual OdGiShadowParameters shadowParameters() const =0
ODRX_DECLARE_MEMBERS(OdGiStandardLightTraits)
virtual OdCmEntityColor lightColor() const =0
virtual void setIntensity(double inten)=0
virtual void setLightColor(const OdCmEntityColor &color)=0
virtual void setShadowParameters(const OdGiShadowParameters &params)=0
virtual void setWebFlux(double fFlux)=0
virtual OdString webFile() const =0
virtual void setWebFileType(WebFileType type)=0
virtual double webFlux() const =0
ODRX_DECLARE_MEMBERS(OdGiWebLightTraits)
virtual WebFileType webFileType() const =0
virtual OdStreamBufPtr webFileStream() const =0
virtual void setWebSymmetry(WebSymmetry sym)=0
virtual OdGeVector3d webRotation() const =0
virtual void setWebFileStream(OdStreamBufPtr &pWebStream)=0
virtual void setWebHorzAng90to270(bool bFlag)=0
virtual void setWebRotation(OdGeVector3d fRot)=0
virtual void setWebFile(const OdString &fileName)=0
virtual WebSymmetry webSymmetry() const =0
virtual bool webHorzAng90to270() const =0
virtual void wrDouble(double val)
virtual void wrUInt16(OdUInt16 val)
virtual OdUInt8 rdUInt8() const
virtual void wrUInt8(OdUInt8 val)
virtual bool rdBool() const
virtual void wrBool(bool bVal)
virtual OdUInt16 rdUInt16() const
virtual double rdDouble() const
GLenum GLint * params
Definition gles2_ext.h:184
GLuint GLsizei GLsizei GLint GLenum * type
Definition gles2_ext.h:274
GLint GLenum GLsizei GLsizei height
Definition gles2_ext.h:110
friend OdGiColorRGB operator+(const OdGiColorRGB &c1, const OdGiColorRGB &c2)
friend OdGiColorRGB operator*(const OdGiColorRGB &c1, const OdGiColorRGB &c2)
OdGiColorRGB(double _red, double _green, double _blue)
friend OdGiColorRGB operator/(const OdGiColorRGB &c1, const OdGiColorRGB &c2)
friend OdGiColorRGB operator-(const OdGiColorRGB &c1, const OdGiColorRGB &c2)