/////////////////////////////////////////////////////////////////////////////// // Copyright (C) 2002-2025, 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 Open Design Alliance software pursuant to a license // agreement with Open Design Alliance. // Open Design Alliance Copyright (C) 2002-2025 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 __TNW_TEXTURE_SPACE_BOX_H__ #define __TNW_TEXTURE_SPACE_BOX_H__ #include "NwTextureSpace.h" #include "NwAxisDirection.h" /** \details Type of texture space box plane. */ namespace NwUVDirectionPlane { enum Enum { /**Right plane of box.*/ kRight = 0x0, /**Left plane of box.*/ kLeft = 0x1, /**Back plane of box.*/ kBack = 0x2, /**Front plane of box.*/ kFront = 0x3, /**Top plane of box.*/ kTop = 0x4, /**Bottom plane of box.*/ kBottom = 0x5 }; } class OdGeVector3d; class OdGeVector3d; class OdGeQuaternion; class OdGeExtents3d; /** \details Axis directions of uv plane. */ typedef std::pair OdNwUVPlane; /** \details This class represents a texture space mapping by six planar projection. */ class NWDBEXPORT OdNwTextureSpaceBox : public OdNwTextureSpace { //DOM-IGNORE-BEGIN ODRX_DECLARE_MEMBERS(OdNwTextureSpaceBox); //DOM-IGNORE-END public: /** \details Default constructor. Creates an object of the OdNwTextureSpaceBox class. */ OdNwTextureSpaceBox(); public: /** \details Virtual destructor. Frees allocated resources. */ virtual ~OdNwTextureSpaceBox(); public: /** \details Gets the translation of space mapping. \returns OdGeVector3d object with the space mapping translation. */ OdGeVector3d getTranslation() const; /** \details Gets the space mapping's scaling. \returns OdGeVector3d object with the mapping's scaling. */ OdGeVector3d getScale() const; /** \details Gets the rotation of space mapping. \returns OdGeQuaternion object with the space mapping rotation. */ OdGeQuaternion getRotation() const; /** \details Gets the domain extents of space mapping. \returns OdGeExtents3d object the domain extents of space mapping. */ OdGeExtents3d getDomainExts() const; /** \details Gets the mapping box's plane by plane type. \param planeType [in] plane type of box's side. \returns pair with NwAxisDirection::Enum values of uv direction of plane. \remarks planeType can be one of the following: Name Value Description NwUVDirectionPlane::kRight 0x00 Right plane of box. NwUVDirectionPlane::kLeft 0x01 Left plane of box. NwUVDirectionPlane::kBack 0x02 Back plane of box. NwUVDirectionPlane::kFront 0x03 Front plane of box. NwUVDirectionPlane::kTop 0x04 Top plane of box. NwUVDirectionPlane::kBottom 0x05 Bottom plane of box.
first and second element of return value can be one of the following: Name Value Description NwAxisDirection::kXPositive 0x00 Positive X axis direction. NwAxisDirection::kXNegative 0x01 Negative Y axis direction. NwAxisDirection::kYPositive 0x02 Positive Y axis direction. NwAxisDirection::kYNegative 0x03 Negative Y axis direction. NwAxisDirection::kZPositive 0x04 Positive Z axis direction. NwAxisDirection::kZNegative 0x05 Negative Z axis direction.
*/ OdNwUVPlane getUVPlane(NwUVDirectionPlane::Enum planeType) const; }; /** \details This template class is a specialization of the OdSmartPtr class for OdNwTextureSpaceBox object pointers. */ typedef OdSmartPtr OdNwTextureSpaceBoxPtr; #endif //__TNW_TEXTURE_SPACE_BOX_H__