/////////////////////////////////////////////////////////////////////////////// // 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 _NW_CLASHTEST_H_ #define _NW_CLASHTEST_H_ #include "NwSavedItem.h" #include "Clash/NwClashTypes.h" class OdNwFindSelection; /** \details This template class is a specialization of the OdSmartPtr class for OdNwFindSelection object pointers. */ typedef OdSmartPtr OdNwFindSelectionPtr; class OdNwElementItemPath; /** \details This template class is a specialization of the OdSmartPtr class for OdNwElementItemPath object pointers. */ typedef OdSmartPtr OdNwElementItemPathPtr; /** \details This class represents clash test objects with all parameters and test results. */ class NWDBEXPORT OdNwClashTest : public OdNwSavedItem { //DOM-IGNORE-BEGIN ODRX_DECLARE_MEMBERS(OdNwClashTest); //DOM-IGNORE-END public: /** \details Default constructor. Creates a new OdNwClashTest object. */ OdNwClashTest(); public: /** \details Virtual destructor. Frees allocated resources. */ virtual ~OdNwClashTest(); /** \details Receives the type of clash test. \returns One of the enumerated items from the NwClashTestType::Enum enumerated type. \remarks Test type can be one of the following: Name Value Description NwClashTestType::HARD 0x00 Hard NwClashTestType::HARD_CONSERVATIVE 0x01 Hard (Conservative) NwClashTestType::CLEARANCE 0x02 Clearance NwClashTestType::DUPLICATES 0x03 Duplicates NwClashTestType::CUSTOM 0x04 Custom
*/ NwClashTestType::Enum getTestType() const; /** \details Receives the clash test status. \returns One of the enumerated items from the NwClashTestStatusType::Enum enumerated type. \remarks Test status type can be one of the following: Name Value Description NwClashTestStatusType::NEW 0x00 New NwClashTestStatusType::OLD 0x01 Old NwClashTestStatusType::PARTIAL 0x02 Partial NwClashTestStatusType::OK 0x03 Ok
*/ NwClashTestStatusType::Enum getStatus() const; /** \details Gets the type of simulation for the clash test. \returns One of the enumerated items from the NwClashTestSimulationType::Enum enumerated type. Name Value Description NwClashTestSimulationType::NONE 0 No simulation NwClashTestSimulationType::TIMELINER 1 Timeliner simulation NwClashTestSimulationType::ANIMATOR 2 Animator simulation
*/ NwClashTestSimulationType::Enum getSimulationType() const; /** \details Indicates whether the touch tolerance is relative for the clash test. \returns The true value if the touch tolerance is relative, or false otherwise. */ bool getIsRelativeTouchTolerance() const; /** \details Receives the relative touch tolerance value for the clash test. \returns Floating point value with a double precision. */ double getRelativeTouchTolerance() const; /** \details Receives the absolute touch tolerance value for the clash test. \returns Floating point value with a double precision. */ double getAbsoluteTouchTolerance() const; /** \details Receives the tolerance value for the clash test. \returns Floating point value with a double precision. */ double getTolerance() const; /** \details Receives the simulation step value for the clash test. \returns Floating point value with a double precision. */ double getSimulationStep() const; /** \details Receives the time of the last run for this test. \returns The tm time structure. */ tm getLastRunTime() const; /** \details Indicates whether the merge of composites is required. \returns The true value if the merge of composites is required, or false otherwise. */ bool getMergeComposites() const; /** \details Receives the ID of clash test results. \returns OdNwObjectId of OdNwSavedItemsElementPtr object which contains a list of OdNwClashTestResults objects. */ OdNwObjectId getTestResultsId() const; /** \details Receives the list of clash test rules. \returns List of OdNwObjectId of OdNwRulePtr objects which contain a list of OdNwRulePtr objects. */ OdNwObjectIdArray getRules() const; /** \details Receives the selection of ModelItems for Selection A group. \returns The OdNwFindSelectionPtr object. */ OdNwFindSelectionPtr getSelectionA() const; /** \details Receives the selection of ModelItems for Selection B group. \returns The OdNwFindSelectionPtr object. */ OdNwFindSelectionPtr getSelectionB() const; /** \details Indicates whether the clash selection A should be clashed against itself. \returns The boolean value of SelfIntersect flag. */ bool getSelectionSelfIntersectA() const; /** \details Indicates whether the clash selection B should be clashed against itself. \returns The boolean value of SelfIntersect flag. */ bool getSelectionSelfIntersectB() const; /** \details Gets the type of geometry for Selection A. \returns The combination of OdNwPrimitiveTypes values as an integer value. \remarks The returned value must be a combination of Triangles, Lines or Points. */ OdUInt32 getSelectionPrimitiveTypesA() const; /** \details Gets the type of geometry for Selection B. \returns The combination of OdNwPrimitiveTypes values as an integer value. \remarks The returned value must be a combination of Triangles, Lines or Points. */ OdUInt32 getSelectionPrimitiveTypesB() const; /** \details Gets the path to seleceted of simulation type. \returns pointer to OdNwElementItemPath object */ OdNwElementItemPathPtr getSimulationItemPath() const; }; /** \details This template class is a specialization of the OdSmartPtr class for OdNwClashTest object pointers. */ typedef OdSmartPtr OdNwClashTestPtr; #endif // _NW_CLASHTEST_H_