コード例 #1
0
        void CreateCapturers_Flat()
        {
            var top = AbcAPI.aeGetTopObject(m_ctx);

            // Camera
            if (m_captureCamera)
            {
                foreach (var target in GetTargets <Camera>())
                {
                    if (ShouldBeIgnored(target))
                    {
                        continue;
                    }
                    var trans = CreateComponentCapturer(target.GetComponent <Transform>(), top);
                    trans.inherits      = false;
                    trans.invertForward = true;
                    CreateComponentCapturer(target, trans.abc);
                }
            }

            // MeshRenderer
            if (m_captureMeshRenderer)
            {
                foreach (var target in GetTargets <MeshRenderer>())
                {
                    if (ShouldBeIgnored(target))
                    {
                        continue;
                    }
                    var trans = CreateComponentCapturer(target.GetComponent <Transform>(), top);
                    trans.inherits = false;
                    CreateComponentCapturer(target, trans.abc);
                }
            }

            // SkinnedMeshRenderer
            if (m_captureSkinnedMeshRenderer)
            {
                foreach (var target in GetTargets <SkinnedMeshRenderer>())
                {
                    if (ShouldBeIgnored(target))
                    {
                        continue;
                    }
                    var trans = CreateComponentCapturer(target.GetComponent <Transform>(), top);
                    trans.inherits = false;
                    CreateComponentCapturer(target, trans.abc);
                }
            }

            // ParticleSystem
            if (m_captureParticleSystem)
            {
                foreach (var target in GetTargets <ParticleSystem>())
                {
                    if (ShouldBeIgnored(target))
                    {
                        continue;
                    }
                    var trans = CreateComponentCapturer(target.GetComponent <Transform>(), top);
                    trans.inherits = false;
                    CreateComponentCapturer(target, trans.abc);
                }
            }

            // handle custom capturers (AlembicCustomComponentCapturer)
            if (m_customCapturer)
            {
                foreach (var target in GetTargets <AlembicCustomComponentCapturer>())
                {
                    if (ShouldBeIgnored(target))
                    {
                        continue;
                    }
                    var trans = CreateComponentCapturer(target.GetComponent <Transform>(), top);
                    trans.inherits = false;
                    CreateComponentCapturer(target, trans.abc);
                }
            }
        }
コード例 #2
0
        void CreateCapturers_Tree()
        {
            m_capture_node = new Dictionary <Transform, CaptureNode>();
            m_top_nodes    = new List <CaptureNode>();

            // construct tree
            // (bottom-up)
            if (m_captureCamera)
            {
                foreach (var t in GetTargets <Camera>())
                {
                    if (ShouldBeIgnored(t))
                    {
                        continue;
                    }
                    var node = ConstructTree(t.GetComponent <Transform>());
                    node.componentType = t.GetType();
                }
            }
            if (m_captureMeshRenderer)
            {
                foreach (var t in GetTargets <MeshRenderer>())
                {
                    if (ShouldBeIgnored(t))
                    {
                        continue;
                    }
                    var node = ConstructTree(t.GetComponent <Transform>());
                    node.componentType = t.GetType();
                }
            }
            if (m_captureSkinnedMeshRenderer)
            {
                foreach (var t in GetTargets <SkinnedMeshRenderer>())
                {
                    if (ShouldBeIgnored(t))
                    {
                        continue;
                    }
                    var node = ConstructTree(t.GetComponent <Transform>());
                    node.componentType = t.GetType();
                }
            }
            if (m_captureParticleSystem)
            {
                foreach (var t in GetTargets <ParticleSystem>())
                {
                    if (ShouldBeIgnored(t))
                    {
                        continue;
                    }
                    var node = ConstructTree(t.GetComponent <Transform>());
                    node.componentType = t.GetType();
                }
            }
            if (m_customCapturer)
            {
                foreach (var t in GetTargets <AlembicCustomComponentCapturer>())
                {
                    if (ShouldBeIgnored(t))
                    {
                        continue;
                    }
                    var node = ConstructTree(t.GetComponent <Transform>());
                    node.componentType = typeof(AlembicCustomComponentCapturer);
                }
            }

            // make component capturers (top-down)
            var abctop = AbcAPI.aeGetTopObject(m_ctx);

            foreach (var c in m_top_nodes)
            {
                SetupComponentCapturer(c, abctop);
            }


            m_top_nodes    = null;
            m_capture_node = null;
        }