void AbcUpdateBegin(float time)
        {
            if (m_lastLogToFile != m_logToFile ||
                m_lastLogPath != m_logPath)
            {
                AbcAPI.aiEnableFileLog(m_logToFile, m_logPath);

                m_lastLogToFile = m_logToFile;
                m_lastLogPath   = m_logPath;
            }

            if (!m_loaded && m_pathToAbc != null)
            {
                // We have lost the alembic context, try to recover it
                m_loaded = AbcRecoverContext();
            }

            if (m_loaded)
            {
                if (!AbcIsValid())
                {
                    // We have lost the alembic context, try to recover
                    m_loaded = AbcRecoverContext();
                    if (!m_loaded)
                    {
                        Debug.LogWarning("AlembicStream.AbcUpdate: Lost alembic context");

                        return;
                    }
                }

                m_time = time;

                float abcTime     = AbcTime(m_time);
                float aspectRatio = AbcAPI.GetAspectRatio(m_aspectRatioMode);

                if (AbcUpdateRequired(abcTime, aspectRatio))
                {
                    if (m_verbose)
                    {
                        Debug.Log("AlembicStream.AbcUpdate: t=" + m_time + " (t'=" + abcTime + ")");
                    }

                    if (m_pathToAbc != m_lastPathToAbc)
                    {
                        if (m_verbose)
                        {
                            Debug.Log("AlembicStream.AbcUpdate: Path to alembic file changed");
                        }

                        AbcDetachElements();

                        AbcAPI.aiDestroyContext(m_abc);

                        m_elements.Clear();

                        AbcLoad(true);

                        AbcCleanupTree();
                    }
                    else
                    {
                        AbcSyncConfig();

                        if (m_useThreads)
                        {
                            AbcAPI.aiUpdateSamplesBegin(m_abc, abcTime);
                            m_updateBegan = true;
                        }
                        else
                        {
                            AbcAPI.aiUpdateSamples(m_abc, abcTime);
                            AbcUpdateElements();
                        }
                    }

                    AbcSetLastUpdateState(abcTime, aspectRatio);
                }
            }
        }
 public void Awake()
 {
     AbcLoad();
     AbcAPI.aiEnableFileLog(m_logToFile, m_logPath);
 }
Exemple #3
0
 public void Awake()
 {
     refTime = Time.time;
     AbcLoad();
     AbcAPI.aiEnableFileLog(m_logToFile, m_logPath);
 }