Skip to content
Open
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
68 changes: 68 additions & 0 deletions src/Implementation/CMediaRessourceVectorImpl.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -976,6 +976,74 @@ VectorworksMVR::VCOMError VectorworksMVR::CMediaRessourceVectorImpl::CreateProje
return kVCOMError_NoError;
}

VectorworksMVR::VCOMError VectorworksMVR::CMediaRessourceVectorImpl::CreateListeningPlane(const MvrUUID& guid, const STransformMatrix& offset, MvrString name, ISceneObj* addToContainer, ISceneObj** outlisteningPlane)
{
//---------------------------------------------------------------------------
// Read Container
CSceneObjImpl* pContainer = static_cast<CSceneObjImpl* >(addToContainer);

ASSERTN(kEveryone, pContainer != nullptr);
if ( ! pContainer) { return kVCOMError_NoValidContainerObj; }


SceneData::SceneDataObjWithMatrixPtr obj = nullptr;
ESceneObjType type = ESceneObjType::Layer;
pContainer->GetPointer(obj, type);

if( ! VectorworksMVR::MvrUtil::isContainerType(type)) { return kVCOMError_NoValidContainerObj; }

SceneData::SceneDataGroupObjPtr group = static_cast<SceneData::SceneDataGroupObjPtr>(obj);

ASSERTN(kEveryone, group != nullptr);
if ( ! group) { return kVCOMError_NoValidContainerObj; }

//---------------------------------------------------------------------------
// Create the obj
VWFC::Tools::VWUUID uuid (guid.a,guid.b,guid.c,guid.d);
TXString nameStr ( name );

VWTransformMatrix ma;
GdtfUtil::ConvertMatrix(offset, ma);

SceneData::SceneDataListeningPlaneObjPtr ptr = fExchangeObj.CreateListeningPlane(uuid, ma, nameStr, group);

//---------------------------------------------------------------------------
// Initialize Object
CSceneObjImpl* pListeningPlane = nullptr;

// Query Interface
if (VCOM_SUCCEEDED(VWQueryInterface(IID_SceneObject, (IVWUnknown**) & pListeningPlane)))
{
// Check Casting
CSceneObjImpl* pResultInterface = static_cast<CSceneObjImpl* >(pListeningPlane);
if (pResultInterface)
{
pResultInterface->SetPointer(ptr, GetExchangeObj());
}
else
{
pResultInterface->Release();
pResultInterface = nullptr;
return kVCOMError_NoInterface;
}
}

//---------------------------------------------------------------------------
// Check Incoming Object
if (*outlisteningPlane)
{
(*outlisteningPlane)->Release();
*outlisteningPlane = NULL;
}

//---------------------------------------------------------------------------
// Set Out Value
*outlisteningPlane = pListeningPlane;

return kVCOMError_NoError;
}


VectorworksMVR::VCOMError VectorworksMVR::CMediaRessourceVectorImpl::Close()
{
//------------------------------------------------------------------
Expand Down
21 changes: 11 additions & 10 deletions src/Implementation/CMediaRessourceVectorImpl.h
Original file line number Diff line number Diff line change
Expand Up @@ -55,16 +55,17 @@ namespace VectorworksMVR


// Then you can generate all other objects
virtual VCOMError VCOM_CALLTYPE CreateLayerObject( const MvrUUID& guid, MvrString name, ISceneObj** outLayerObj);
virtual VCOMError VCOM_CALLTYPE CreateGroupObject( const MvrUUID& guid, const STransformMatrix& offset, ISceneObj* addToContainer, ISceneObj** outGroupObj);
virtual VCOMError VCOM_CALLTYPE CreateGroupObject( const MvrUUID& guid, const STransformMatrix& offset, MvrString name, ISceneObj* addToContainer, ISceneObj** outGroupObj);
virtual VCOMError VCOM_CALLTYPE CreateFixture( const MvrUUID& guid, const STransformMatrix& offset, MvrString name, ISceneObj* addToContainer, ISceneObj** outFixture);
virtual VCOMError VCOM_CALLTYPE CreateSceneObject( const MvrUUID& guid, const STransformMatrix& offset, MvrString name, ISceneObj* addToContainer, ISceneObj** outSceneObj);
virtual VCOMError VCOM_CALLTYPE CreateFocusPoint( const MvrUUID& guid, const STransformMatrix& offset, MvrString name, ISceneObj* addToContainer, ISceneObj** outFocusPoint);
virtual VCOMError VCOM_CALLTYPE CreateTruss( const MvrUUID& guid, const STransformMatrix& offset, MvrString name, ISceneObj* addToContainer, ISceneObj** outTruss);
virtual VCOMError VCOM_CALLTYPE CreateSupport( const MvrUUID& guid, const STransformMatrix& offset, MvrString name, ISceneObj* addToContainer, ISceneObj** outSupport);
virtual VCOMError VCOM_CALLTYPE CreateVideoScreen( const MvrUUID& guid, const STransformMatrix& offset, MvrString name, ISceneObj* addToContainer, ISceneObj** outVideoScreen);
virtual VCOMError VCOM_CALLTYPE CreateProjector( const MvrUUID& guid, const STransformMatrix& offset, MvrString name, ISceneObj* addToContainer, ISceneObj** outProjector);
virtual VCOMError VCOM_CALLTYPE CreateLayerObject( const MvrUUID& guid, MvrString name, ISceneObj** outLayerObj);
virtual VCOMError VCOM_CALLTYPE CreateGroupObject( const MvrUUID& guid, const STransformMatrix& offset, ISceneObj* addToContainer, ISceneObj** outGroupObj);
virtual VCOMError VCOM_CALLTYPE CreateGroupObject( const MvrUUID& guid, const STransformMatrix& offset, MvrString name, ISceneObj* addToContainer, ISceneObj** outGroupObj);
virtual VCOMError VCOM_CALLTYPE CreateFixture( const MvrUUID& guid, const STransformMatrix& offset, MvrString name, ISceneObj* addToContainer, ISceneObj** outFixture);
virtual VCOMError VCOM_CALLTYPE CreateSceneObject( const MvrUUID& guid, const STransformMatrix& offset, MvrString name, ISceneObj* addToContainer, ISceneObj** outSceneObj);
virtual VCOMError VCOM_CALLTYPE CreateFocusPoint( const MvrUUID& guid, const STransformMatrix& offset, MvrString name, ISceneObj* addToContainer, ISceneObj** outFocusPoint);
virtual VCOMError VCOM_CALLTYPE CreateTruss( const MvrUUID& guid, const STransformMatrix& offset, MvrString name, ISceneObj* addToContainer, ISceneObj** outTruss);
virtual VCOMError VCOM_CALLTYPE CreateSupport( const MvrUUID& guid, const STransformMatrix& offset, MvrString name, ISceneObj* addToContainer, ISceneObj** outSupport);
virtual VCOMError VCOM_CALLTYPE CreateVideoScreen( const MvrUUID& guid, const STransformMatrix& offset, MvrString name, ISceneObj* addToContainer, ISceneObj** outVideoScreen);
virtual VCOMError VCOM_CALLTYPE CreateProjector( const MvrUUID& guid, const STransformMatrix& offset, MvrString name, ISceneObj* addToContainer, ISceneObj** outProjector);
virtual VCOMError VCOM_CALLTYPE CreateListeningPlane( const MvrUUID& guid, const STransformMatrix& offset, MvrString name, ISceneObj* addToContainer, ISceneObj** outListeningPlane);

// Add the end call to write the file to disk
virtual VCOMError VCOM_CALLTYPE Close();
Expand Down
59 changes: 50 additions & 9 deletions src/Implementation/CSceneObjImpl.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1984,6 +1984,46 @@ VectorworksMVR::VCOMError VectorworksMVR::CSceneObjImpl::GetVideoScreenSource(IS
return kVCOMError_NoError;
}

// ------------------------------------------------------------------------------------------------------------------------------------------
// Listening Plane
VectorworksMVR::VCOMError VectorworksMVR::CSceneObjImpl::SetAudioDescriptionFile(MvrString fileName)
{
// Check if this is initialized
ASSERTN(kEveryone,fPtr);
if( ! fPtr) return kVCOMError_NotInitialized;

// Check the type is right
ASSERTN(kEveryone,fType == ESceneObjType::ListeningPlane);
if( fType != ESceneObjType::ListeningPlane) return kVCOMError_Failed;

// Try to cast
SceneData::SceneDataListeningPlaneObjPtr listeningPlane = static_cast<SceneData::SceneDataListeningPlaneObjPtr>(fPtr);
if( ! listeningPlane) return kVCOMError_Failed;

listeningPlane->SetAudioDescriptionFile(fileName);

return kVCOMError_NoError;
}

VectorworksMVR::VCOMError VectorworksMVR::CSceneObjImpl::GetAudioDescriptionFile( MvrString& outFileName )
{
// Check if this is initialized
ASSERTN( kEveryone, fPtr );
if ( !fPtr ) return kVCOMError_NotInitialized;

// Check the type is right
ASSERTN( kEveryone, fType == ESceneObjType::ListeningPlane );
if ( fType != ESceneObjType::ListeningPlane ) return kVCOMError_Failed;

// Try to cast
SceneData::SceneDataListeningPlaneObjPtr listeningPlane = static_cast<SceneData::SceneDataListeningPlaneObjPtr>( fPtr );
if ( !listeningPlane ) return kVCOMError_Failed;

outFileName = listeningPlane->GetAudioDescriptionFile();

return kVCOMError_NoError;
}

//------------------------------------------------------------------------------------------------------------------------------------------
// Projector
VectorworksMVR::VCOMError VectorworksMVR::CSceneObjImpl::SetProjectorSource(MvrString value, MvrString linkedGeometry, GdtfDefines::ESourceType type)
Expand Down Expand Up @@ -2152,15 +2192,16 @@ void VectorworksMVR::CSceneObjImpl::SetPointer(SceneData::SceneDataObjWithMatrix

switch (pointer->GetObjectType())
{
case SceneData::eLayer: fType = ESceneObjType::Layer; break;
case SceneData::eGroup: fType = ESceneObjType::Group; break;
case SceneData::eTruss: fType = ESceneObjType::Truss; break;
case SceneData::eSupport: fType = ESceneObjType::Support; break;
case SceneData::eFixture: fType = ESceneObjType::Fixture; break;
case SceneData::eFocusPoint: fType = ESceneObjType::FocusPoint; break;
case SceneData::eSceneObject: fType = ESceneObjType::SceneObj; break;
case SceneData::eVideoScreen: fType = ESceneObjType::VideoScreen; break;
case SceneData::eProjector: fType = ESceneObjType::Projector; break;
case SceneData::eLayer: fType = ESceneObjType::Layer; break;
case SceneData::eGroup: fType = ESceneObjType::Group; break;
case SceneData::eTruss: fType = ESceneObjType::Truss; break;
case SceneData::eSupport: fType = ESceneObjType::Support; break;
case SceneData::eFixture: fType = ESceneObjType::Fixture; break;
case SceneData::eFocusPoint: fType = ESceneObjType::FocusPoint; break;
case SceneData::eSceneObject: fType = ESceneObjType::SceneObj; break;
case SceneData::eVideoScreen: fType = ESceneObjType::VideoScreen; break;
case SceneData::eProjector: fType = ESceneObjType::Projector; break;
case SceneData::eListeningPlane: fType = ESceneObjType::ListeningPlane; break;

default:
DSTOP((kEveryone, "Unexpected input!"));
Expand Down
2 changes: 2 additions & 0 deletions src/Implementation/CSceneObjImpl.h
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,8 @@ namespace VectorworksMVR
virtual VCOMError VCOM_CALLTYPE GetConnectionAt(size_t at, IConnection** outConnection);
virtual VCOMError VCOM_CALLTYPE CreateConnection(MvrString own, MvrString other, MvrUUID ToObject, IConnection** addedObj);

virtual VCOMError VCOM_CALLTYPE SetAudioDescriptionFile( MvrString fileName );
virtual VCOMError VCOM_CALLTYPE GetAudioDescriptionFile( MvrString& outFileName );

// Implementation
public:
Expand Down
26 changes: 16 additions & 10 deletions src/Include/IMediaRessourceVectorInterface.h
Original file line number Diff line number Diff line change
Expand Up @@ -327,6 +327,7 @@ namespace VectorworksMVR
Fixture,
Projector,
Support,
ListeningPlane
};

class DYNAMIC_ATTRIBUTE ISceneObj : public IVWUnknown
Expand Down Expand Up @@ -404,6 +405,10 @@ namespace VectorworksMVR
virtual VCOMError VCOM_CALLTYPE SetVideoScreenSource(MvrString value, MvrString linkedGeometry, GdtfDefines::ESourceType) = 0;
virtual VCOMError VCOM_CALLTYPE GetVideoScreenSource(ISource** outSource) = 0;

// Listening Plane
virtual VCOMError VCOM_CALLTYPE SetAudioDescriptionFile(MvrString value) = 0;
virtual VCOMError VCOM_CALLTYPE GetAudioDescriptionFile(MvrString& outValue) = 0;

// Projector
virtual VCOMError VCOM_CALLTYPE SetProjectorSource(MvrString value, MvrString linkedGeometry, GdtfDefines::ESourceType) = 0;
virtual VCOMError VCOM_CALLTYPE GetProjectorSource(ISource** outSource) = 0;
Expand Down Expand Up @@ -450,16 +455,17 @@ namespace VectorworksMVR
virtual VCOMError VCOM_CALLTYPE CreateMappingDefinitionObject( const MvrUUID& guid, MvrString name, IMappingDefinition** outMapDef) = 0;

// Then you can generate all other objects
virtual VCOMError VCOM_CALLTYPE CreateLayerObject( const MvrUUID& guid, MvrString name, ISceneObj** outLayerObj) = 0;
virtual VCOMError VCOM_CALLTYPE CreateGroupObject( const MvrUUID& guid, const STransformMatrix& offset, ISceneObj* addToContainer, ISceneObj** outGroupObj) = 0;
virtual VCOMError VCOM_CALLTYPE CreateGroupObject( const MvrUUID& guid, const STransformMatrix& offset, MvrString name, ISceneObj* addToContainer, ISceneObj** outGroupObj) = 0;
virtual VCOMError VCOM_CALLTYPE CreateFixture( const MvrUUID& guid, const STransformMatrix& offset, MvrString name, ISceneObj* addToContainer, ISceneObj** outFixture) = 0;
virtual VCOMError VCOM_CALLTYPE CreateSceneObject( const MvrUUID& guid, const STransformMatrix& offset, MvrString name, ISceneObj* addToContainer, ISceneObj** outSceneObj) = 0;
virtual VCOMError VCOM_CALLTYPE CreateFocusPoint( const MvrUUID& guid, const STransformMatrix& offset, MvrString name, ISceneObj* addToContainer, ISceneObj** outFocusPoint) = 0;
virtual VCOMError VCOM_CALLTYPE CreateVideoScreen( const MvrUUID& guid, const STransformMatrix& offset, MvrString name, ISceneObj* addToContainer, ISceneObj** outVideoScreen) = 0;
virtual VCOMError VCOM_CALLTYPE CreateTruss( const MvrUUID& guid, const STransformMatrix& offset, MvrString name, ISceneObj* addToContainer, ISceneObj** outTruss) = 0;
virtual VCOMError VCOM_CALLTYPE CreateSupport( const MvrUUID& guid, const STransformMatrix& offset, MvrString name, ISceneObj* addToContainer, ISceneObj** outSupport) = 0;
virtual VCOMError VCOM_CALLTYPE CreateProjector( const MvrUUID& guid, const STransformMatrix& offset, MvrString name, ISceneObj* addToContainer, ISceneObj** outProjector) = 0;
virtual VCOMError VCOM_CALLTYPE CreateLayerObject( const MvrUUID& guid, MvrString name, ISceneObj** outLayerObj) = 0;
virtual VCOMError VCOM_CALLTYPE CreateGroupObject( const MvrUUID& guid, const STransformMatrix& offset, ISceneObj* addToContainer, ISceneObj** outGroupObj) = 0;
virtual VCOMError VCOM_CALLTYPE CreateGroupObject( const MvrUUID& guid, const STransformMatrix& offset, MvrString name, ISceneObj* addToContainer, ISceneObj** outGroupObj) = 0;
virtual VCOMError VCOM_CALLTYPE CreateFixture( const MvrUUID& guid, const STransformMatrix& offset, MvrString name, ISceneObj* addToContainer, ISceneObj** outFixture) = 0;
virtual VCOMError VCOM_CALLTYPE CreateSceneObject( const MvrUUID& guid, const STransformMatrix& offset, MvrString name, ISceneObj* addToContainer, ISceneObj** outSceneObj) = 0;
virtual VCOMError VCOM_CALLTYPE CreateFocusPoint( const MvrUUID& guid, const STransformMatrix& offset, MvrString name, ISceneObj* addToContainer, ISceneObj** outFocusPoint) = 0;
virtual VCOMError VCOM_CALLTYPE CreateVideoScreen( const MvrUUID& guid, const STransformMatrix& offset, MvrString name, ISceneObj* addToContainer, ISceneObj** outVideoScreen) = 0;
virtual VCOMError VCOM_CALLTYPE CreateTruss( const MvrUUID& guid, const STransformMatrix& offset, MvrString name, ISceneObj* addToContainer, ISceneObj** outTruss) = 0;
virtual VCOMError VCOM_CALLTYPE CreateSupport( const MvrUUID& guid, const STransformMatrix& offset, MvrString name, ISceneObj* addToContainer, ISceneObj** outSupport) = 0;
virtual VCOMError VCOM_CALLTYPE CreateProjector( const MvrUUID& guid, const STransformMatrix& offset, MvrString name, ISceneObj* addToContainer, ISceneObj** outProjector) = 0;
virtual VCOMError VCOM_CALLTYPE CreateListeningPlane( const MvrUUID& guid, const STransformMatrix& offset, MvrString name, ISceneObj* addToContainer, ISceneObj** outListeningPlane) = 0;

// Add the end call to write the file to disk
virtual VCOMError VCOM_CALLTYPE Close() = 0;
Expand Down
2 changes: 2 additions & 0 deletions src/Prefix/CommonPrefix.h
Original file line number Diff line number Diff line change
Expand Up @@ -245,6 +245,8 @@
#define XML_Val_ProjectorObjectProjection "Projection"
#define XML_Val_ProjectorObjectScaleHandling "ScaleHandling"

#define XML_Val_ListeningPlaneObjectNodeName "ListeningPlane"

#define XML_Val_SymbolObjectNodeName "Symbol"
#define XML_Val_GuidSymdefAttrName "symdef"

Expand Down
Loading
Loading