Polygon Crucher SDK - Documentation
Documentation
Loading...
Searching...
No Matches
3DFaceList.h File Reference

C3DFaceList class definition which is a list of C3DFace. More...

Detailed Description

C3DFaceList class definition which is a list of C3DFace.

#include "BitArray.h"
#include "3DBBox.h"
#include "FaceList.h"
#include "3DPointList.h"
#include "3DFace.h"
#include "DependentChannels.h"
#include "MaterialMap.h"

Go to the source code of this file.

Classes

class  FBMaterialID
 This class handles two MaterialID that simplifies operation on faces which have front and back materials. For example Sketchup format use intensively that kind of faces, and FBMaterial is a simple way to know if a face IsSingleMaterial, or if it has different front and back materials.
More...
 
class  CFBMaterialHashMap
 This class gets an object material hash. It returns front and back material pair. @Note if we have a face #1 [Mat #1, Mat #2] and a face #2 [Mat #1, Mat #3] we will get 2 entries with (#1-#2, 1), (#1-#3, 1) More...
 
class  C3DFaceGridMap
 C3DFaceGridMap is initialized by C3DFaceList::GetFaceGridMap. More...
 
class  C3DFaceList
 C3DFaceList class which implement a list of C3DFace. Each face contains indexes to 3D points stored in C3DPointList class. Look at CFaceList base class to get more information. More...
 

Typedefs

typedef enum FaceGridFlags FaceGridFlags
 
typedef enum RayCastFlags RayCastFlags
 

Enumerations

enum  FaceGridFlags {
  FACEGRID_NONE = 0x00 , FACEGRID_CACHE_FOR = 0x0FF , FACEGRID_CACHE_FOR_RAYCAST = 0 , FACEGRID_CACHE_FOR_GETCLOSESTFACE ,
  FACEGRID_MULTITHREADED = 0x100 , FACEGRID_REMOVE_DUPLICATED_FACES = 0x200 , FACEGRID_FILL_FULL_BBOX = 0x400 , FACEGRID_IGNORE_NODE_TRANSFORM = 0x800
}
 
enum  RayCastFlags {
  RAYCAST_DEFAULT = 0x00 , RAYCAST_CHECK_BOTHDIR = 0x01 , RAYCAST_TUV_COORDINATE = 0x02 , RAYCAST_SAME_DIRECTION = 0x04 ,
  RAYCAST_OPPOSITE_DIRECTION = 0x08
}
 

Enumeration Type Documentation

◆ RayCastFlags

This enum gives a control on the faces handled by C3DFaceList::GetRayCastFace and information returned.

Enumerator
RAYCAST_CHECK_BOTHDIR 

Test ray cast in both direction.

RAYCAST_TUV_COORDINATE 

hitPoint(x, y, z) contains the (t, u, v) coordinates of the found intersection. We can compute the hitPoint in 2 way : hitPoint = eye + t * normal or hitPoint = (1-u-v) * p0 + u * p1 + v * p2 where p0, p1, p2 are the triangle point. Note that if RAYCAST_CHECK_BOTHDIR and that the normal have been flipped to intersect the face, then t will be negative to correctly compute the hitPoint

RAYCAST_SAME_DIRECTION 

The provided direction and the normal of the face must have the same direction.

RAYCAST_OPPOSITE_DIRECTION 

The provided direction and the normal of the face must have the opposite direction.