mirror of
https://github.com/microsoft/Microsoft-3D-Movie-Maker.git
synced 2024-11-14 15:35:06 +00:00
72 lines
1.7 KiB
C++
72 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
|