#include "scenesystem/iscenesystem.h" #include "scenesystem/sceneobject.h" native enum ESceneObjectFlags is Sandbox.Rendering.SceneObjectFlags; native enum ESceneObjectTypeFlags is NativeEngine.ESceneObjectTypeFlags; [Handle:Sandbox.SceneObject] native class CSceneObject as NativeEngine.CSceneObject { void ChangeFlags(ESceneObjectFlags nNewFlags, ESceneObjectFlags nNewFlagsMask); void SetFlags(ESceneObjectFlags nFlagsToOR); bool HasFlags(ESceneObjectFlags nFlags); ESceneObjectFlags GetFlags(); ESceneObjectFlags GetOriginalFlags(); void ClearFlags(ESceneObjectFlags nFlagsToClear); void SetCullDistance( float dist ); void EnableLightingCache(); void SetLightingOrigin( Vector3 vPos, bool worldspace ); Vector3 GetLightingOrigin(); bool HasLightingOrigin(); void SetTintRGBA( Vector4 color ); Vector4 GetTintRGBA(); void SetAlphaFade( float nAlpha ); float GetAlphaFade(); void SetMaterialOverrideForMeshInstances( IMaterial mat ); void ClearMaterialOverrideList(); void SetMaterialOverride( IMaterial hMaterial, StringToken nAttr, int nAttrValueMatch ); bool IsLoaded(); bool IsRenderingEnabled(); void SetLoaded(); void ClearLoaded(); void DisableRendering(); void EnableRendering(); void SetRenderingEnabled( bool bEnabled ); float GetBoundingSphereRadius(); void SetTransform( Transform tx ); Transform GetCTransform(); void SetBounds( BBox box ); BBox GetBounds(); void SetBoundsInfinite(); CSceneObject GetParent(); void AddChildObject( StringToken nId, CSceneObject pChild, uint nChildUpdateFlags ); void RemoveChild( CSceneObject obj ); CRenderAttributes GetAttributesPtrForModify(); void EnableMeshGroups( ulong nMask ); void DisableMeshGroups( ulong nMask ); void ResetMeshGroups( ulong nMask ); ulong GetCurrentMeshGroupMask(); ISceneWorld GetWorld(); void SetLOD( int nLOD ); void DisableLOD(); ulong GetCurrentLODGroupMask(); int GetCurrentLODLevel(); IModel GetModelHandle(); void SetMaterialGroup( StringToken token ); void SetBodyGroup( StringToken token, int value ); void SetBatchable( bool bIsBatchable ); bool IsNotBatchable(); void SetUniqueBatchGroup( bool bUnique ); void RemoveTag( uint tag ); void RemoveAllTags(); int GetTagCount(); uint GetTagAt( int i); void AddTag( uint tag ); bool HasTag( uint tag ); // draw on this layer regardless of flags void SetForceLayerID( StringToken nTok ); // draw only on this layer void SetLayerMatchID( StringToken nTok ); inline void UpdateFlagsBasedOnMaterial() { g_pMeshSystem->UpdateTranslucencyFlagsOnMaterialChange( self ); self->UpdateFlagsBasedOnMaterial(); } void SetMaterialOverrideByIndex( int index, IMaterial material ); }