//========= Copyright 1996-2005, Valve Corporation, All rights reserved. ============// // // Purpose: // // $NoKeywords: $ //=============================================================================// #ifndef IVMODELINFO_H #define IVMODELINFO_H #ifdef _WIN32 #pragma once #endif //----------------------------------------------------------------------------- // Forward declarations //----------------------------------------------------------------------------- class IMaterial; class KeyValues; struct vcollide_t; struct model_t; class Vector; class QAngle; class CGameTrace; typedef CGameTrace trace_t; struct studiohdr_t; struct virtualmodel_t; typedef unsigned char byte; struct virtualterrainparams_t; class CPhysCollide; //----------------------------------------------------------------------------- // Model info interface //----------------------------------------------------------------------------- // change this when the new version is incompatable with the old #define VMODELINFO_CLIENT_INTERFACE_VERSION "VModelInfoClient003" #define VMODELINFO_SERVER_INTERFACE_VERSION "VModelInfoServer001" class IVModelInfo { public: virtual ~IVModelInfo( void ) { } virtual const model_t *GetModel( int modelindex ) const = 0; // Returns index of model by name virtual int GetModelIndex( const char *name ) const = 0; // Returns name of model virtual const char *GetModelName( const model_t *model ) const = 0; virtual vcollide_t *GetVCollide( const model_t *model ) const = 0; virtual vcollide_t *GetVCollide( int modelindex ) const = 0; virtual void GetModelBounds( const model_t *model, Vector& mins, Vector& maxs ) const = 0; virtual void GetModelRenderBounds( const model_t *model, Vector& mins, Vector& maxs ) const = 0; virtual int GetModelFrameCount( const model_t *model ) const = 0; virtual int GetModelType( const model_t *model ) const = 0; virtual void *GetModelExtraData( const model_t *model ) = 0; virtual bool ModelHasMaterialProxy( const model_t *model ) const = 0; virtual bool IsTranslucent( model_t const* model ) const = 0; virtual bool IsTranslucentTwoPass( const model_t *model ) const = 0; virtual void RecomputeTranslucency( const model_t *model ) = 0; virtual int GetModelMaterialCount( const model_t* model ) const = 0; virtual void GetModelMaterials( const model_t *model, int count, IMaterial** ppMaterial ) = 0; virtual bool IsModelVertexLit( const model_t *model ) const = 0; virtual const char *GetModelKeyValueText( const model_t *model ) = 0; virtual float GetModelRadius( const model_t *model ) = 0; virtual const studiohdr_t *FindModel( const studiohdr_t *pStudioHdr, void **cache, const char *modelname ) const = 0; virtual const studiohdr_t *FindModel( void *cache ) const = 0; virtual virtualmodel_t *GetVirtualModel( const studiohdr_t *pStudioHdr ) const = 0; virtual byte *GetAnimBlock( const studiohdr_t *pStudioHdr, int iBlock ) const = 0; // Available on client only!!! virtual void GetModelMaterialColorAndLighting( const model_t *model, Vector const& origin, QAngle const& angles, trace_t* pTrace, Vector& lighting, Vector& matColor ) = 0; virtual void GetIlluminationPoint( const model_t *model, Vector const& origin, QAngle const& angles, Vector* pLightingCenter ) = 0; virtual int GetModelContents( int modelIndex ) const = 0; virtual studiohdr_t *GetStudiomodel( const model_t *mod ) = 0; virtual int GetModelSpriteWidth( const model_t *model ) const = 0; virtual int GetModelSpriteHeight( const model_t *model ) const = 0; // Sets/gets a map-specified fade range (client only) virtual void SetLevelScreenFadeRange( float flMinSize, float flMaxSize ) = 0; virtual void GetLevelScreenFadeRange( float *pMinArea, float *pMaxArea ) const = 0; // Sets/gets a map-specified per-view fade range (client only) virtual void SetViewScreenFadeRange( float flMinSize, float flMaxSize ) = 0; // Computes fade alpha based on distance fade + screen fade (client only) virtual unsigned char ComputeLevelScreenFade( const Vector &vecAbsOrigin, float flRadius, float flFadeScale ) const = 0; virtual unsigned char ComputeViewScreenFade( const Vector &vecAbsOrigin, float flRadius, float flFadeScale ) const = 0; // both client and server virtual int GetAutoplayList( const studiohdr_t *pStudioHdr, unsigned short **pAutoplayList ) const = 0; // Gets a virtual terrain collision model (creates if necessary) // NOTE: This may return NULL if the terrain model cannot be virtualized virtual CPhysCollide *GetCollideForVirtualTerrain( const virtualterrainparams_t ¶ms ) = 0; virtual bool IsUsingFBTexture( const model_t *model ) const = 0; virtual const model_t *FindOrLoadModel( const char *name ) const = 0; }; class IVModelInfoClient : public IVModelInfo { public: }; struct virtualterrainparams_t { // UNDONE: Add grouping here, specified in BSP file? (test grouping to see if this is necessary) int index; }; #endif // IVMODELINFO_H
# | Change | User | Description | Committed | |
---|---|---|---|---|---|
#1 | 5821 | Knut Wikstrom |
Added Valve Source code. This is NOT to be commited to other than new code from Valve. |