mirror of
https://github.com/microsoft/Microsoft-3D-Movie-Maker.git
synced 2024-11-22 02:12:33 +01:00
73 lines
1.7 KiB
C++
73 lines
1.7 KiB
C++
|
/* Copyright (c) Microsoft Corporation.
|
||
|
Licensed under the MIT License. */
|
||
|
|
||
|
/*************************************************************************
|
||
|
|
||
|
modl.h: Model class
|
||
|
|
||
|
Primary Author: ******
|
||
|
Review Status: REVIEWED - any changes to this file must be reviewed!
|
||
|
|
||
|
BASE ---> BACO ---> MODL
|
||
|
|
||
|
*************************************************************************/
|
||
|
#ifndef MODL_H
|
||
|
#define MODL_H
|
||
|
|
||
|
// Model on file:
|
||
|
struct MODLF
|
||
|
{
|
||
|
short bo;
|
||
|
short osk;
|
||
|
short cver; // count of vertices
|
||
|
short cfac; // count of faces
|
||
|
BRS rRadius;
|
||
|
BRB brb; // bounds
|
||
|
BVEC3 bvec3Pivot;
|
||
|
// br_vertex rgbrv[]; // vertices
|
||
|
// br_face rgbrf[]; // faces
|
||
|
};
|
||
|
typedef MODLF *PMODLF;
|
||
|
const BOM kbomModlf = 0x55fffff0;
|
||
|
|
||
|
/****************************************
|
||
|
MODL: a wrapper for BRender models
|
||
|
****************************************/
|
||
|
typedef class MODL *PMODL;
|
||
|
#define MODL_PAR BACO
|
||
|
#define kclsMODL 'MODL'
|
||
|
class MODL : public MODL_PAR
|
||
|
{
|
||
|
RTCLASS_DEC
|
||
|
ASSERT
|
||
|
MARKMEM
|
||
|
|
||
|
protected:
|
||
|
BMDL *_pbmdl; // BRender model data
|
||
|
protected:
|
||
|
MODL(void) {}
|
||
|
bool _FInit(PBLCK pblck);
|
||
|
bool _FPrelight(long cblit, BVEC3 *prgbvec3Light);
|
||
|
|
||
|
public:
|
||
|
static PMODL PmodlNew(long cbrv, BRV *prgbrv, long cbrf, BRF *prgbrf);
|
||
|
static bool FReadModl(PCRF pcrf, CTG ctg, CNO cno, PBLCK pblck,
|
||
|
PBACO *ppbaco, long *pcb);
|
||
|
static PMODL PmodlReadFromDat(FNI *pfni);
|
||
|
static PMODL PmodlFromBmdl(PBMDL pbmdl);
|
||
|
~MODL(void);
|
||
|
PBMDL Pbmdl(void) { return _pbmdl; }
|
||
|
void AdjustTdfCharacter(void);
|
||
|
bool FWrite(PCFL pcfl, CTG ctg, CNO cno);
|
||
|
|
||
|
BRS Dxr(void)
|
||
|
{ return _pbmdl->bounds.max.v[0] - _pbmdl->bounds.min.v[0]; }
|
||
|
BRS Dyr(void)
|
||
|
{ return _pbmdl->bounds.max.v[1] - _pbmdl->bounds.min.v[1]; }
|
||
|
BRS Dzr(void)
|
||
|
{ return _pbmdl->bounds.max.v[2] - _pbmdl->bounds.min.v[2]; }
|
||
|
};
|
||
|
|
||
|
|
||
|
#endif TMPL_H
|