示例#1
0
        public override void AbcSetup(aiObject abcObj, aiSchema abcSchema)
        {
            base.AbcSetup(abcObj, abcSchema);
            m_abcSchema = (aiPolyMesh)abcSchema;

            m_abcSchema.GetSummary(ref m_summary);
        }
示例#2
0
        public override void AbcSetup(aiObject abcObj, aiSchema abcSchema)
        {
            base.AbcSetup(abcObj, abcSchema);
            m_abcSchema = (aiCamera)abcSchema;

            m_camera = GetOrAddComponent <Camera>();
        }
        public override void AbcSetup(aiObject abcObj, aiSchema abcSchema)
        {
            base.AbcSetup(abcObj, abcSchema);
            m_abcSchema = (aiCamera)abcSchema;

            m_camera = GetOrAddComponent <Camera>();

            // flip forward direction (camera in Alembic has inverted forward direction)
            abcTreeNode.gameObject.transform.localEulerAngles = new Vector3(0, 180, 0);
        }
示例#4
0
        public override void AbcSetup(aiObject abcObj, aiSchema abcSchema)
        {
            base.AbcSetup(abcObj, abcSchema);
            m_abcSchema = abcSchema;

            Light light = GetOrAddComponent <Light>();

            // Disable component for now
            light.enabled = false;
        }
示例#5
0
        void ImportCallback(aiObject obj)
        {
            var             ic            = m_importContext;
            AlembicTreeNode treeNode      = ic.alembicTreeNode;
            AlembicTreeNode childTreeNode = null;

            aiSchema schema = obj.AsXform();

            if (!schema)
            {
                schema = obj.AsPolyMesh();
            }
            if (!schema)
            {
                schema = obj.AsCamera();
            }
            if (!schema)
            {
                schema = obj.AsPoints();
            }

            if (schema)
            {
                // Get child. create if needed and allowed.
                string childName = obj.name;

                // Find targetted child GameObj
                GameObject childGO = null;

                var childTransf = treeNode.gameObject == null ? null : treeNode.gameObject.transform.Find(childName);
                if (childTransf == null)
                {
                    if (!ic.createMissingNodes)
                    {
                        obj.enabled = false;
                        return;
                    }
                    else
                    {
                        obj.enabled = true;
                    }

                    childGO = new GameObject {
                        name = childName
                    };
                    childGO.GetComponent <Transform>().SetParent(treeNode.gameObject.transform, false);
                }
                else
                {
                    childGO = childTransf.gameObject;
                }

                childTreeNode = new AlembicTreeNode()
                {
                    stream = this, gameObject = childGO
                };
                treeNode.children.Add(childTreeNode);

                // Update
                AlembicElement elem = null;

                if (obj.AsXform() && m_streamDesc.settings.importXform)
                {
                    elem = childTreeNode.GetOrAddAlembicObj <AlembicXform>();
                }
                else if (obj.AsCamera() && m_streamDesc.settings.importCameras)
                {
                    elem = childTreeNode.GetOrAddAlembicObj <AlembicCamera>();
                }
                else if (obj.AsPolyMesh() && m_streamDesc.settings.importMeshes)
                {
                    elem = childTreeNode.GetOrAddAlembicObj <AlembicMesh>();
                }
                else if (obj.AsPoints() && m_streamDesc.settings.importPoints)
                {
                    elem = childTreeNode.GetOrAddAlembicObj <AlembicPoints>();
                }

                if (elem != null)
                {
                    elem.AbcSetup(obj, schema);
                    elem.AbcPrepareSample();
                    schema.UpdateSample(ref ic.ss);
                    elem.AbcSyncDataBegin();
                    elem.AbcSyncDataEnd();
                }
            }
            else
            {
                obj.enabled = false;
            }

            ic.alembicTreeNode = childTreeNode;
            obj.EachChild(ImportCallback);
            ic.alembicTreeNode = treeNode;
        }
示例#6
0
 [DllImport("abci")] public static extern void       aiPointsSetSort(aiSchema schema, Bool v);
示例#7
0
        static void ImportEnumerator(aiObject obj, IntPtr userData)
        {
            var             ic       = GCHandle.FromIntPtr(userData).Target as ImportContext;
            AlembicTreeNode treeNode = ic.alembicTreeNode;

            // Get child. create if needed and allowed.
            string childName = aiGetName(obj);

            // Find targetted child GameObj
            AlembicTreeNode childTreeNode = null;
            GameObject      childGO       = null;
            var             childTransf   = treeNode.linkedGameObj.transform.Find(childName);

            if (childTransf == null)
            {
                if (!ic.createMissingNodes)
                {
                    ic.objectsToDelete.Add(obj);
                    return;
                }

                childGO = new GameObject {
                    name = childName
                };
                var trans = childGO.GetComponent <Transform>();
                trans.parent           = treeNode.linkedGameObj.transform;
                trans.localPosition    = Vector3.zero;
                trans.localEulerAngles = Vector3.zero;
                trans.localScale       = Vector3.one;
            }
            else
            {
                childGO = childTransf.gameObject;
            }

            if (childTreeNode == null)
            {
                childTreeNode = new AlembicTreeNode()
                {
                    linkedGameObj = childGO, stream = treeNode.stream
                };
                treeNode.children.Add(childTreeNode);
            }

            // Update
            AlembicElement elem   = null;
            aiSchema       schema = default(aiSchema);

            if (aiGetXForm(obj))
            {
                elem   = childTreeNode.GetOrAddAlembicObj <AlembicXForm>();
                schema = aiGetXForm(obj);
            }
            else if (aiGetPolyMesh(obj))
            {
                elem   = childTreeNode.GetOrAddAlembicObj <AlembicMesh>();
                schema = aiGetPolyMesh(obj);
            }
            else if (aiGetCamera(obj))
            {
                elem   = childTreeNode.GetOrAddAlembicObj <AlembicCamera>();
                schema = aiGetCamera(obj);
            }
            else if (aiGetPoints(obj))
            {
                elem   = childTreeNode.GetOrAddAlembicObj <AlembicPoints>();
                schema = aiGetPoints(obj);
            }

            if (elem != null)
            {
                elem.AbcSetup(obj, schema);
                elem.AbcUpdateConfig();
                aiSchemaUpdateSample(schema, ref ic.ss);
                elem.AbcUpdate();
            }

            ic.alembicTreeNode = childTreeNode;
            aiEnumerateChild(obj, ImportEnumerator, userData);
            ic.alembicTreeNode = treeNode;
        }
 public virtual void AbcSetup(aiObject abcObj, aiSchema abcSchema)
 {
     m_abcObj = abcObj;
 }
示例#9
0
 [DllImport("abci")] public static extern aiProperty      aiSchemaGetPropertyByIndex(aiSchema schema, int i);
示例#10
0
 [DllImport("abci")] public static extern aiProperty      aiSchemaGetPropertyByName(aiSchema schema, string name);
示例#11
0
 [DllImport("abci")] public static extern void       aiPointsGetSummary(aiSchema schema, ref aiPointsSummary summary);
示例#12
0
 [DllImport("abci")] public static extern int             aiSchemaGetNumProperties(aiSchema schema);
示例#13
0
 [DllImport("AlembicImporter")] public static extern void       aiSchemaSetSampleCallback(aiSchema schema, aiSampleCallback cb, IntPtr arg);
示例#14
0
        void ImportCallback(aiObject obj)
        {
            var             ic            = m_importContext;
            AlembicTreeNode treeNode      = ic.alembicTreeNode;
            AlembicTreeNode childTreeNode = null;

            aiSchema schema = obj.AsXform();

            if (!schema)
            {
                schema = obj.AsPolyMesh();
            }
            if (!schema)
            {
                schema = obj.AsCamera();
            }
            if (!schema)
            {
                schema = obj.AsPoints();
            }

            if (schema)
            {
                // Get child. create if needed and allowed.
                string childName = obj.name;

                // Find targetted child GameObj
                GameObject childGO = null;

                var childTransf = treeNode.linkedGameObj == null ? null : treeNode.linkedGameObj.transform.Find(childName);
                if (childTransf == null)
                {
                    if (!ic.createMissingNodes)
                    {
                        obj.enabled = false;
                        return;
                    }

                    childGO = new GameObject {
                        name = childName
                    };
                    var trans = childGO.GetComponent <Transform>();
                    trans.parent           = treeNode.linkedGameObj.transform;
                    trans.localPosition    = Vector3.zero;
                    trans.localEulerAngles = Vector3.zero;
                    trans.localScale       = Vector3.one;
                }
                else
                {
                    childGO = childTransf.gameObject;
                }

                childTreeNode = new AlembicTreeNode()
                {
                    linkedGameObj = childGO, streamDescriptor = treeNode.streamDescriptor
                };
                treeNode.children.Add(childTreeNode);

                // Update
                AlembicElement elem = null;

                if (obj.AsXform())
                {
                    elem = childTreeNode.GetOrAddAlembicObj <AlembicXform>();
                }
                else if (obj.AsPolyMesh())
                {
                    elem = childTreeNode.GetOrAddAlembicObj <AlembicMesh>();
                }
                else if (obj.AsCamera())
                {
                    elem = childTreeNode.GetOrAddAlembicObj <AlembicCamera>();
                }
                else if (obj.AsPoints())
                {
                    elem = childTreeNode.GetOrAddAlembicObj <AlembicPoints>();
                }

                if (elem != null)
                {
                    elem.AbcSetup(obj, schema);
                    elem.AbcPrepareSample();
                    schema.UpdateSample(ref ic.ss);
                    elem.AbcSyncDataBegin();
                    elem.AbcSyncDataEnd();
                }
            }
            else
            {
                obj.enabled = false;
            }

            ic.alembicTreeNode = childTreeNode;
            obj.EachChild(ImportCallback);
            ic.alembicTreeNode = treeNode;
        }
示例#15
0
 [DllImport("abci")] public static extern void       aiPolyMeshGetSummary(aiSchema schema, ref aiMeshSummary summary);
示例#16
0
 [DllImport("abci")] public static extern aiSample   aiSchemaGetSample(aiSchema schema, ref aiSampleSelector ss);
示例#17
0
 [DllImport("abci")] public static extern void       aiSchemaSetConfigCallback(aiSchema schema, aiConfigCallback cb, IntPtr arg);
示例#18
0
 [DllImport("AlembicImporter")] public static extern int             aiSchemaGetNumProperties(aiSchema schema);
示例#19
0
 [DllImport("AlembicImporter")] public static extern aiSample   aiSchemaUpdateSample(aiSchema schema, ref aiSampleSelector ss);
示例#20
0
        public override void AbcSetup(aiObject abcObj, aiSchema abcSchema)
        {
            base.AbcSetup(abcObj, abcSchema);

            m_abcSchema = (aiXform)abcSchema;
        }
示例#21
0
 [DllImport("abci")] public static extern void       aiPointsSetSortBasePosition(aiSchema schema, Vector3 v);