====== IG.GFX Unity-3D (IGX.Unity) SDK ====== Welcome to IGX.Unity by intelligentgraphics, which is both a back-end to IG.GFX/IG.Creator, along with IGX.X3DOM, and a stand-alone package. ===== Getting Started with IGX.Unity, IGX Classes ===== === Create an IGX Object === - Import the Asset IGX.Unity.dll (see below) - Create an empty //GameObject// with name //world// - Assign Script //IGX.Demo.SampleScene// (menu entry //IGX.Unity/IG.GFX/SampleScene//) - For object //world//, component //SampleScene//, turn on a sample by setting up //Object 1//, e.g. Noltemb_Hrz6k_76763. - Run and see a loading object. Now try to open the doors/drawers. Note. It is likely that you need to add also the [[https://www.dropbox.com/s/6uq91inooddrii1/JsonFx.Json.dll?dl=0|JsonFx.Json DLL]]. === Add Camera Control === - Create a //Camera// - Assign Script //EBCameraOrbiter// - Set camera's property //Target// to the Transform //world// (see above) === IGX.Unity.DLL === The DLL is archived in this [[https://www.dropbox.com/sh/u78gczakt2tkfz2/AAAWPhhk_issZK2Iq_zubemJa/IGX.Unity?dl=0|Repository]]. Currently, IGX.Unity is under heavy development. So please go with the [[https://www.dropbox.com/sh/u78gczakt2tkfz2/AAARbTSIn2ykoSeTnO_872Yma/IGX.Unity/dev/IGX.Unity.dll?dl=0|Dev]] release, rather than any official (Beta) release, which may be outdated. Have also a look into the [[https://www.dropbox.com/sh/u78gczakt2tkfz2/AAC0GPQZWIT7YvVZOL93u1F-a/IGX.Unity/IGX.Unity_History.txt?dl=0|History]]. === IGXC Scene Repository === This [[http://46.163.67.83/Creator/Static/|Repository]] contains IGXC demo and test scenes. ===== Index of Integration Classes ===== For any new projects we recommend the use of IGXScene and IGXObject from Section [[igx:backends:unity#igx|IGX]], instead of the low-level import classes. Also, the use of IGXC is recommended, instead of EOX-GFX. In the following, only selected classes are named. For a complete and more detailed description have a look into the [[https://www.dropbox.com/sh/u78gczakt2tkfz2/AABMI2h-TLie6UBSJvyFWWq-a/IGX.Unity/dev/IGX.Unity.xml?dl=0|Documentation]]. ==== Section Core ==== This section provides the core classes. === EBDebug === EBDebug is the central interface for debugging and logging. You may turn on/off logging globally, and enable logging for a specific context, such as product life cycle. === EBLayers === EBLayers defines Unity-3D layers to be used outside the Unity IDE, and also recursive assignment functions. === EBMaterial === EBMaterial is an abstract entity that covers multiple kinds of materials. It also contains a global repository for dynamically loaded materials and textures, and provides conversion methods for native material descriptions into a Unity material. === EBRepresentation === EBRepresentation is an abstract entity that covers multiple kind of geometric representations. === EBWebResource === EBWebResource is a base class implementing load state. ==== Section Geometry ==== === EBMeshData === EBMeshData is an auxiliary class to be used by any native loaders. === EBMeshRepository === EBMeshRepository is a global repository managing native Unity-3D mesh arrays. ==== Section IGX ==== This section contains the primary support for dealing with IG.GFX. Currently this section is under development and **not** part of the IGX.Unity Standard Edition. IGX has the following namespaces: * IGX - The basis namespace * IGX.Catalog - Simple Catalog with Configuration * IGX.Core - Core types for the IG.GFX run time * IGX.Demos - Classes for demo and test purpose * IGX.Std - Standard interactors === IGX.Material === IGX.Material is a representation of the IG.GFX Material. === IGX.MetaInformation === IGX.MetaInformation is a data entity with additional information to be used in the context of IGXObjects. Such information is: * a bounding box * a list of attachment and definition points * material categories and definitions Note, the spatial properties are defined in IG.GFX space! === IGX.Object === IGX.Object extends--as a Unity Component--GameObject with data and behaviour needed in the context of IG.GFX (IGX). === IGX.ObjectType === IGX.ObjectType is an enumerator about the type of IGX.Object instances. === IGX.Scene === IGX.Scene is a singleton that controls an IG.GFX world. === IGX.Demo.SampleScene === IGX.Demo.SampleScene is an extension of IGX.Scene that offers samples. === IGX.SelectionMode === IGX.SelectionMode controls the selection behaviour of an IGX.Object. === IGX.XPoint === IGX.XPoint defines primarily an attachment point, but is also used to describe object's Minimum and Maximum. Note, the spatial properties are defined in IG.GFX space! === IGX.Core.Interactor === IGX.Core.Interactor is the abstract base class of all interactor classes. === IGX.Core.LocalInteractor === IGX.Core.LocalInteractor is the abstract base class of all local, i.e. object-related interactor classes. === IGX.Core.GlobalInteractor === IGX.Core.GlobalInteractor is the abstract base class of all global, i.e. scene-related interactor classes. ==== Section Import ==== This section provides a few import classes. === EBEOXImport === EBEOXImport is a class for loading an EOX-GFX representation of a 3D object. The class itself is just a reader that uses other classes such as EBEOXScene and EBPartMeshData. Anyway, this class is your entry point of you want to load an EOX. After successful loading two messages will be sent to the MonoBehaviour that invoked the loading: * OnLoadingDone() - is an optional message after loading has been done There are further callbacks, invoked on ancestors of the loaded object, which should **not** be used: * NoLongerBusy() - is an optional message telling the behaviour that it's not busy any longer * SelectRescan() - is a required message that should select the object and perform a rescan === EBEOXScene === EBEOXScene is an 1:1 representation of a 3D object described by a master XML (in format EOX-GFX) that links to low-level entities such as OBJs and MLIs. Note. The class name is **eoxScene**. === EBLoader === EBLoader is an asynchronous loader for IGXC files, using IGXCImport, and EOX files, using EBEOXImport. === EBObjectImport === EBObjectImport is an abstract class for object-level importers such as IGXCImport and EBEOXImport. === EBOBJImport === EBOBJImport is a loader for OBJ files. This class is used in the context of the EOX loaders. === EBOBJImport2 === EBOBJImport2 is also a loader for OBJ files. This class can be used for stand-alone loading of OBJs. === IGXCImport === IGXCImport is a class for loading an IGXC representation of a 3D object. The class itself is just a reader that uses other classes such as EBOBJImport and EBPartMeshData. === IGXCMetaImport === IGXCMetaImport imports an IG.GFX metafile that defines material categories and materials, client-side packages, etc. An IG.GFX metafile links to an IGXC or EOX-GFX scene file, or describes only material definitions and assignments. ==== Section Utilities ==== This section provides a few utilities. === EBCameraOrbiter === EBCameraOrbiter is a class for the two-dimensional control of a perspective camera. === EBUnusuableAreas === EBUnusuableAreas is an auxiliary class that represents UI regions that should not react to interaction as they display buttons, etc. === EBUtilities === EBUtilities provides support functions: * GetBoundsOfVertices() - computes the minimal bounding volume from a set of vertices * CreateWireframeCube() - creates a unit cube but as a wireframe ===== Technical Information ===== The current Unity-3D reference versions are: 4.6.5 and 5.1.1 IGX.Unity implements only **subsets** of EOX-GFX, OBJ and MTL. Please contact us to learn about the supported and non-supported features. There's a (low-traffic) mailing list for IGX.Unity. To subscribe send an email to info@intelligentgraphics.biz, please. //Copyright (C) 2012 - 2015 intelligentgraphics GmbH. All rights reserved.//