Descent3/legacy/editor/drawworld.h

84 lines
3.0 KiB
C
Raw Normal View History

/*
* Descent 3
* Copyright (C) 2024 Parallax Software
*
* 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/>.
--- HISTORICAL COMMENTS FOLLOW ---
* $Logfile: /DescentIII/Main/editor/drawworld.h $
* $Revision: 1.1.1.1 $
* $Date: 2003-08-26 03:57:37 $
* $Author: kevinb $
*
* Header for drawworld.cpp
*
* $Log: not supported by cvs2svn $
*
* 6 10/04/98 1:25p Matt
*
* 5 5/20/98 3:48p Matt
* Added suport for variable-depth face selection in wireframe view.
*
* 4 9/17/97 11:34a Matt
* Ripped out segment code
*
* 3 7/29/97 12:16p Matt
* Made wireframe seach work for rooms & faces
*
* 5 3/17/97 11:10a Jason
* added wireframe terrain view
*
* 4 2/28/97 4:00p Matt
* Added code to handle the list of selected segments
*
* 3 2/19/97 5:37p Matt
* Added code to set curseg from clicking in wireframe window
*
* 2 2/07/97 5:47p Matt
* Renamed vector.h to vecmat.h to fix DevStudio problem
*
* $NoKeywords: $
*/
#include "gr.h"
#include "vecmat.h"
void DrawWorld(grViewport *vp,vector *view_target,matrix *view_orient,float view_dist,int start_room,float rad);
void DrawWorldRoom(grViewport *vp,vector *view_target,matrix *view_orient,float view_dist,int start_room,int depth);
void DrawTerrainWorld(grViewport *vp,vector *view_target,matrix *view_orient,float view_dist);
//Find mode values
#define FM_CLOSEST 0 //Finds the closest face
#define FM_SPECIFIC 1 //Finds the passed face
#define FM_NEXT 2 //Find the next-farthest face from the last-found face
//Finds the closest room:face to the viewer at a given x,y screen position in the wireframe view
//Parameters: vp - the viewport we're checking. Must be the same viewport as the last wireframe view rendered
// x,y - the screen coordinates clicked on
// roomnum,facenum - pointers to variables to be filled in
// ingore_previous - if this is true, ignore the previous face & find the next farther face
//Returns: true if found a room/face
bool WireframeFindRoomFace(grViewport *vp,int x,int y,int *roomnum,int *facenum,int find_mode);
//Adds all the rooms that have a vertex inside of a given screen box to the selected list
//Parameters: vp - the viewport we're checking. Must be the same viewport as the last wireframe view rendered
// left,top,right,bot - the screen coordinates of the box
//Returns: the number of rooms found
int SelectRoomsInBox(grViewport *vp,int left,int top,int right,int bot);