///////////////////////////////////////////////////////////////////////////////
// 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 _IFC4_IFCGEOMETRICREPRESENTATIONSUBCONTEXT_AUTO_IMPL_H
#define _IFC4_IFCGEOMETRICREPRESENTATIONSUBCONTEXT_AUTO_IMPL_H
#include "IfcGeometricRepresentationContextAutoImpl.h"
#include "TD_PackPush.h"
/** \details
The namespace contains schema-dependent classes, definitions and sub routines
for work with IFC4 express schema definitions.
*/
namespace OdIfc4 {
/** \details
IfcGeometricRepresentationSubContext defines the context that applies to several shape representations of a product being a sub context,
sharing the WorldCoordinateSystem, CoordinateSpaceDimension, Precision and TrueNorth attributes with the parent IfcGeometricRepresentationContext.
The IfcGeometricRepresentationSubContext is used to define semantically distinguished representation types for different information content,
dependent on the representation view and the target scale.
It can be used to control the level of detail of the shape representation that is most applicable to this geometric representation context.
In addition, the sub context controls the later appearance of the IfcShapeRepresentation within a plot view.
Each IfcProduct can then have several instances of subtypes of IfcRepresentation, each assigned to a different IfcGeometricRepresentationSubContext).
*/
class IFC4_EXPORT IfcGeometricRepresentationSubContext : public IfcGeometricRepresentationContext
{
//DOM-IGNORE-BEGIN
OD_EXP_DECLARE_MEMBERS(OdIfc4::IfcGeometricRepresentationSubContext);
//DOM-IGNORE-END
public:
//
// OdDAI early binding accessors
//
/** \details
Returns the value of ParentContext attribute.
This attribute represents parent context from which the sub context derives its world coordinate system, precision, space coordinate dimension and true north.
\returns
Returns the value of ParentContext attribute.
*/
const OdDAIObjectId& getParentContext() const;
/** \details
Sets the value of ParentContext attribute.
This attribute represents parent context from which the sub context derives its world coordinate system, precision, space coordinate dimension and true north.
\param ParentContext [in] Parent context to set.
*/
void setParentContext(const OdDAIObjectId& ParentContext);
/** \details
Returns the value of TargetScale attribute.
This attribute represents the target plot scale of the representation to which this representation context applies.
\returns
Returns the value of TargetScale attribute.
\remarks
Scale indicates the target plot scale for the representation sub context, all annotation styles are given in plot dimensions according to this target plot scale.
If multiple instances of IfcGeometricRepresentationSubContext are given having the same TargetView value,
the target plot scale applies up to the next smaller scale, or up to unlimited small scale.
Scale 1:100 (given as 0.01 within TargetScale) is bigger than 1:200 (given as 0.005 within TargetScale).
*/
double getTargetScale() const;
/** \details
Sets the value of TargetScale attribute.
This attribute represents the target plot scale of the representation to which this representation context applies.
\param TargetScale [in] Target scale to set.
\remarks
Scale indicates the target plot scale for the representation sub context, all annotation styles are given in plot dimensions according to this target plot scale.
If multiple instances of IfcGeometricRepresentationSubContext are given having the same TargetView value,
the target plot scale applies up to the next smaller scale, or up to unlimited small scale.
Scale 1:100 (given as 0.01 within TargetScale) is bigger than 1:200 (given as 0.005 within TargetScale).
*/
void setTargetScale(double TargetScale);
/** \details
Returns the value of TargetView attribute.
This attribute represents target view of the representation to which this representation context applies.
\returns
Returns the value of TargetView attribute.
*/
IfcGeometricProjectionEnum getTargetView() const;
/** \details
Sets the value of TargetView attribute.
This attribute represents target view of the representation to which this representation context applies.
\param TargetView [in] TargetView to set.
*/
void setTargetView(IfcGeometricProjectionEnum TargetView);
/** \details
Returns the value of UserDefinedTargetView attribute.
This attribute represents user defined target view. This attribute value is specified
if the TargetView attribute is set to USERDEFINED.
\returns
Returns the value of UserDefinedTargetView attribute.
*/
const OdAnsiString& getUserDefinedTargetView() const;
/** \details
Sets the value of UserDefinedTargetView attribute.
This attribute represents user defined target view. This attribute value is specified
if the TargetView attribute is set to USERDEFINED.
\param UserDefinedTargetView [in] User-defined target view to set.
*/
void setUserDefinedTargetView(const OdAnsiString& UserDefinedTargetView);
public:
/** \details
Default constructor for the IfcGeometricRepresentationSubContext class.
*/
IfcGeometricRepresentationSubContext();
/** \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
Sets the object ID of this instance to inverse attributes of related instances according to schema specification of inverse attributes.
*/
virtual void setInverseCounterParts() override;
/** \details
Returns a type of a class instance.
\returns
Pointer to the