mirror of
https://github.com/electronicarts/CnC_Renegade.git
synced 2025-12-16 23:51:41 -05:00
Initial commit of Command & Conquer Renegade source code.
This commit is contained in:
120
Code/Tools/max2w3d/util.h
Normal file
120
Code/Tools/max2w3d/util.h
Normal file
@@ -0,0 +1,120 @@
|
||||
/*
|
||||
** Command & Conquer Renegade(tm)
|
||||
** Copyright 2025 Electronic Arts Inc.
|
||||
**
|
||||
** This program is free software: you can redistribute it and/or modify
|
||||
** it under the terms of the GNU General Public License as published by
|
||||
** the Free Software Foundation, either version 3 of the License, or
|
||||
** (at your option) any later version.
|
||||
**
|
||||
** This program is distributed in the hope that it will be useful,
|
||||
** but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
** GNU General Public License for more details.
|
||||
**
|
||||
** You should have received a copy of the GNU General Public License
|
||||
** along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/* $Header: /Commando/Code/Tools/max2w3d/util.h 26 3/14/02 4:21p Greg_h $ */
|
||||
/***********************************************************************************************
|
||||
*** Confidential - Westwood Studios ***
|
||||
***********************************************************************************************
|
||||
* *
|
||||
* Project Name : Commando Tools - W3D export *
|
||||
* *
|
||||
* $Archive:: /Commando/Code/Tools/max2w3d/util.h $*
|
||||
* *
|
||||
* $Author:: Greg_h $*
|
||||
* *
|
||||
* $Modtime:: 2/04/02 4:54p $*
|
||||
* *
|
||||
* $Revision:: 26 $*
|
||||
* *
|
||||
*---------------------------------------------------------------------------------------------*
|
||||
* Functions: *
|
||||
* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
|
||||
|
||||
|
||||
#ifndef UTIL_H
|
||||
#define UTIL_H
|
||||
|
||||
#ifndef ALWAYS_H
|
||||
#include "always.h"
|
||||
#endif
|
||||
|
||||
#include <Max.h>
|
||||
|
||||
#include "skin.h"
|
||||
#include "nodelist.h"
|
||||
|
||||
|
||||
/*
|
||||
** Gets rid of very small numbers in the matrix
|
||||
** (sets them to zero).
|
||||
*/
|
||||
Matrix3 Cleanup_Orthogonal_Matrix(Matrix3 & mat);
|
||||
float Compute_3x3_Determinant(const Matrix3 & tm);
|
||||
|
||||
/*
|
||||
** Naming utility functions
|
||||
*/
|
||||
void Set_W3D_Name(char * set_name,const char * src);
|
||||
void Split_Node_Name(const char * name,char * set_base,char * set_exten,int * set_exten_index);
|
||||
bool Append_Lod_Character(char *meshname, int lod_level, INodeListClass *origin_list);
|
||||
|
||||
/*
|
||||
** File path utility functions
|
||||
*/
|
||||
void Create_Full_Path(char *full_path, const char *cwd, const char *rel_path);
|
||||
void Create_Relative_Path(char *rel_path, const char *cwd, const char *full_path);
|
||||
bool Is_Full_Path(char * path);
|
||||
|
||||
/*
|
||||
** Check if this is some kind of triangle mesh inside of MAX. We will assume
|
||||
** different default export behavior depending on whether the object is a
|
||||
** triangle mesh or not.
|
||||
*/
|
||||
bool Is_Max_Tri_Mesh(INode * node);
|
||||
|
||||
|
||||
/*
|
||||
** Origin support.
|
||||
*/
|
||||
bool Is_Origin(INode *node);
|
||||
bool Is_Base_Origin(INode *node);
|
||||
INode *Find_Origin(INode *node);
|
||||
|
||||
bool Is_Damage_Root(INode *node);
|
||||
|
||||
/*
|
||||
** Lod-Level and Damage State settings for an INode
|
||||
*/
|
||||
int Get_Lod_Level(INode *node);
|
||||
int Get_Damage_State(INode *node);
|
||||
|
||||
/*
|
||||
** Utility function to find a named node in a hierarchy.
|
||||
*/
|
||||
INode *Find_Named_Node (char *nodename, INode *root);
|
||||
|
||||
|
||||
/*
|
||||
** Macros
|
||||
*/
|
||||
#define SAFE_DELETE(pobject) \
|
||||
if (pobject) { \
|
||||
delete pobject; \
|
||||
pobject = NULL; \
|
||||
} \
|
||||
|
||||
#define SAFE_DELETE_ARRAY(pobject) \
|
||||
if (pobject) { \
|
||||
delete [] pobject; \
|
||||
pobject = NULL; \
|
||||
} \
|
||||
|
||||
|
||||
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user