/////////////////////////////////////////////////////////////////////////////// // Copyright (C) 2002-2016, Open Design Alliance (the "Alliance"). // All rights reserved. // // This software and its documentation and related materials are owned by // the Alliance. The software may only be incorporated into application // programs owned by members of the Alliance, subject to a signed // Membership Agreement and Supplemental Software License Agreement with the // Alliance. The structure and organization of this software are the valuable // trade secrets of the Alliance and its suppliers. The software is also // protected by copyright law and international treaty provisions. Application // programs incorporating this software must include the following statement // with their copyright notices: // // This application incorporates Teigha(R) software pursuant to a license // agreement with Open Design Alliance. // Teigha(R) Copyright (C) 2002-2016 by Open Design Alliance. // All rights reserved. // // By use of this software, its documentation or related materials, you // acknowledge and accept the above terms. /////////////////////////////////////////////////////////////////////////////// #ifndef __OD_DB_LIGHT__ #define __OD_DB_LIGHT__ #include "TD_PackPush.h" #include "DbEntity.h" #include "Gi/GiLightTraits.h" /** \details */ class TOOLKIT_EXPORT OdDbLight : public OdDbEntity { public: ODDB_DECLARE_MEMBERS(OdDbLight); OdDbLight(); enum PhysicalIntensityMethod { kPeakIntensity = 0, kFlux, kIlluminance }; enum LampColorType { kKelvin = 0, kPreset }; enum LampColorPreset { kD65White = 0, kFluorescent, kCoolWhite, kWhiteFluorescent, kDaylightFluorescent, kIncandescent, kXenon, kHalogen, kQuartz, kMetalHalide, kMercury, kPhosphorMercury, kHighPressureSodium, kLowPressureSodium, kCustom }; enum GlyphDisplayType { kGlyphDisplayAuto = 0, kGlyphDisplayOn, kGlyphDisplayOff }; virtual OdResult dwgInFields( OdDbDwgFiler* pFiler); virtual void dwgOutFields( OdDbDwgFiler* pFiler) const; virtual OdResult dxfInFields( OdDbDxfFiler* pFiler); virtual void dxfOutFields( OdDbDxfFiler* pFiler) const; virtual OdResult subTransformBy( const OdGeMatrix3d& xfm); virtual OdResult subErase(bool erasing); virtual void subHighlight(bool bDoIt = true, const OdDbFullSubentPath* pSubId = 0, bool highlightAll = false) const; virtual DrawableType drawableType() const; virtual OdUInt32 subSetAttributes(OdGiDrawableTraits* pTraits) const; virtual bool subWorldDraw(OdGiWorldDraw* pWd) const; virtual void subViewportDraw(OdGiViewportDraw* pVd) const; OdString name() const; void setName(OdString name); OdGiDrawable::DrawableType lightType() const; void setLightType(OdGiDrawable::DrawableType type); bool isOn() const; void setOn(bool value); bool isPlottable() const; void setIsPlottable(bool plot); OdCmColor lightColor() const; void setLightColor(const OdCmColor& color); double intensity() const; void setIntensity(double intensity); void setShadowParameters(const OdGiShadowParameters& params); const OdGiShadowParameters &shadowParameters() const; void setLightAttenuation(const OdGiLightAttenuation& params); const OdGiLightAttenuation &lightAttenuation() const; void setPosition(const OdGePoint3d& pos); OdGePoint3d position() const; OdGePoint3d targetLocation() const; void setTargetLocation(const OdGePoint3d& newVal); void setHotspotAndFalloff(double hotspot, double falloff); double hotspotAngle() const; double falloffAngle() const; OdGeVector3d lightDirection() const; void setLightDirection(const OdGeVector3d& lightvec); // Photometric properties PhysicalIntensityMethod physicalIntensityMethod() const; void setPhysicalIntensityMethod(PhysicalIntensityMethod physIntMethod); double physicalIntensity() const; void setPhysicalIntensity(double physIntensity); double illuminanceDistance() const; void setIlluminanceDistance(double illumDistance); LampColorType lampColorType() const; void setLampColorType(LampColorType colorType); double lampColorTemp() const; void setLampColorTemp(double colorTemp); LampColorPreset lampColorPreset() const; void setLampColorPreset(LampColorPreset colorPreset); OdGiColorRGB lampColorRGB() const; void setLampColorRGB(const OdGiColorRGB &color); OdCmColor resultingColor() const; OdString webFile() const; void setWebFile(const OdString &webFile); OdGeVector3d webRotation() const; void setWebRotation(const OdGeVector3d &rotation); bool hasTarget() const; void setHasTarget(bool bTarget); GlyphDisplayType glyphDisplay() const; void setGlyphDisplay(GlyphDisplayType type); }; typedef OdSmartPtr OdDbLightPtr; #include "TD_PackPop.h" #endif // __OD_DB_LIGHT__