diff options
Diffstat (limited to 'src/Runtime/ogl-runtime/src/dm/systems/Qt3DSDMSlides.h')
m--------- | src/Runtime/ogl-runtime | 0 | ||||
-rw-r--r-- | src/Runtime/ogl-runtime/src/dm/systems/Qt3DSDMSlides.h | 202 |
2 files changed, 0 insertions, 202 deletions
diff --git a/src/Runtime/ogl-runtime b/src/Runtime/ogl-runtime new file mode 160000 +Subproject 427fddb50d43aa21a90fc7356ee3cdd8a908df5 diff --git a/src/Runtime/ogl-runtime/src/dm/systems/Qt3DSDMSlides.h b/src/Runtime/ogl-runtime/src/dm/systems/Qt3DSDMSlides.h deleted file mode 100644 index aa7c27ce..00000000 --- a/src/Runtime/ogl-runtime/src/dm/systems/Qt3DSDMSlides.h +++ /dev/null @@ -1,202 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 1993-2009 NVIDIA Corporation. -** Copyright (C) 2017 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of Qt 3D Studio. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ -#pragma once -#ifndef QT3DSDM_SLIDES_H -#define QT3DSDM_SLIDES_H -#include "Qt3DSDMHandles.h" -#include "Qt3DSDMSlideCore.h" - -namespace qt3dsdm { -/** - * Some properties point to instances which act like extended properties. - * An example of this would be the images on materials. If a material has an - * image in one of its slots, that image should be duplicated upon property unlink - * and deleted upon property link. It (and its animations) should be duplicated upon - * create slide and deleted upon slide destruction such that the concept that the image - * is really a property on the material stays sound. - */ -class IPropertyInstanceInfo -{ -public: - virtual ~IPropertyInstanceInfo() {} - - /** - * Return the instance that relates to this property - */ - virtual Qt3DSDMInstanceHandle GetInstanceForProperty(const SValue &inValue) = 0; - - /** - * Duplicate this instance and whichever properties and animations you desire, - * returning a new data model value that will be set on the newly created property. - * Don't forget to associate the instance with a the dest slide. I doubt things - * will work correctly if you do not. - */ - virtual SValue CreateInstanceForProperty(Qt3DSDMSlideHandle inSourceSlide, - Qt3DSDMSlideHandle inDestSlide, - Qt3DSDMInstanceHandle inInstance) = 0; -}; - -typedef std::shared_ptr<IPropertyInstanceInfo> TPropertyInstanceInfoPtr; - -struct SInstanceSlideInformation -{ - // The slide associated with the instance - Qt3DSDMSlideHandle m_AssociatedSlide; - // The master slide of the component. - Qt3DSDMSlideHandle m_MasterSlide; - // The active slide of the component. - Qt3DSDMSlideHandle m_ActiveSlide; - // The current milliseconds of the active slide on the component. - long m_ComponentMilliseconds; - - SInstanceSlideInformation() - : m_ComponentMilliseconds(0) - { - } - SInstanceSlideInformation(Qt3DSDMSlideHandle inAssoc, Qt3DSDMSlideHandle inMaster, - Qt3DSDMSlideHandle inActive, long inMilliseconds) - : m_AssociatedSlide(inAssoc) - , m_MasterSlide(inMaster) - , m_ActiveSlide(inActive) - , m_ComponentMilliseconds(inMilliseconds) - { - } -}; - -class ISlideSystem -{ -public: - virtual ~ISlideSystem() {} - virtual Qt3DSDMSlideHandle CreateMasterSlide() = 0; - virtual Qt3DSDMSlideHandle CreateSlide(Qt3DSDMSlideHandle inMaster, int inIndex = -1) = 0; - // Duplicate this slide and put it into the master's child lists at index. - virtual Qt3DSDMSlideHandle DuplicateSlide(Qt3DSDMSlideHandle inSourceSlide, int inDestIndex) = 0; - virtual Qt3DSDMSlideHandle GetMasterSlide(Qt3DSDMSlideHandle inSlide) const = 0; - virtual bool IsMasterSlide(Qt3DSDMSlideHandle inSlide) const = 0; - virtual Qt3DSDMSlideHandle GetMasterSlideByComponentGuid(SLong4 inGuid) const = 0; - // Indexes are 1 based. Index 0 refers to the master slide; you can't delete this. - virtual void DeleteSlideByIndex(Qt3DSDMSlideHandle inMaster, size_t inIndex) = 0; - virtual void GetSlideReferencedInstances(Qt3DSDMSlideHandle inMaster, size_t inIndex, - TInstanceHandleList &outReferencedInstances) = 0; - virtual Qt3DSDMSlideHandle GetSlideByIndex(Qt3DSDMSlideHandle inMaster, size_t inIndex) const = 0; - virtual void SetActiveSlide(Qt3DSDMSlideHandle inMaster, size_t inIndex) = 0; - virtual void RearrangeSlide(Qt3DSDMSlideHandle inMaster, size_t inOldIndex, - size_t inNewIndex) = 0; - /** - * Set the current component time. This object will figure out the component from the slide. - */ - virtual void SetComponentSeconds(Qt3DSDMSlideHandle inSlide, float inSeconds) = 0; - /** - * Return the current time of the component - */ - virtual float GetComponentSeconds(Qt3DSDMSlideHandle inSlide) const = 0; - virtual long GetComponentSecondsLong(Qt3DSDMSlideHandle inSlide) const = 0; - virtual long GetComponentSecondsLong(Qt3DSDMInstanceHandle inInstance) const = 0; - - // The fastest way possible, get all of the slide information for this instance. - virtual SInstanceSlideInformation - GetInstanceSlideInformation(Qt3DSDMInstanceHandle inInstance) const = 0; - /** - * Slide count includes the master slide; - */ - virtual size_t GetSlideCount(Qt3DSDMSlideHandle inMaster) const = 0; - /** - * Use the instance for storing information such as name, or the GUID of the object - * this slide links to. - */ - virtual Qt3DSDMInstanceHandle GetSlideInstance(Qt3DSDMSlideHandle inSlide) const = 0; - /** - * Reverse lookup into the slide system so you can match slides to instances. - */ - virtual Qt3DSDMSlideHandle GetSlideByInstance(Qt3DSDMInstanceHandle inInstance) const = 0; - /** - * Slide may be either a master slide - */ - virtual void AssociateInstanceWithSlide(Qt3DSDMSlideHandle inSlide, - Qt3DSDMInstanceHandle inInstance) = 0; - virtual Qt3DSDMSlideHandle GetAssociatedSlide(Qt3DSDMInstanceHandle inInstance) const = 0; - virtual void GetAssociatedInstances( - Qt3DSDMSlideHandle inMaster, - std::vector<std::pair<Qt3DSDMSlideHandle, Qt3DSDMInstanceHandle>> &outAssociations) const = 0; - virtual void GetAssociatedInstances(Qt3DSDMSlideHandle inSlide, - TInstanceHandleList &outAssociations) const = 0; - virtual void LinkProperty(Qt3DSDMInstanceHandle inInstance, Qt3DSDMPropertyHandle inProperty) = 0; - virtual void UnlinkProperty(Qt3DSDMInstanceHandle inInstance, - Qt3DSDMPropertyHandle inProperty) = 0; - virtual bool IsPropertyLinked(Qt3DSDMInstanceHandle inInstance, - Qt3DSDMPropertyHandle inProperty) const = 0; - virtual bool CanPropertyBeLinked(Qt3DSDMInstanceHandle inInstance, - Qt3DSDMPropertyHandle inProperty) const = 0; - virtual void GetUnionOfProperties(Qt3DSDMSlideHandle inSlide1, Qt3DSDMSlideHandle inSlide, - TInstancePropertyPairList &outProperties) const = 0; - - virtual bool GetSlidePropertyValue(size_t inSlide, Qt3DSDMInstanceHandle inInstance, - Qt3DSDMPropertyHandle inProperty, SValue &outValue) = 0; - - virtual void SetActiveSlide(Qt3DSDMSlideHandle inSlide) = 0; - virtual Qt3DSDMSlideHandle GetAssociatedSlide(Qt3DSDMInstanceHandle inInstance, - Qt3DSDMPropertyHandle inProperty) const = 0; - - virtual bool SlideValid(Qt3DSDMSlideHandle inSlide) const = 0; - virtual int GetSlideIndex(Qt3DSDMSlideHandle inSlide) const = 0; - virtual int GetActiveSlideIndex(Qt3DSDMSlideHandle inMaster) const = 0; - virtual Qt3DSDMSlideHandle GetActiveSlide(Qt3DSDMSlideHandle inMaster) const = 0; - virtual Qt3DSDMInstanceHandle GetSlideSelectedInstance(Qt3DSDMSlideHandle inSlide) const = 0; - virtual void SetSlideSelectedInstance(Qt3DSDMSlideHandle inSlide, - Qt3DSDMInstanceHandle inInstance) = 0; - - virtual Qt3DSDMSlideHandle GetApplicableSlide(Qt3DSDMInstanceHandle inHandle) = 0; - virtual Qt3DSDMSlideHandle GetApplicableSlide(Qt3DSDMInstanceHandle inHandle, - Qt3DSDMPropertyHandle inProperty) = 0; - - virtual bool GetInstancePropertyValue(Qt3DSDMSlideHandle inSlide, - Qt3DSDMInstanceHandle inInstance, - Qt3DSDMPropertyHandle inProperty, - SValue &outValue) const = 0; - virtual bool GetCanonicalInstancePropertyValue(Qt3DSDMInstanceHandle inInstance, - Qt3DSDMPropertyHandle inProperty, - SValue &outValue) const = 0; - virtual void ForceSetInstancePropertyValue(Qt3DSDMSlideHandle inSlide, - Qt3DSDMInstanceHandle inInstance, - Qt3DSDMPropertyHandle inProperty, - const SValue &inValue) = 0; - - /** - * Let this object know that this property will sometimes reference another property - * and give an outside entity the chance to create new objects and properties when - * the property is unlinked and linked. - */ - virtual void RegisterPropertyInstance(Qt3DSDMPropertyHandle inPropertyHandle, - TPropertyInstanceInfoPtr inPropertyInfo) = 0; -}; - -typedef std::shared_ptr<ISlideSystem> TSlideSystemPtr; -} - -#endif |