Пример #1
0
    public void AbcLoad()
    {
        if (m_path_to_abc == null) { return; }
        Debug.Log(m_path_to_abc);

        m_trans = GetComponent<Transform>();
        m_abc = AbcAPI.aiCreateContext();
        m_load_succeeded = AbcAPI.aiLoad(m_abc, Application.streamingAssetsPath + "/" + m_path_to_abc);

        if (m_load_succeeded)
        {
            m_start_time = AbcAPI.aiGetStartTime(m_abc);
            m_end_time = AbcAPI.aiGetEndTime(m_abc);
            m_time_offset = -m_start_time;
            m_time_scale = 1.0f;
            m_preserve_start_time = true;

            AbcAPI.aiImportConfig ic;
            ic.triangulate = 1;
            ic.revert_x = (byte)(m_revert_x ? 1 : 0);
            ic.revert_faces = (byte)(m_revert_faces ? 1 : 0);
            AbcAPI.aiSetImportConfig(m_abc, ref ic);
            AbcAPI.UpdateAbcTree(m_abc, m_trans, m_revert_x, m_revert_faces, m_time);
        }
    }
Пример #2
0
    public void AbcLoad(bool createMissingNodes = false)
    {
        if (m_pathToAbc == null)
        {
            return;
        }

        m_trans  = GetComponent <Transform>();
        m_abc    = AbcAPI.aiCreateContext(gameObject.GetInstanceID());
        m_loaded = AbcAPI.aiLoad(m_abc, Application.streamingAssetsPath + "/" + m_pathToAbc);

        if (m_loaded)
        {
            m_startTime         = AbcAPI.aiGetStartTime(m_abc);
            m_endTime           = AbcAPI.aiGetEndTime(m_abc);
            m_timeOffset        = -m_startTime;
            m_timeScale         = 1.0f;
            m_preserveStartTime = true;
            m_forceRefresh      = true;

            AbcSyncConfig();

            AbcAPI.UpdateAbcTree(m_abc, m_trans, AbcTime(m_time), createMissingNodes);
        }
    }
Пример #3
0
    bool AbcRecoverContext()
    {
        if (!AbcIsValid())
        {
            if (m_verbose)
            {
                Debug.Log("AlembicStream.AbcRecoverContext: Try to recover alembic context");
            }

            m_abc = AbcAPI.aiCreateContext(gameObject.GetInstanceID());

            if (AbcIsValid())
            {
                m_startTime         = AbcAPI.aiGetStartTime(m_abc);
                m_endTime           = AbcAPI.aiGetEndTime(m_abc);
                m_timeOffset        = -m_startTime;
                m_timeScale         = 1.0f;
                m_preserveStartTime = true;
                m_forceRefresh      = true;
                m_trans             = GetComponent <Transform>();
                m_elements.Clear();

                AbcSyncConfig();

                AbcAPI.UpdateAbcTree(m_abc, m_trans, AbcTime(m_time), false);

                if (m_verbose)
                {
                    Debug.Log("AlembicStream.AbcRecoverContext: Succeeded (" + m_elements.Count + " element(s))");
                }

                return(true);
            }
            else
            {
                return(false);
            }
        }
        else
        {
            return(true);
        }
    }
Пример #4
0
    void OnDestroy()
    {
        if (!AbcIsValid())
        {
            return;
        }

        if (!Application.isPlaying)
        {
#if UNITY_EDITOR
            if (!EditorApplication.isPlayingOrWillChangePlaymode)
            {
                AbcDetachElements();
                AbcAPI.aiDestroyContext(m_abc);
                m_abc = default(AbcAPI.aiContext);
            }
#else
            AbcDetachElements();
            AbcAPI.aiDestroyContext(m_abc);
            m_abc = default(AbcAPI.aiContext);
#endif
        }
    }
Пример #5
0
    void OnDestroy()
    {
        if (!AbcIsValid())
        {
            return;
        }

        if (!Application.isPlaying)
        {
#if UNITY_EDITOR
            if (!EditorApplication.isPlayingOrWillChangePlaymode)
            {
                AbcDetachElements();
                AbcAPI.aiDestroyContext(m_abc);
                m_abc = default(AbcAPI.aiContext);
            }
#else
            AbcDetachElements();
            AbcAPI.aiDestroyContext(m_abc);
            m_abc = default(AbcAPI.aiContext);
#endif
        }
    }
Пример #6
0
    public void AbcLoad(bool createMissingNodes=false)
    {
        if (m_pathToAbc == null)
        {
            return;
        }

        m_trans = GetComponent<Transform>();
        m_abc = AbcAPI.aiCreateContext(gameObject.GetInstanceID());
        m_loaded = AbcAPI.aiLoad(m_abc, Application.streamingAssetsPath + "/" + m_pathToAbc);

        if (m_loaded)
        {
            m_startTime = AbcAPI.aiGetStartTime(m_abc);
            m_endTime = AbcAPI.aiGetEndTime(m_abc);
            m_timeOffset = -m_startTime;
            m_timeScale = 1.0f;
            m_preserveStartTime = true;
            m_forceRefresh = true;

            AbcSyncConfig();

            AbcAPI.UpdateAbcTree(m_abc, m_trans, AbcTime(m_time), createMissingNodes);
        }
    }
Пример #7
0
    bool AbcRecoverContext()
    {
        if (!AbcIsValid())
        {
            if (m_verbose)
            {
                Debug.Log("AlembicStream.AbcRecoverContext: Try to recover alembic context");
            }

            m_abc = AbcAPI.aiCreateContext(gameObject.GetInstanceID());

            if (AbcIsValid())
            {
                m_startTime = AbcAPI.aiGetStartTime(m_abc);
                m_endTime = AbcAPI.aiGetEndTime(m_abc);
                m_timeOffset = -m_startTime;
                m_timeScale = 1.0f;
                m_preserveStartTime = true;
                m_forceRefresh = true;
                m_trans = GetComponent<Transform>();
                m_elements.Clear();

                AbcSyncConfig();

                AbcAPI.UpdateAbcTree(m_abc, m_trans, AbcTime(m_time), false);

                if (m_verbose)
                {
                    Debug.Log("AlembicStream.AbcRecoverContext: Succeeded (" + m_elements.Count + " element(s))");
                }

                return true;
            }
            else
            {
                return false;
            }
        }
        else
        {
            return true;
        }
    }
Пример #8
0
 void OnDestroy()
 {
     AbcAPI.aiDestroyContext(m_abc);
     m_abc = default(AbcAPI.aiContext);
 }