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); } } }
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; }