CFx SDK Documentation 2026 SP0
Loading...
Searching...
No Matches
MvdXmlUtils.h
Go to the documentation of this file.
1
2// Copyright (C) 2002-2024, 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-2024 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#if !defined(ODA_ODMVDXMLUTILS_H_INCLUDED_)
25#define ODA_ODMVDXMLUTILS_H_INCLUDED_
26
27#if _MSC_VER > 1000
28#pragma once
29#endif // _MSC_VER > 1000
30
31#include "OdaCommon.h"
32#include "OdResult.h"
33#include "MvdXmlRoot.h"
34
38namespace OdMvdXml
39{
40
48 template<typename T>
49 OdResult inFieldsArray(OdArray<OdSmartPtr<T> >& container, TiXmlNode* pParent, const char* pItemName)
50 {
51 for (TiXmlElement* pChild = pParent->FirstChildElement(); pChild; pChild = pChild->NextSiblingElement())
52 {
53 const char* name = pChild->Value();
54 if (odStrICmpA(pItemName, name) == 0)
55 {
56 OdSmartPtr<T> pObj = T::createObject();
57 if (pObj.isNull())
58 return eNullPtr;
59
60 RETURNNOTOK(pObj->inFields(pChild));
61
62 container.append(pObj);
63 }
64 }
65 return eOk;
66 }
67
75 template<typename T>
76 OdResult outFieldsArray(OdArray<OdSmartPtr<T> >& container, TiXmlNode* pParent, const char* pGroupName)
77 {
78 if (container.length() > 0)
79 {
80 TiXmlNode* pItem;
81 if (pGroupName)
82 {
83 pItem = new TiXmlElement(pGroupName);
84 pParent->LinkEndChild(pItem);
85 }
86 else
87 pItem = pParent;
88
89 for (OdSmartPtr<T> item : container)
90 {
91 RETURNNOTOK(item->outFields(pItem));
92 }
93 }
94 return eOk;
95 }
96
97}
98
99#endif // !defined(ODA_ODMVDXMLUTILS_H_INCLUDED_)
@ eOk
Definition FxBIM.h:41
#define RETURNNOTOK(expr)
#define odStrICmpA(str, str2)
OdResult
Definition OdResult.h:29
bool isNull() const
GLuint const GLchar * name
Definition gles2_ext.h:265
OdResult outFieldsArray(OdArray< OdSmartPtr< T > > &container, TiXmlNode *pParent, const char *pGroupName)
Definition MvdXmlUtils.h:76
OdResult inFieldsArray(OdArray< OdSmartPtr< T > > &container, TiXmlNode *pParent, const char *pItemName)
Definition MvdXmlUtils.h:49