Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 42 additions & 1 deletion src/GDTFManager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -7768,8 +7768,29 @@ bool GdtfFixture::ImportFromZip(IZIPFilePtr& zipfile)
IXMLFileNodePtr rootNode;
if (VCOM_SUCCEEDED(xmlFile->GetRootNode( & rootNode)))
{
TXString version;
rootNode->GetNodeAttributeValue( XML_GDTF_ROOTNODEATTRVERSION, version );

int majorVersion = 0;
int minorVersion = 0;
size_t dotPos = version.Find(".");
if (dotPos != std::string::npos) {
TXString majorStr = version.Mid(0, dotPos);
TXString minorStr = version.Mid(dotPos + 1);
try {
majorVersion = std::stoi(majorStr.GetStdWString());
minorVersion = std::stoi(minorStr.GetStdWString());
} catch (...) {
majorVersion = 0;
minorVersion = 0;
}
}

this->SetMajorVersion( majorVersion );
this->SetMinorVersion( minorVersion );

IXMLFileNodePtr fixtureNode;
if (VCOM_SUCCEEDED(rootNode->GetChildNode(XML_GDTF_FixtureNodeName, & fixtureNode)))
if (VCOM_SUCCEEDED(rootNode->GetChildNode(XML_GDTF_FixtureNodeName, &fixtureNode)))
{
//---------------------------------------------------------------------------------------------
// Read Stuff
Expand Down Expand Up @@ -9900,6 +9921,16 @@ GdtfPhysicalDescriptions& SceneData::GdtfFixture::GetPhysicalDesciptionsContaine
return fPhysicalDesciptions;
}

Sint32 GdtfFixture::GetMajorVersion() const
{
return fMajorVersion;
}

Sint32 GdtfFixture::GetMinorVersion() const
{
return fMinorVersion;
}

void GdtfFixture::SetName(const TXString& name)
{
fName = name;
Expand Down Expand Up @@ -9956,6 +9987,16 @@ void GdtfFixture::SetCanHaveChildren(bool canHaveChildren)
fCanHaveChildren = canHaveChildren;
}

void GdtfFixture::SetMajorVersion( Sint32 majorVersion )
{
fMajorVersion = majorVersion;
}

void GdtfFixture::SetMinorVersion( Sint32 minorVersion )
{
fMinorVersion = minorVersion;
}

//------------------------------------------------------------------------------------
// Point
SceneData::GdtfPoint::GdtfPoint()
Expand Down
7 changes: 7 additions & 0 deletions src/GDTFManager.h
Original file line number Diff line number Diff line change
Expand Up @@ -2799,6 +2799,8 @@ namespace SceneData

size_t fTotalNodesCount = 0;

Sint32 fMajorVersion = 0;
Sint32 fMinorVersion = 0;

//
GdtfAttributePtr fNoFeature;
Expand Down Expand Up @@ -2836,6 +2838,8 @@ namespace SceneData
const TXString& GetSVGThumnailFullPath();
GdtfProtocols& GetProtocollContainer();
GdtfPhysicalDescriptions& GetPhysicalDesciptionsContainer();
Sint32 GetMajorVersion() const;
Sint32 GetMinorVersion() const;

// Setter
void SetName(const TXString& name);
Expand All @@ -2851,6 +2855,9 @@ namespace SceneData
void SetCanHaveChildren(bool canHaveChildren);


void SetMajorVersion( Sint32 majorVersion );
void SetMinorVersion( Sint32 minorVersion );

public:
//----------------------------------------------------------------------------------------------------------------------------------------------------------------
// Add calls
Expand Down
22 changes: 22 additions & 0 deletions src/Implementation/CGdtfFixture.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -219,6 +219,28 @@ VectorworksMVR::VCOMError VectorworksMVR::CGdtfFixtureImpl::ReadFromFile(IFileId
return retVal;
}

VectorworksMVR::VCOMError VectorworksMVR::CGdtfFixtureImpl::GetGDTFVersion( Sint32& major, Sint32& minor )
{
if ( !fFixtureObject )
{
return kVCOMError_NotInitialized;
}

major = fFixtureObject->GetMajorVersion();
minor = fFixtureObject->GetMinorVersion();

if ( major <= 0 || minor <= 0 )
{
major = 0;
minor = 0;

return kVCOMError_Failed;
}

return kVCOMError_NoError;
}


MvrString VectorworksMVR::CGdtfFixtureImpl::GetName()
{
if(!fFixtureObject) {return "";}
Expand Down
2 changes: 2 additions & 0 deletions src/Implementation/CGdtfFixture.h
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,8 @@ namespace VectorworksMVR
virtual VCOMError VCOM_CALLTYPE AddBufferToGdtfFile(MvrString filename, const char* inBuffer, size_t length, GdtfDefines::ERessourceType resType);
virtual VCOMError VCOM_CALLTYPE Close();

virtual VCOMError VCOM_CALLTYPE GetGDTFVersion( Sint32& major, Sint32& minor );

virtual MvrString VCOM_CALLTYPE GetName();
virtual MvrString VCOM_CALLTYPE GetShortName();
virtual MvrString VCOM_CALLTYPE GetLongName();
Expand Down
2 changes: 2 additions & 0 deletions src/Include/IMediaRessourceVectorInterface.h
Original file line number Diff line number Diff line change
Expand Up @@ -1556,6 +1556,8 @@ class DYNAMIC_ATTRIBUTE IGdtfMacro : public IVWUnknown

virtual VCOMError VCOM_CALLTYPE Close() = 0;

virtual VCOMError VCOM_CALLTYPE GetGDTFVersion( Sint32& major, Sint32& minor ) = 0;

virtual MvrString VCOM_CALLTYPE GetName() = 0;
virtual MvrString VCOM_CALLTYPE GetManufacturer() = 0;
virtual VCOMError VCOM_CALLTYPE GetFixtureGUID(MvrUUID& uuid) = 0;
Expand Down