/////////////////////////////////////////////////////////////////////////////// // 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. /////////////////////////////////////////////////////////////////////////////// // This file is generated automatically. #ifndef _IFC2X_FINAL_IFCGEOMETRICREPRESENTATIONCONTEXT_AUTO_IMPL_H #define _IFC2X_FINAL_IFCGEOMETRICREPRESENTATIONCONTEXT_AUTO_IMPL_H #include "IfcRepresentationContextAutoImpl.h" #include "IfcDirectionAutoImpl.h" #include "TD_PackPush.h" /** \details The namespace contains schema-dependent classes, definitions and sub routines for work with IFC2X_FINAL express schema definitions. */ namespace OdIfc2x_final { /** \details The IfcGeometricRepresentationContext defines the context that applies to several shape representations of products within a project. - Details - It defines the type of the context in which the shape representation is defined, and the numeric precision applicable to the geometric representation items defined in this context. In addition it can be used to offset the project coordinate system from a global point of origin, using the WorldCoordinateSystem attribute. The main representation context may also provide the true north direction, see on the image below: The TrueNorth attribute should be provided, if the y axis of the WorldCoordinateSystem does not point to the global northing. Direction of the true north, or geographic northing direction, relative to the underlying project coordinate system as established by the attribute WorldCoordinateSystem. It is given by a 2 dimensional direction within the xy-plane of the project coordinate system. If not present, it defaults to [0.,1.] - i.e. the positive Y axis of the project coordinate system equals to the geographic northing direction. The direction is provided within project coordinate system and identifies the true north direction. */ class IFC2X_FINAL_EXPORT IfcGeometricRepresentationContext : public IfcRepresentationContext { //DOM-IGNORE-BEGIN OD_EXP_DECLARE_MEMBERS(OdIfc2x_final::IfcGeometricRepresentationContext); //DOM-IGNORE-END public: // // OdDAI early binding accessors // /** \details Returns the value of CoordinateSpaceDimension attribute. This attribute represents the integer dimension count of the coordinate space modeled in a geometric representation context. \returns Returns the value of CoordinateSpaceDimension attribute. */ int getCoordinateSpaceDimension() const; /** \details Sets the value of CoordinateSpaceDimension attribute. This attribute represents the integer dimension count of the coordinate space modeled in a geometric representation context. \param CoordinateSpaceDimension [in] Coordinate space dimension to set. */ void setCoordinateSpaceDimension(int CoordinateSpaceDimension); /** \details Returns the value of Precision attribute. This attribute represents value of the model precision for geometric models. It is a double value (REAL), typically in 1E-5 to 1E-8 range. It indicates the tolerance under which two given points are assumed to be identical. The value can be used e.g. to sets the maximum distance from an edge curve to the underlying face surface in brep models. \returns Returns the value of Precision attribute. */ double getPrecision() const; /** \details Sets the value of Precision attribute. This attribute represents value of the model precision for geometric models. It is a double value (REAL), typically in 1E-5 to 1E-8 range. It indicates the tolerance under which two given points are assumed to be identical. The value can be used e.g. to sets the maximum distance from an edge curve to the underlying face surface in brep models. \param Precision [in] Precision to set. */ void setPrecision(double Precision); /** \details Returns the value of WorldCoordinateSystem attribute. This attribute represents establishment of the engineering coordinate system (often referred to as the world coordinate system in CAD) for all representation contexts used by the project. \returns Returns the value of WorldCoordinateSystem attribute. \remarks It can be used to provide better numeric stability if the placement of the building(s) is far away from the origin. In most cases however it would be set to origin: (0.,0.,0.) and directions x(1.,0.,0.), y(0.,1.,0.), z(0.,0.,1.). If an geographic placement is provided using IfcMapConversion then the WorldCoordinateSystem atttibute is used to define the offset between the zero point of the local engineering coordinate system and the geographic reference point to which the IfcMapConversion offset relates. Preferably, both points (also called "project base point" and "survey point") should be coincidental. However it is possible to offset the geographic reference point from the local zero point. */ IfcAxis2Placement worldCoordinateSystem(); /** \details Returns the value of TrueNorth attribute. This attribute represents direction of the true north, or geographic northing direction, relative to the underlying project coordinate system. It is given by a 2 dimensional direction within the xy-plane of the project coordinate system. If not present, it defaults to 0. 1., meaning that the positive Y axis of the project coordinate system equals the geographic northing direction. \returns Returns the value of TrueNorth attribute. \remarks If a geographic placement is provided using IfcMapConversion then the true north is for information only. In case of inconsistency, the value provided with IfcMapConversion takes precedence. */ const OdDAIObjectId& getTrueNorth() const; /** \details Sets the value of TrueNorth attribute. This attribute represents direction of the true north, or geographic northing direction, relative to the underlying project coordinate system. It is given by a 2 dimensional direction within the xy-plane of the project coordinate system. If not present, it defaults to 0. 1., meaning that the positive Y axis of the project coordinate system equals the geographic northing direction. \param TrueNorth [in] TrueNorth to set. \remarks If a geographic placement is provided using IfcMapConversion then the true north is for information only. In case of inconsistency, the value provided with IfcMapConversion takes precedence. */ void setTrueNorth(const OdDAIObjectId& TrueNorth); public: /** \details Default constructor for the IfcGeometricRepresentationContext class. */ IfcGeometricRepresentationContext(); /** \details Reads object's data from the specified filer. \param rdFiler [in] Pointer to a filer from which to read the data. \returns A value of OdResult type that contains the result of the method execution. */ virtual OdResult inFields(OdDAI::OdSpfFilerBase* rdFiler) override; /** \details Writes object's data the the specified filer. \param wrFiler [in] Pointer to a filer to which to write the data. \returns A value of OdResult type that contains the result of the method execution. */ virtual OdResult outFields(OdDAI::OdSpfFilerBase* wrFiler) override; /** \details Returns a type of a class instance. \returns Pointer to the OdDAI::Entity type that determines an entity definition within a schema. */ virtual OdDAI::Entity* getInstanceType() const override; /** \details Returns an attribute value for the specified attribute name. \param attrName [in] Name of an attribute to query. \returns OdRxValue object that represents a generic variant type value. */ virtual OdRxValue getAttr(const char * attrName) const override; /** \details Resets a value for the specified attribute. \param explicitAttrName [in] Explicit name of the attribute to reset. */ virtual void unsetAttr(const char * explicitAttrName) override; /** \details Checks whether the specified attribute is set. \param explicitAttrName [in] Explicit name of the attribute to test. \returns true if the specified attribute is set, false otherwise. */ virtual bool testAttr(const char * explicitAttrName) const override; /** \details Sets the specified attribute with a given value. \param explicitAttrName [in] Explicit name of the attribute to set. \param val [in] Value to set. \returns true if the value is successfully set for the specified attribute, false otherwise. */ virtual bool putAttr(const char * explicitAttrName, const OdRxValue &val) override; /** \details Checks whether the specified instance is the object derived from or belongs to this class. \param entityType [in] Entity to check. \returns true if the specified instance is the object derived from or belongs to this class, false otherwise. */ virtual bool isKindOf(OdIfc::OdIfcEntityType entityType) const override; /** \details Returns the type of this entity. \returns A value of the OdIfc::OdIfcEntityType type that represents type of this entity. */ virtual OdIfc::OdIfcEntityType type() const override; /** \details Returns an attribute value for the specified attribute definition. \param attrDef [in] Attribute definition to query. \returns OdRxValue object that represents a generic variant type value. */ virtual OdRxValue getAttr(const OdIfc::OdIfcAttribute attrDef) const override; /** \details Resets a value for the specified attribute. \param explicitAttrDef [in] Explicit definition that represents an attribute to reset. */ virtual void unsetAttr(const OdIfc::OdIfcAttribute explicitAttrDef) override; /** \details Checks whether the specified attribute is set. \param explicitAttrDef [in] Attribute definition to test. \returns true if the specified attribute is set, false otherwise. */ virtual bool testAttr(const OdIfc::OdIfcAttribute explicitAttrDef) const override; /** \details Sets the specified attribute with a given value. \param explicitAttrDef [in] Explicit attribute definition to set. \param val [in] Value to set. \returns true if the value is successfully set for the specified attribute, false otherwise. */ virtual bool putAttr(const OdIfc::OdIfcAttribute explicitAttrDef, const OdRxValue &val) override; protected: // Fields declaration: int m_CoordinateSpaceDimension; // IfcDimensionCount double m_Precision; // REAL [optional] OdDAI::Select m_WorldCoordinateSystem; // IfcAxis2Placement OdDAIObjectId m_TrueNorth; // IfcDirection [optional] }; /** \details A data type that represents a smart pointer to a IfcGeometricRepresentationContext object. */ typedef OdSmartPtr IfcGeometricRepresentationContextPtr; } // namespace #include "TD_PackPop.h" #endif // _IFC2X_FINAL_IFCGEOMETRICREPRESENTATIONCONTEXT_AUTO_IMPL_H