/////////////////////////////////////////////////////////////////////////////// // 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 __NWVIEWER__ #define __NWVIEWER__ #include "NwExport.h" #include "SharedPtr.h" #include "NwCameraMode.h" #define STL_USING_MEMORY #include "OdaSTL.h" class OdNwViewerImpl; /** \details This class represents a viewer of models. */ class NWDBEXPORT OdNwViewer { public: /** \details Default constructor. Creates an object of the OdNwViewer class. */ OdNwViewer(); /** \details Default destructor. Frees allocated resources. */ ~OdNwViewer(); /** \details Move assignment operator. \returns A reference to an OdNwViewer object that is the result of the operation. */ OdNwViewer& operator=(OdNwViewer&&) noexcept; /** \details Copy assignment operator. \returns A reference to an OdNwViewer object that is the result of the operation. */ OdNwViewer& operator=(const OdNwViewer&) noexcept; /** \details Move constructor. Creates a viwer from the given OdNwViewer object. */ OdNwViewer(OdNwViewer&&) noexcept; /** \details Copy constructor. Creates a viewer from the given OdNwViewer object. */ OdNwViewer(const OdNwViewer&) noexcept; /** \details Returns the radius of the collision volume. \returns double value of the radius. */ double getRadius() const; /** \details Returns the height of the collision volume. \returns double value of the height. */ double getHeight() const; /** \details Returns the actual height of the collision volume. \returns double value of the actual height. */ double getActualHeight() const; /** \details Returns the distance below the top of the collision volume. \returns double value of the eye height. */ double getEyeHeightOffset() const; /** \details Returns the avatar that is used in the third-person view. \returns OdString value of the avatar. */ OdString getAvatar() const; /** \details Returns the camera mode. \returns NwCameraMode::Enum value of camera mode. */ NwCameraMode::Enum getCameraMode() const; /** \details Returns the angle at which the camera looks at the avatar. \returns double value of angle. */ double getFirstToThirdAngle() const; /** \details Returns the distance between the camera and the avatar. \returns double value of distance. */ double getFirstToThirdDistance() const; /** \details Returns the parameter of the third-person view. \returns double value of a parameter. */ double getFirstToThirdParam() const; /** \details Returns the third-person view correction indicator. \returns True if third correction is set; false otherwise. */ bool isFirstToThirdCorrection() const; /** \details Returns the third-person colission detection indicator. \returns True if colission detection mode is set; false otherwise. */ bool isColisionDetection() const; /** \details Returns the gravity mode indicator. \returns True if gravity mode is set; false otherwise. */ bool isGravity() const; /** \details Returns the gravity value. \returns double value of gravity. */ double getGravityValue() const; /** \details Returns the terminal velocity value. \returns double value of the terminal velocity. */ double getTerminalVelocity() const; /** \details Returns the auto-crouch mode indicator. \returns True if auto crouch mode is set; false otherwise. */ bool isAutoCrouch() const; private: //DOM-IGNORE-BEGIN friend class OdNwViewerImpl; std::unique_ptr m_pImpl; //DOM-IGNORE-END }; #endif //__NWVIEWER_INCLUDED_