CFx SDK Documentation 2024 SP0
Loading...
Searching...
No Matches
BcfCommon.h
Go to the documentation of this file.
1
2// Copyright (C) 2002-2022, Open Design Alliance (the "Alliance").
3// All rights reserved.
4//
5// This software and its documentation and related materials are owned by
6// the Alliance. The software may only be incorporated into application
7// programs owned by members of the Alliance, subject to a signed
8// Membership Agreement and Supplemental Software License Agreement with the
9// Alliance. The structure and organization of this software are the valuable
10// trade secrets of the Alliance and its suppliers. The software is also
11// protected by copyright law and international treaty provisions. Application
12// programs incorporating this software must include the following statement
13// with their copyright notices:
14//
15// This application incorporates Open Design Alliance software pursuant to a license
16// agreement with Open Design Alliance.
17// Open Design Alliance Copyright (C) 2002-2022 by Open Design Alliance.
18// All rights reserved.
19//
20// By use of this software, its documentation or related materials, you
21// acknowledge and accept the above terms.
23
24#ifndef _BFC_COMMON_H
25#define _BFC_COMMON_H
26
27#include "OdPlatformSettings.h"
28#include "IfcBuildOptions.h"
29
30#include "RxObject.h"
31#include "SmartPtr.h"
32
33#include "BcfUnset.h"
34
38namespace OdBcf {
39
40#define MAX_ENTITY_COLLECTION_SIZE 1024
41#define FILE_BUFFER_SIZE 1024
42
43#define PROJECT_FILE_NAME "project.bcfp"
44#define VERSION_FILE_NAME "bcf.version"
45#define MARKUP_FILE_NAME "markup.bcf"
46#define DEFAULT_VIEWPOINT_FILE_NAME "viewpoint.bcfv"
47#define VIEWPOINT_FILE_EXTENSION "bcfv"
48#define DEFAULT_SNAPSHOT_FILE_NAME "snapshot.png"
49#define SNAPSHOT_FILE_EXTENSION "png"
50
51#define DECLARE_SET(MethodName, VariableType, VariableName) \
52 \
53void set##MethodName(const VariableType &VariableName##Value);
54
55#define DEFINE_SET(ClassName, MethodName, VariableType, VariableName) \
56 \
57void ClassName::set##MethodName(const VariableType &VariableName##Value) \
58{ \
59 VariableName = VariableName##Value; \
60}
61
62#define DECLARE_GET(MethodName, VariableType, VariableName) \
63 \
64VariableType& get##MethodName();
65
66#define DEFINE_GET(ClassName, MethodName, VariableType, VariableName) \
67 \
68VariableType& ClassName::get##MethodName() \
69{ \
70 return VariableName; \
71}
72
73#define DECLARE_CONST_ACCESSORS(MethodName, VariableType, VariableName) \
74 \
75const VariableType& get##MethodName() const; \
76 \
77bool is##MethodName##Unset() const;
78
79#define DEFINE_CONST_ACCESSORS(ClassName, MethodName, VariableType, VariableName) \
80 \
81const VariableType& ClassName::get##MethodName() const \
82{ \
83 return VariableName; \
84} \
85 \
86bool ClassName::is##MethodName##Unset() const \
87{ \
88 return OdBcf::Utils::isUnset(VariableName); \
89}
90
91#define DECLARE_ACCESSORS(MethodName, VariableType, VariableName) \
92 \
93DECLARE_SET( MethodName, VariableType, VariableName) \
94DECLARE_GET( MethodName, VariableType, VariableName) \
95DECLARE_CONST_ACCESSORS(MethodName, VariableType, VariableName)
96
97#define DEFINE_ACCESSORS(ClassName, MethodName, VariableType, VariableName) \
98 \
99DEFINE_SET( ClassName, MethodName, VariableType, VariableName) \
100DEFINE_GET( ClassName, MethodName, VariableType, VariableName) \
101DEFINE_CONST_ACCESSORS(ClassName, MethodName, VariableType, VariableName)
102
103#define INIT_RESULT(VariableName) \
104 \
105OdResult VariableName##Local; \
106if (VariableName == NULL) \
107{ \
108 VariableName = &VariableName##Local; \
109} \
110*VariableName = eOk;
111
112} //namespace OdBcf
113
114#endif // _BFC_COMMON_H