libMVRgdtf e5d999f
A library for GDTF and MVR
Loading...
Searching...
No Matches
XmlFileHelper.h
Go to the documentation of this file.
1//-----------------------------------------------------------------------------
2//----- Copyright MVR Group
3//-----------------------------------------------------------------------------
4#pragma once
5
6#include "GDTFManager.h"
7#include "XmlFileHelper.h"
8#include "CieColor.h"
9
10namespace SceneData
11{
13 {
14
15 private:
16 Uint8* fpZIPDataBuffer;
17 size_t fZIPDataBufferSize;
18
19 public:
21 virtual ~ISceneDataZipBuffer();
22
23 virtual VCOMError VCOM_CALLTYPE GetDataSize(size_t& outSize);
24 virtual VCOMError VCOM_CALLTYPE CopyDataInto(void* pBuffer, size_t bufferSize);
25 virtual VCOMError VCOM_CALLTYPE SetData(void* pBuffer, size_t bufferSize);
26
28 VCOMError GetData(void*& dataPointer);
29
30 bool IsSet();
31 };
32
34 {
35
36 private:
37 Uint8* fXMLBuffer;
38 size_t fXMLBufferSize;
39
40 public:
42 virtual ~IXMLFileIOBufferImpl();
43
44 virtual VCOMError VCOM_CALLTYPE GetDataSize(size_t& outSize);
45 virtual VCOMError VCOM_CALLTYPE CopyDataInto(void* pBuffer, size_t bufferSize);
46 virtual VCOMError VCOM_CALLTYPE SetData(void* pBuffer, size_t bufferSize);
47 VCOMError GetData(void*& dataPointer);
48
49 };
50
51 //------------------------------------------------------------------------------------
52 // GdtfFixture Definition
54 {
55 public:
56 //-----------------------------------------------------------------------------
57 // Convert to String functions:
58 static TXString ConvertUUID(const VWFC::Tools::VWUUID& uuid);
59 static TXString ConvertDate(const STime& date);
60 static TXString ConvertColor(const CCieColor& color);
62 static TXString ConvertDouble(double value);
63 static TXString ConvertDoubleArray(TDoubleArray& values, bool includeBrackets);
64 static TXString ConvertInteger(Sint32 value);
65#ifdef IS64BIT
66 static TXString ConvertInteger(Uint32 value);
67#endif
68 static TXString ConvertDmxBreak(Sint32 value);
69 static TXString ConvertInteger(size_t value);
70 static TXString ConvertInteger(Sint32 value, bool noneValue);
71 static TXString ConvertIntegerArray (TSint32Array& values, bool includeBrackets);
73 static TXString ConvertDMXValue(DmxValue value, EGdtfChannelBitResolution chanlReso, bool noneValue=false);
75 static TXString ConvertVector3(const VWPoint3D& value);
76 static TXString ConvertMatrix(const VWTransformMatrix& ma, bool fourLines);
86 static TXString ConvertDmxOffset(DMXAddress coarse, DMXAddress fine, DMXAddress ultra, DMXAddress uber);
89 static TXString ConvertHexValue(size_t value);
90 static TXString ConvertEGdtfCanHaveChildren(bool value);
91 static TXString Convert2DPoint(double p_X, double p_Y);
92 static TXString ConvertBool(bool value);
104
105
106 //-----------------------------------------------------------------------------
107 // Convert from String functions:
108 static bool ConvertUUID( const TXString& value, MvrUUID& uuid);
109 static bool ConvertUUID( const TXString& value, const IXMLFileNodePtr& node, VWFC::Tools::VWUUID& uuid);
110 static bool ConvertDate( const TXString& value, const IXMLFileNodePtr& node, STime& date);
111 static bool ConvertColor( const TXString& value, const IXMLFileNodePtr& node, CCieColor& color);
112 static bool ConvertColorArray( TXString values,const IXMLFileNodePtr& node, TCCieColorArray& colorArray);
113 static bool ConvertDouble( const TXString& value, const IXMLFileNodePtr& node, double& doubleValue);
114 static bool ConvertDoubleArray( TXString values,const IXMLFileNodePtr& node, TDoubleArray& doubleArray);
115 static bool ConvertVector3( const TXString& value, const IXMLFileNodePtr& node, VWPoint3D& vector);
116 static bool ConvertMatrix( const TXString& value, const IXMLFileNodePtr& node, VWTransformMatrix& ma);
117 static bool ConvertRotation( const TXString& value, const IXMLFileNodePtr& node, VWTransformMatrix& ma);
118 static bool ConvertPrimitiveType( const TXString& value, const IXMLFileNodePtr& node, EGdtfModel_PrimitiveType& type);
119 static bool ConvertLampeType( const TXString& value, const IXMLFileNodePtr& node, EGdtfLampType& lampType);
120 static bool ConvertInteger( const TXString& value, const IXMLFileNodePtr& node, Sint32& intValue);
121#ifdef IS64BIT
122 static bool ConvertInteger( const TXString& value, const IXMLFileNodePtr& node, Uint32& intValue);
123#endif
124 static bool ConvertDmxBreak( const TXString& value, const IXMLFileNodePtr& node, Sint32& intValue);
125 static bool ConvertInteger( const TXString& value, const IXMLFileNodePtr& node, Sint8& intValue);
126 static bool ConvertInteger( const TXString& value, const IXMLFileNodePtr& node, Uint8& intValue);
127 static bool ConvertInteger( const TXString& value, const IXMLFileNodePtr& node, size_t& intValue);
128 static bool ConvertInteger( const TXString& value, const IXMLFileNodePtr& node, Sint32& intValue, bool& noneValue);
129 static bool ConvertIntegerArray( TXString values,const IXMLFileNodePtr& node, TSint32Array& intArray);
130 static bool ConvertDMXAdress( const TXString& value, const IXMLFileNodePtr& node, DMXAddress& intValue);
131 static bool ConvertDMXValue( const TXString& value, const IXMLFileNodePtr& node, EGdtfChannelBitResolution chanlReso, DmxValue& intValue);
132 static bool ConvertDMXValue( const TXString& value, const IXMLFileNodePtr& node, EGdtfChannelBitResolution chanlReso, DmxValue& intValue, bool& noneValue);
133 static bool ConvertRelationEnum( const TXString& value, const IXMLFileNodePtr& node, EGdtfDmxRelationType& relation);
134 static bool ConvertSnapEnum( const TXString& value, const IXMLFileNodePtr& node, EGdtfDmxSnap& snap);
135 static bool ConvertMasterEnum( const TXString& value, const IXMLFileNodePtr& node, EGdtfDmxMaster& master);
136 static bool ConvertPhysicalUnitEnum( const TXString& value, const IXMLFileNodePtr& node, EGdtfPhysicalUnit& unit);
137 static bool ConvertSpecialAttrEnum( const TXString& value, const IXMLFileNodePtr& node, EGdtfSpecial& special);
138 static bool ConvertBeamType( const TXString& value, const IXMLFileNodePtr& node, EGdtfBeamType& type);
139 static bool ConvertEGdtfColorSampleEnum( const TXString& inVal, const IXMLFileNodePtr& node, EGdtfColorSample& outVal);
140 static bool ConvertEGdtfColorSpace( const TXString& inVal, const IXMLFileNodePtr& node, EGdtfColorSpace& outVal);
141 static bool ConvertEGdtfInterpolationTo( const TXString& inVal, const IXMLFileNodePtr& node, EGdtfInterpolationTo& outVal);
142 static bool ConvertHexValue( const TXString& inVal, const IXMLFileNodePtr& node, size_t& outValue);
143 static bool ConvertEGdtfCanHaveChildren( const TXString& inVal, const IXMLFileNodePtr& node, bool& outVal);
144 static bool Convert2DPoint( const TXString& inVal, const IXMLFileNodePtr& node, double& p_X, double& p_Y);
145 static bool ConvertBool( const TXString& inVal, const IXMLFileNodePtr& node, bool& outVal);
146 static bool ConvertESourceType( const TXString& inVal, const IXMLFileNodePtr& node, GdtfDefines::ESourceType& outVal);
147 static bool ConvertEScaleHandlingType( const TXString& inVal, const IXMLFileNodePtr& node, GdtfDefines::EScaleHandlingType& outVal);
148 static bool ConvertLaserColorTypeEnum( const TXString& inVal, const IXMLFileNodePtr& node, GdtfDefines::EGdtfLaserColorType& outVal);
149 static bool ConvertComponentTypeEnum( const TXString& inVal, const IXMLFileNodePtr& node, GdtfDefines::EGdtfComponentType& outVal);
150 static bool ConvertOrientationEnum( const TXString& inVal, const IXMLFileNodePtr& node, GdtfDefines::EGdtfOrientation& outVal);
151 static bool ConvertFuseRatingEnum( const TXString& inVal, const IXMLFileNodePtr& node, GdtfDefines::EGdtfFuseRating& outVal);
152 static bool ConvertStructureTypeEnum( const TXString& inVal, const IXMLFileNodePtr& node, GdtfDefines::EGdtfStructureType& outVal);
153 static bool ConvertCrossSectionTypeEnum( const TXString& inVal, const IXMLFileNodePtr& node, GdtfDefines::EGdtfCrossSectionType& outVal);
154 static bool ConvertSupportTypeEnum( const TXString& inVal, const IXMLFileNodePtr& node, GdtfDefines::EGdtfSupportType& outVal);
156 static bool ConvertTransmissionTypeEnum( const TXString& inVal, const IXMLFileNodePtr& node, GdtfDefines::ETransmissionType& outVal );
157
158
159 static bool ConvertDmxOffset(const TXString& inVal, const IXMLFileNodePtr& node, DMXAddress& coarse, DMXAddress& fine, DMXAddress& ultra, DMXAddress& uber);
160 //-----------------------------------------------------------------------------
161 static CCieColor ConvertCColor (const CieColor& color);
162 static CieColor ConvertCColor (const CCieColor& color);
163
165
166 typedef std::function<void(IXMLFileNodePtr objNode)> TProcessNodeCall;
167 static void TraverseNodes(IXMLFileNodePtr root, const TXString& childContainerNodeName,const TXString& childNodeName, TProcessNodeCall processNodeFunction);
168
169 typedef std::function<void(IXMLFileNodePtr objNode,const TXString& childNodeName)> TProcessMultiNodeCall;
170 static void TraverseMultiNodes(IXMLFileNodePtr root, const TXString& childContainerNodeName, TProcessMultiNodeCall processNodeFunction);
171
173
174 private:
175 static bool Deserialize(const TXString& value, const IXMLFileNodePtr& node, std::vector<double>& doubleArr);
176 static bool Deserialize(const TXString& value, const IXMLFileNodePtr& node, TSint32Array& intArray, TXChar seperator = ',');
177 static bool DeserializeUTC_Date(const TXString& value, const IXMLFileNodePtr& node, TSint32Array& intArray);
178
179 static TXString IntToString2Digits(Sint64 value);
180
181
182 public:
183 // UNIT TEST HELPER
184 static bool ConvertDMXValue_UnitTest(const char* value, EGdtfChannelBitResolution chanlReso, DmxValue& intValue);
185
186
187 };
188
190 {
191 public:
192 static bool AddFileToZip(IZIPFilePtr& zipFile, const IFileIdentifierPtr& file, ERessourceType resType, bool deleteFile, bool mustExist = true);
193 static void AddFileToZip(IZIPFilePtr& zipFile, ISceneDataZipBuffer& buffer,const TXString &name);
194
196 };
197}
uint8_t Uint8
Definition GSTypes.h:25
int64_t Sint64
Definition GSTypes.h:37
int8_t Sint8
Definition GSTypes.h:34
int32_t Sint32
Definition GSTypes.h:36
uint32_t Uint32
Definition GSTypes.h:27
std::vector< Sint32 > TSint32Array
Definition StdAfx.h:94
std::vector< double > TDoubleArray
Definition StdAfx.h:93
#define VCOM_CALLTYPE
Definition VectorworksMVR.h:93
#define DYNAMIC_ATTRIBUTE
Definition VectorworksMVR.h:104
Definition XmlFileHelper.h:54
static TXString ConvertSupportTypeEnum(GdtfDefines::EGdtfSupportType value)
Definition XmlFileHelper.cpp:2095
static TXString ConvertMasterEnum(EGdtfDmxMaster value)
Definition XmlFileHelper.cpp:1374
static TXString ConvertEGdtfCanHaveChildren(bool value)
Definition XmlFileHelper.cpp:1773
static TXString ConvertMatrix(const VWTransformMatrix &ma, bool fourLines)
Definition XmlFileHelper.cpp:1079
static TXString ConvertEGdtfColorSampleEnum(EGdtfColorSample value)
Definition XmlFileHelper.cpp:1489
static TXString ConvertSnapEnum(EGdtfDmxSnap value)
Definition XmlFileHelper.cpp:1339
static TXString ConvertFuseRatingEnum(GdtfDefines::EGdtfFuseRating value)
Definition XmlFileHelper.cpp:2005
static TXString ConvertDouble(double value)
Definition XmlFileHelper.cpp:377
std::function< void(IXMLFileNodePtr objNode, const TXString &childNodeName)> TProcessMultiNodeCall
Definition XmlFileHelper.h:169
static TXString ConvertRelationEnum(EGdtfDmxRelationType value)
Definition XmlFileHelper.cpp:1406
static void TraverseNodes(IXMLFileNodePtr root, const TXString &childContainerNodeName, const TXString &childNodeName, TProcessNodeCall processNodeFunction)
Definition XmlFileHelper.cpp:2418
static TXString ConvertDmxBreak(Sint32 value)
Definition XmlFileHelper.cpp:577
static TXString ConvertBeamType(EGdtfBeamType value)
Definition XmlFileHelper.cpp:1004
static TXString ConvertVector3(const VWPoint3D &value)
Definition XmlFileHelper.cpp:1023
static bool ConvertDMXValue_UnitTest(const char *value, EGdtfChannelBitResolution chanlReso, DmxValue &intValue)
Definition XmlFileHelper.cpp:2413
static TXString ConvertInteger(Sint32 value)
Definition XmlFileHelper.cpp:395
static TXString ConvertBool(bool value)
Definition XmlFileHelper.cpp:1821
static TXString ConvertColorArray(TCCieColorArray &colors)
Definition XmlFileHelper.cpp:290
static TXString ConvertDoubleArray(TDoubleArray &values, bool includeBrackets)
Definition XmlFileHelper.cpp:528
static TXString ConvertPrimitiveType(EGdtfModel_PrimitiveType value)
Definition XmlFileHelper.cpp:791
static TXString ConvertTransmissionTypeEnum(GdtfDefines::ETransmissionType value)
Definition XmlFileHelper.cpp:2169
static GdtfDefines::EGdtfPhysicalUnit GetUnitFromSubPhysical(GdtfDefines::EGdtfSubPhysicalUnitType type)
Definition XmlFileHelper.cpp:2482
static TXString ConvertOrientationEnum(GdtfDefines::EGdtfOrientation value)
Definition XmlFileHelper.cpp:1972
static TXString ConvertStructureTypeEnum(GdtfDefines::EGdtfStructureType value)
Definition XmlFileHelper.cpp:2039
static TXString ConvertLaserColorTypeEnum(GdtfDefines::EGdtfLaserColorType value)
Definition XmlFileHelper.cpp:1902
static TXString ConvertComponentTypeEnum(GdtfDefines::EGdtfComponentType value)
Definition XmlFileHelper.cpp:1930
static TXString ConvertDate(const STime &date)
Definition XmlFileHelper.cpp:194
static TXString ConvertIntegerArray(TSint32Array &values, bool includeBrackets)
Definition XmlFileHelper.cpp:487
static TXString ConvertDmxOffset(DMXAddress coarse, DMXAddress fine, DMXAddress ultra, DMXAddress uber)
Definition XmlFileHelper.cpp:1437
std::function< void(IXMLFileNodePtr objNode)> TProcessNodeCall
Definition XmlFileHelper.h:166
static TXString ConvertEGdtfColorSpace(EGdtfColorSpace value)
Definition XmlFileHelper.cpp:1708
static TXString Convert2DPoint(double p_X, double p_Y)
Definition XmlFileHelper.cpp:1796
static TXString ConvertDMXAdress(DMXAddress value)
Definition XmlFileHelper.cpp:588
static TXString ConvertEScaleHandlingType(GdtfDefines::EScaleHandlingType value)
Definition XmlFileHelper.cpp:1871
static CCieColor ConvertCColor(const CieColor &color)
Definition XmlFileHelper.cpp:1473
static TXString ConvertHexValue(size_t value)
Definition XmlFileHelper.cpp:2701
static TXString ConvertESourceType(GdtfDefines::ESourceType)
Definition XmlFileHelper.cpp:1839
static TXString ConvertSpecialAttrEnum(EGdtfSpecial value)
Definition XmlFileHelper.cpp:857
static TXString ConvertLampeType(EGdtfLampType value)
Definition XmlFileHelper.cpp:1301
static TXString ConvertDMXValue(DmxValue value, EGdtfChannelBitResolution chanlReso, bool noneValue=false)
Definition XmlFileHelper.cpp:462
static TXString ConvertPhysicalUnitEnum(EGdtfPhysicalUnit value)
Definition XmlFileHelper.cpp:914
static TXString ConvertCrossSectionTypeEnum(GdtfDefines::EGdtfCrossSectionType value)
Definition XmlFileHelper.cpp:2067
static TXString ConvertColor(const CCieColor &color)
Definition XmlFileHelper.cpp:253
static void TraverseMultiNodes(IXMLFileNodePtr root, const TXString &childContainerNodeName, TProcessMultiNodeCall processNodeFunction)
Definition XmlFileHelper.cpp:2449
static TXString ConvertEGdtfInterpolationTo(EGdtfInterpolationTo value)
Definition XmlFileHelper.cpp:1739
static TXString ConvertSubPhysicalUnitTypeEnum(GdtfDefines::EGdtfSubPhysicalUnitType value)
Definition XmlFileHelper.cpp:2123
static DmxValue GetChannelMaxDmx(const EGdtfChannelBitResolution chanlReso)
Definition XmlFileHelper.cpp:2501
static TXString ConvertRotation(const VWTransformMatrix &ma)
Definition XmlFileHelper.cpp:1207
static TXString ConvertUUID(const VWFC::Tools::VWUUID &uuid)
Definition XmlFileHelper.cpp:18
Definition XmlFileHelper.h:13
VCOMError WriteToFile(IFileIdentifierPtr file)
Definition XmlFileHelper.cpp:2563
ISceneDataZipBuffer()
Definition XmlFileHelper.cpp:2518
virtual VCOMError VCOM_CALLTYPE CopyDataInto(void *pBuffer, size_t bufferSize)
Definition XmlFileHelper.cpp:2538
virtual VCOMError VCOM_CALLTYPE SetData(void *pBuffer, size_t bufferSize)
Definition XmlFileHelper.cpp:2548
bool IsSet()
Definition XmlFileHelper.cpp:2590
virtual VCOMError VCOM_CALLTYPE GetDataSize(size_t &outSize)
Definition XmlFileHelper.cpp:2532
VCOMError GetData(void *&dataPointer)
Definition XmlFileHelper.cpp:2584
virtual VCOMError VCOM_CALLTYPE CopyDataInto(void *pBuffer, size_t bufferSize)
Definition XmlFileHelper.cpp:2615
virtual VCOMError VCOM_CALLTYPE GetDataSize(size_t &outSize)
Definition XmlFileHelper.cpp:2609
virtual VCOMError VCOM_CALLTYPE SetData(void *pBuffer, size_t bufferSize)
Definition XmlFileHelper.cpp:2625
VCOMError GetData(void *&dataPointer)
Definition XmlFileHelper.cpp:2638
IXMLFileIOBufferImpl()
Definition XmlFileHelper.cpp:2595
Definition XmlFileHelper.h:190
static bool AddFileToZip(IZIPFilePtr &zipFile, const IFileIdentifierPtr &file, ERessourceType resType, bool deleteFile, bool mustExist=true)
Definition XmlFileHelper.cpp:2229
static TXString GetResourceSubFolder(ERessourceType resType)
Definition XmlFileHelper.cpp:2271
Definition CieColor.h:11
Definition GSString.h:132
Definition VWPoint3D.h:19
Definition VWTransformMatrix.h:16
Definition GDTFManager.h:19
VCOMPtr< IFileIdentifier > IFileIdentifierPtr
Definition IFileIdentifier.h:51
VCOMPtr< IZIPFile > IZIPFilePtr
Definition IZIPFile.h:81
VCOMPtr< IXMLFileNode > IXMLFileNodePtr
Definition IXMLFile.h:140
EGdtfChannelBitResolution
Definition GDTFPrefix.h:306
EGdtfColorSample
Definition GDTFPrefix.h:528
ERessourceType
Definition GDTFPrefix.h:20
EGdtfDmxMaster
Definition GDTFPrefix.h:277
EGdtfColorSpace
Definition GDTFPrefix.h:631
Uint16 DMXAddress
Definition GDTFPrefix.h:13
EGdtfSpecial
Definition GDTFPrefix.h:222
EGdtfLampType
Definition GDTFPrefix.h:258
EGdtfInterpolationTo
Definition GDTFPrefix.h:639
EGdtfCrossSectionType
Definition GDTFPrefix.h:703
EGdtfLaserColorType
Definition GDTFPrefix.h:661
EGdtfOrientation
Definition GDTFPrefix.h:680
EGdtfSupportType
Definition GDTFPrefix.h:709
EGdtfStructureType
Definition GDTFPrefix.h:697
EGdtfFuseRating
Definition GDTFPrefix.h:688
ESourceType
Definition GDTFPrefix.h:646
EGdtfComponentType
Definition GDTFPrefix.h:667
ETransmissionType
Definition GDTFPrefix.h:730
EGdtfDmxRelationType
Definition GDTFPrefix.h:300
EGdtfSubPhysicalUnitType
Definition GDTFPrefix.h:715
EGdtfBeamType
Definition GDTFPrefix.h:266
EGdtfDmxSnap
Definition GDTFPrefix.h:285
EGdtfPhysicalUnit
Definition GDTFPrefix.h:196
EScaleHandlingType
Definition GDTFPrefix.h:654
Uint64 DmxValue
Definition GDTFPrefix.h:17
EGdtfModel_PrimitiveType
Definition GDTFPrefix.h:241
std::vector< CCieColor * > TCCieColorArray
Definition CieColor.h:37
char16_t TXChar
Definition GSString.h:53
uint32_t VCOMError
Definition VectorworksMVR.h:119
Definition IMediaRessourceVectorInterface.h:52
Definition IMediaRessourceVectorInterface.h:73
Definition IMediaRessourceVectorInterface.h:36