You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
2.1 KiB
40 lines
2.1 KiB
//========= Copyright (c) 1996-2005, Valve Corporation, All rights reserved. ============//
|
|
//
|
|
// Purpose:
|
|
//
|
|
//=============================================================================//
|
|
|
|
#ifndef PORTAL_PLACEMENT_H
|
|
#define PORTAL_PLACEMENT_H
|
|
#ifdef _WIN32
|
|
#pragma once
|
|
#endif
|
|
|
|
struct CPortalCornerFitData;
|
|
#include "portal_shareddefs.h"
|
|
#include "CegClientWrapper.h"
|
|
|
|
#if defined( CLIENT_DLL )
|
|
class C_Prop_Portal;
|
|
typedef C_Prop_Portal CProp_Portal;
|
|
#else
|
|
class CProp_Portal;
|
|
#endif
|
|
|
|
bool FitPortalOnSurface( const CProp_Portal *pIgnorePortal, Vector &vOrigin, const Vector &vForward, const Vector &vRight,
|
|
const Vector &vTopEdge, const Vector &vBottomEdge, const Vector &vRightEdge, const Vector &vLeftEdge,
|
|
PortalPlacedBy_t ePlacedBy, ITraceFilter *pTraceFilterPortalShot,
|
|
float fHalfWidth, float fHalfHeight,
|
|
int iRecursions = 0, const CPortalCornerFitData *pPortalCornerFitData = 0, const int *p_piIntersectionIndex = 0, const int *piIntersectionCount = 0 );
|
|
bool IsPortalIntersectingNoPortalVolume( const Vector &vOrigin, const QAngle &qAngles, const Vector &vForward, float fHalfWidth, float fHalfHeight );
|
|
PortalPlacementResult_t IsPortalOverlappingOtherPortals( const CProp_Portal *pIgnorePortal, const Vector &vOrigin, const QAngle &qAngles, float fHalfWidth, float fHalfHeight, bool bFizzleAll = false, bool bFizzlePartnerPortals = false );
|
|
PortalPlacementResult_t VerifyPortalPlacement( const CProp_Portal *pIgnorePortal, Vector &vOrigin, QAngle &qAngles, float fHalfWidth, float fHalfHeight, PortalPlacedBy_t ePlacedBy );
|
|
PortalPlacementResult_t VerifyPortalPlacementAndFizzleBlockingPortals( const CProp_Portal *pIgnorePortal, Vector &vOrigin, QAngle &qAngles, float fHalfWidth, float fHalfHeight, PortalPlacedBy_t ePlacedBy );
|
|
bool PortalPlacementSucceeded( PortalPlacementResult_t eResult );
|
|
bool IsNoPortalMaterial( const trace_t &tr );
|
|
PortalSurfaceType_t PortalSurfaceType( const trace_t& tr );
|
|
bool IsOnPortalPaint( const trace_t &tr );
|
|
void InitSurfNoPortalFlag();
|
|
void InitPortalPaintPowerValue();
|
|
|
|
#endif // PORTAL_PLACEMENT_H
|