summaryrefslogtreecommitdiff
path: root/mdllib/mdllib_common.h
blob: 24fcd6eff58201c691a2242a0d8abe8ed484d45b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose: 
//
//=============================================================================

#ifndef MDLLIB_COMMON_H
#define MDLLIB_COMMON_H

#ifdef _WIN32
#pragma once
#endif

#include "mdllib/mdllib.h"

#include "platform.h"
#pragma warning( disable : 4018 )
#pragma warning( disable : 4389 )



//-----------------------------------------------------------------------------
// Purpose: Interface to accessing P4 commands
//-----------------------------------------------------------------------------
class CMdlLib : public CBaseAppSystem< IMdlLib >
{
public:
	// Destructor
	virtual ~CMdlLib();

	//////////////////////////////////////////////////////////////////////////
	//
	// Methods of IAppSystem
	//
	//////////////////////////////////////////////////////////////////////////
public:
	virtual bool Connect( CreateInterfaceFn factory );
	virtual InitReturnVal_t Init();
	virtual void *QueryInterface( const char *pInterfaceName );
	virtual void Shutdown();
	virtual void Disconnect();


	//////////////////////////////////////////////////////////////////////////
	//
	// Methods of IMdlLib
	//
	//////////////////////////////////////////////////////////////////////////
public:
	//
	// StripModelBuffers
	//	The main function that strips the model buffers
	//		mdlBuffer			- mdl buffer, updated, no size change
	//		vvdBuffer			- vvd buffer, updated, size reduced
	//		vtxBuffer			- vtx buffer, updated, size reduced
	//		ppStripInfo			- if nonzero on return will be filled with the stripping info
	//
	virtual bool StripModelBuffers( CUtlBuffer &mdlBuffer, CUtlBuffer &vvdBuffer, CUtlBuffer &vtxBuffer, IMdlStripInfo **ppStripInfo );

	//
	// CreateNewStripInfo
	//	Creates an empty strip info so that it can be reused.
	//
	virtual bool CreateNewStripInfo( IMdlStripInfo **ppStripInfo );
};

#endif // #ifndef MDLLIB_COMMON_H