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

The file contains enum and type declarations used by the SDK. More...

Detailed Description

The file contains enum and type declarations used by the SDK.

#include "ProcessProgressInfo.h"
#include "InstanciatedObject.h"
#include "GuidMgr.h"

Go to the source code of this file.

Macros

#define MOOTOOLS_NO_MR
 
#define real   float
 
#define GLOBAL_SMOOTH_ANGLE   (-1.0f)
 Use to define that the value should be the one store in the preferences, or the default one.
 
#define DEFAULT_SMOOTH_ANGLE   (31.0f)
 
#define DEFAULT_NORMAL_THRESHOLD_VALUE   10.0f
 
#define FILE_3DVIEW   "3DView.h"
 
#define SCENE_EXPORT_USER_OPTIONS
 
#define SCENE_IMPORT_USER_OPTIONS   (SCENE_IMPORT_WELD_POINTS|SCENE_IMPORT_TRIANGULATE|SCENE_IMPORT_CLEAN_GROUPS|SCENE_IMPORT_IGNORE_HIDDEN_NODES|SCENE_IMPORT_MERGE_COPLANAR_FACES)
 
#define VECT_XX(type)   (C3DTVector<type>(1.0, 0.0, 0.0))
 
#define VECT_YY(type)   (C3DTVector<type>(0.0, 1.0, 0.0))
 
#define VECT_ZZ(type)   (C3DTVector<type>(0.0, 0.0, 1.0))
 
#define SWAP_VALUES(a, b, tmp)
 
#define MATERIAL_UNDEFINED   (CGuidMgr::UNDEFINED_GUID32)
 
#define DEFAULT_MATERIAL_ID   (CGuidMgr::DEFAULT_GUID32)
 
#define NODEID_UNDEFINED   (CGuidMgr::UNDEFINED_GUID)
 
#define OBJECTID_UNDEFINED   (CGuidMgr::UNDEFINED_GUID)
 
#define CHANNELID_UNDEFINED   ((unsigned int)-1)
 
#define INVALID_POINT_INDEX   ((unsigned int)-1)
 
#define INVALID_FACE_INDEX   ((unsigned int)-1)
 
#define sqrt(value)   sqrt((double)value)
 
#define cos(value)   cos((double)value)
 
#define acos(value)   acos((double)value)
 
#define sin(value)   sin((double)value)
 
#define asin(value)   asin((double)value)
 
#define tan(value)   tan((double)value)
 
#define atan(value)   atan((double)value)
 
#define atan2(value1, value2)   atan2((double)value1, (double)value2)
 
#define exp(value)   exp((double)value)
 
#define fmod(value1, value2)   fmod((double)value1, (double)value2)
 
SCENE_OPTIONS

Macros to control parser name limit (ie. 3ds limit name to 15 characters)
CSceneExportOptions::materialNameLimit / CSceneExportOptions::nameLimit / CSceneExportOptions::fileNameLimit options
namelength = 0, means no limitation in the name length
nameoptions = 0, means no particular specs for the name

#define SCENE_OPTIONS_MAKE_NAME(namelength, nameoptions)   ((((unsigned int)namelength) & 0x00FFFFFF) | ((((unsigned int)nameoptions) << 24) & 0xFF000000))
 define a length for the name limit as well as some name options (SCENE_OPTIONS)
 
#define SCENE_OPTIONS_GET_NAME_LENGTH(a)   (((unsigned int)a) & 0x00FFFFFF)
 
#define SCENE_OPTIONS_GET_NAME_OPTIONS(a)   ((((unsigned int)a) & 0xFF000000) >> 24)
 
#define SCENE_OPTIONS_REMOVE_SPACE   0x01
 Name can't have space. Use with SCENE_OPTIONS_MAKE_NAME.
 
#define SCENE_OPTIONS_NO_EMPTY_NAME   0x02
 Name can't be empty. Use with SCENE_OPTIONS_MAKE_NAME.
 
#define SCENE_OPTIONS_ALPHANUMERIC_NAME   0x04
 Name only contains [a-z A-Z 0-9 _-] chars without any spaces.
 

Typedefs

typedef GuidValue32 SceneNodeID32
 
typedef GuidValue SceneNodeID
 
typedef GuidValue BaseObjectID
 
typedef unsigned int ChannelID
 
typedef struct _SceneData SceneData
 
typedef CHashTable< MaterialID > CMaterialHash
 
typedef CHashMap< MaterialID, MaterialID, unsigned intCMaterialHashMap
 
typedef CHashMap< ChannelID, ChannelID, ChannelIDCChannelMap
 
typedef CHashTable< ChannelIDCChannelHash
 
typedef C3DTPoint< real > C3DPoint
 
typedef C3DTPoint< floatC3DPointF
 
typedef C3DTPoint< doubleC3DPointD
 
typedef C3DTPoint< intC3DPointI
 
typedef C3DTVector< real > C3DVector
 
typedef C3DTVector< floatC3DVectorF
 
typedef C3DTVector< doubleC3DVectorD
 
typedef C3DTVector< intC3DVectorI
 
typedef C4DTVector< real > C4DVector
 
typedef C4DTVector< floatC4DVectorF
 
typedef C4DTVector< doubleC4DVectorD
 
typedef C4x4TMatrix< floatC4x4Matrix
 
typedef C4x4TMatrix< floatC4x4MatrixF
 
typedef C4x4TMatrix< doubleC4x4MatrixD
 
typedef C2DTPoint< real > C2DPoint
 
typedef C2DTPoint< floatC2DPointF
 
typedef C2DTPoint< doubleC2DPointD
 
typedef C2DTPoint< intC2DPointI
 
typedef C3DTBBox< real > C3DBBox
 
typedef C3DTBBox< floatC3DBBoxF
 
typedef C3DTBBox< doubleC3DBBoxD
 
typedef C3DTBBox< intC3DBBoxI
 
typedef struct ChannelConnectionInfo ChannelConnectionInfo
 
typedef CGroupMap< int, unsigned shortCPointGroupGraph
 
typedef CAssociationMap< int, MaterialID, unsigned shortCMaterialGraph
 
typedef CAssociationMap< C3DEdge, int, unsigned shortCEdgeGraph
 
typedef CSimpleCollection< ChannelConnectionInfo, unsigned shortCChannelGraph
 
typedef CAssociationMap< int, int, unsigned intC3DPointProximityMap
 
typedef CHashMap< SceneNodeID, SceneNodeID, C3DSceneNode * > C3DSceneNodeIDMap
 
typedef CXArray< MaterialID > C3DMaterialIDArray
 
typedef CXArray< C3DMaterial * > C3DMaterialArray
 
typedef CXArray< C3DSceneNode * > C3DNodeArray
 
typedef CXArray< C3DBaseObject * > C3DObjectArray
 
typedef CXArray< C3DGeomObject * > C3DGeomObjectArray
 
typedef CXArray< C3DEdgeC3DEdgeArray
 
typedef enum SCENE_CHANGE_NOTIFICATION SCENE_CHANGE_NOTIFICATION
 
typedef enum SCENE_COPY_FLAGS SCENE_COPY_FLAGS
 
typedef enum SCENE_EXPORT_FLAGS SCENE_EXPORT_FLAGS
 
typedef enum SCENE_IMPORT_FLAGS SCENE_IMPORT_FLAGS
 
typedef enum AXIS_INFO AXIS_INFO
 
typedef enum ORIENTED_AXIS_INFO ORIENTED_AXIS_INFO
 
typedef enum SWAP_XYZ_MODE SWAP_XYZ_MODE
 
typedef enum UP_AXIS_MODE UP_AXIS_MODE
 
typedef enum FACE_SORT_MODE FACE_SORT_MODE
 
typedef enum BBOX_MODE BBOX_MODE
 
typedef enum NormalSmoothMode NormalSmoothMode
 
typedef enum ChecksumMode ChecksumMode
 Flags to combine for GetChecksum method.
 

Enumerations

enum  SCENE_CHANGE_NOTIFICATION {
  SCENE_CHANGE_NONE = 0x00 , SCENE_CHANGE_ALL = 0xFFFFFFFF , SCENE_CHANGE_SCENE = 0x01 , SCENE_CHANGE_NODE = 0x02 ,
  SCENE_CHANGE_DELETE_NODE = 0x04 , SCENE_CHANGE_GEOMETRY = 0x1000 , SCENE_CHANGE_TOPOLOGY = 0x2000 , SCENE_CHANGE_MATERIAL = 0x4000 ,
  SCENE_CHANGE_ANIMATION = 0x8000 , SCENE_CHANGE_PREFERENCES = 0x10000
}
 
enum  SCENE_COPY_FLAGS {
  SCENE_COPY_DEFAULT = 0x00 , SCENE_COPY_REMOVE_HIDDEN = 0x01 , SCENE_COPY_REMOVE_CURVE = 0x02 , SCENE_COPY_REMOVE_PATCH = 0x04 ,
  SCENE_COPY_REMOVE_OBJECT = 0x08 , SCENE_COPY_REMOVE_GROUP = 0x10 , SCENE_COPY_SELECTION_IF_ANY = 0x20 , SCENE_COPY_SET_REFERENCE_NODE = 0x100 ,
  SCENE_COPY_DIRECT_CHILDS = 0x200 , SCENE_COPY_CHILDS = 0x400 , SCENE_COPY_FLATTEN_HIERARCHY = 0x0800 , SCENE_COPY_EMPTY_HIERARCHY = 0x1000 ,
  SCENE_COPY_NO_MATERIALS_COPY = 0x10000 , SCENE_COPY_NO_DATA_COPY = 0x20000 , SCENE_COPY_NO_INHERITS = SCENE_COPY_NO_DATA_COPY|SCENE_COPY_NO_MATERIALS_COPY
}
 
enum  SCENE_EXPORT_FLAGS {
  SCENE_EXPORT_DEFAULT = 0x00 , SCENE_EXPORT_REMOVE_GROUP = 0x01 , SCENE_EXPORT_REMOVE_CURVE = 0x02 , SCENE_EXPORT_REMOVE_PATCH = 0x04 ,
  SCENE_EXPORT_REMOVE_MESH = 0x08 , SCENE_EXPORT_REMOVE_UV = 0x10 , SCENE_EXPORT_REMOVE_VC = 0x20 , SCENE_EXPORT_REMOVE_SPEC_NORMALS = 0x40 ,
  SCENE_EXPORT_REMOVE_CHANNELS = SCENE_EXPORT_REMOVE_UV|SCENE_EXPORT_REMOVE_VC|SCENE_EXPORT_REMOVE_SPEC_NORMALS , SCENE_EXPORT_SAVE_HIDDEN = 0x100 , SCENE_EXPORT_CLEAN_GROUPS = 0x200 , SCENE_EXPORT_TRIANGULATE = 0x400 ,
  SCENE_EXPORT_QUADRANGULATE = 0x800 , SCENE_EXPORT_DISCONNECT_FACES = 0x1000 , SCENE_EXPORT_CONCATENATE_SCENE = 0x2000 , SCENE_EXPORT_CONVERT_PATCH = 0x4000 ,
  SCENE_EXPORT_PATCH_KEEP_SOURCE = 0x8000 , SCENE_EXPORT_MAKE_UNIQUE_NAME = 0x10000 , SCENE_EXPORT_GENERATE_UV = 0x20000 , SCENE_EXPORT_GLOBALIZE_CHANNELS = 0x40000 ,
  SCENE_EXPORT_GLOBAL_COORDINATES = 0x80000 , SCENE_EXPORT_COPY_TEXTURES = 0x100000 , SCENE_EXPORT_COPY_TEXTURES_RENAME = 0x200000 , SCENE_EXPORT_KEEP_MATERIALS = 0x400000 ,
  SCENE_EXPORT_KEEP_BACKFACE_MATERIALS = 0x800000 , SCENE_EXPORT_CREATE_NODES_FROM_BACKFACE_MATERIALS = 0x1000000 , SCENE_EXPORT_CHILDS_BELONG_TO_GROUP = 0x2000000 , SCENE_EXPORT_PREVENT_COPY = 0x40000000 ,
  SCENE_EXPORT_TRY_UPDATE_FILE = 0x80000000 , SCENE_EXPORT_GENERATE_NORMALS = 0x100000000 , SCENE_EXPORT_KEEP_HIDDEN_FACES = 0x200000000 , SCENE_EXPORT_CONVERT_TO_STANDARD_MATERIALS = 0x400000000
}
 
enum  SCENE_IMPORT_FLAGS {
  SCENE_IMPORT_DEFAULT = 0x00 , SCENE_IMPORT_TRIANGULATE = 0x01 , SCENE_IMPORT_WELD_POINTS = 0x02 , SCENE_IMPORT_MERGE_COPLANAR_FACES = 0x04 ,
  SCENE_IMPORT_UNIFY_NORMALS = 0x08 , SCENE_IMPORT_CONCATENATE = 0x10 , SCENE_IMPORT_CONCATENATE_BY_MATERIALS = 0x20 , SCENE_IMPORT_GLOBAL_COORDINATES = 0x40 ,
  SCENE_IMPORT_CLEAN_GROUPS = 0x80 , SCENE_IMPORT_GENERATE_UV = 0x100 , SCENE_IMPORT_DISCONNECT_FACES = 0x200 , SCENE_IMPORT_IGNORE_HIDDEN_NODES = 0x400 ,
  SCENE_IMPORT_CLEAN_EMPTY_NODES = 0x800 , SCENE_IMPORT_UPDATE_MODE = 0x1000000 , SCENE_IMPORT_RAW_IMPORT = 0x2000000 , SCENE_IMPORT_KEEP_GUID = 0x4000000
}
 
enum  AXIS_INFO { XX_AXIS = 0 , YY_AXIS , ZZ_AXIS }
 
enum  ORIENTED_AXIS_INFO {
  DEFAULT_AXIS = 0 , POS_XX_AXIS , NEG_XX_AXIS , POS_YY_AXIS ,
  NEG_YY_AXIS , POS_ZZ_AXIS , NEG_ZZ_AXIS
}
 
enum  SWAP_XYZ_MODE {
  SWAP_NONE = 0 , SWAP_XY = 0x01 , SWAP_XZ = 0x02 , SWAP_YZ = 0x04 ,
  SWAP_AXIS_FLAGS = SWAP_XY|SWAP_XZ|SWAP_YZ , SWAP_INVERT_X = 0x10 , SWAP_INVERT_Y = 0x20 , SWAP_INVERT_Z = 0x40 ,
  SWAP_INVERT_FLAGS = SWAP_INVERT_X|SWAP_INVERT_Y|SWAP_INVERT_Z
}
 
enum  UP_AXIS_MODE { UP_AXIS_NONE = 0 , UP_AXIS_Z = 0 , UP_AXIS_Y = 1 , UP_AXIS_X = 2 }
 
enum  FACE_SORT_MODE {
  SORT_FACE_MODE = 0xFF , SORT_BY_MATERIAL = 1 , SORT_FOR_RENDERING = 2 , SORT_FACE_FLAGS = 0xFFFFFF00 ,
  SORT_BACKFACE_MATERIAL = 0x100 , SORT_FRONT_AND_BACK_MATERIAL = 0x200 , SORT_FORCE_BACK_FACE = 0x400
}
 
enum  BBOX_MODE {
  BBOX_NONE = 0x00 , BBOX_FACES = 0x01 , BBOX_POINTS = 0x02 , BBOX_VISIBLE_NODE_ONLY = 0x04 ,
  BBOX_SELECTED_NODE_ONLY = 0x08 , BBOX_NODE_ONLY = 0x10 , BBOX_EXTRAFLAG_SET = 0x10 , BBOX_NODE_EXTRAFLAG_SET = 0x20 ,
  BBOX_KINDOF_OBJECT = 0x40 , BBOX_EXCLUDE_KINDOF_OBJECT = 0x80 , BBOX_NODE_TRANSFORM = 0x100 , BBOX_DONT_APPLY_NODE_TRANSFORM = 0x200
}
 
enum  NormalSmoothMode {
  NORMAL_GLOBAL_MODE = 0 , NORMAL_FIRST_MODE = 1 , NORMAL_UNWEIGHTED_MODE = 1 , NORMAL_AREAWEIGHTED_MODE ,
  NORMAL_EDGEWEIGHTED_MODE , NORMAL_ANGLEWEIGHTED_MODE , NORMAL_LAST_MODE , NORMAL_DEFAULT_MODE = NORMAL_AREAWEIGHTED_MODE
}
 
enum  ChecksumMode {
  CHECKSUM_NONE = 0x00 , CHECKSUM_POINTS = 0x01 , CHECKSUM_POINTS_EXTRA = 0x02 , CHECKSUM_FACES = 0x04 ,
  CHECKSUM_FACES_EXTRA = 0x08 , CHECKSUM_CHANNELS = 0x10 , CHECKSUM_ALL = (unsigned int)(-1)
}
 

Variables

BEGIN_MOOTOOLS_NAMESPACE typedef GuidValue32 MaterialID
 
DLL_3DFUNCTION CSavedDirectories materialDirectories
 
DLL_3DFUNCTION SceneData GlobalSceneData
 

Macro Definition Documentation

◆ SCENE_EXPORT_USER_OPTIONS

#define SCENE_EXPORT_USER_OPTIONS
Value:
@ SCENE_EXPORT_SAVE_HIDDEN
Save hidden nodes.
Definition 3DType.h:252
@ SCENE_EXPORT_COPY_TEXTURES_RENAME
Rename texture file (when copied) if a conflict occurs. If not set, the existing texture file is not ...
Definition 3DType.h:265
@ SCENE_EXPORT_CREATE_NODES_FROM_BACKFACE_MATERIALS
The exporter does not handle backface, and some nodes are created from the backface content....
Definition 3DType.h:268
@ SCENE_EXPORT_TRY_UPDATE_FILE
Update the opened file when possible. The flag is removed if update of the scene is not possible,...
Definition 3DType.h:271
@ SCENE_EXPORT_GLOBAL_COORDINATES
The scene is exported with global coordinates.
Definition 3DType.h:263
@ SCENE_EXPORT_REMOVE_SPEC_NORMALS
Remove specified normal channel.
Definition 3DType.h:249
@ SCENE_EXPORT_REMOVE_UV
Remove UVs channels.
Definition 3DType.h:247
@ SCENE_EXPORT_COPY_TEXTURES
The texture are copied to a specific folder.
Definition 3DType.h:264
@ SCENE_EXPORT_DISCONNECT_FACES
Disconnect faces that share several uv or vc.
Definition 3DType.h:256
@ SCENE_EXPORT_CONVERT_PATCH
Convert patch to polygonal mesh.
Definition 3DType.h:258
@ SCENE_EXPORT_GENERATE_UV
Generate uv coordinates when a planar, cylindrical projection exists...
Definition 3DType.h:261
@ SCENE_EXPORT_QUADRANGULATE
Quadrangulate objects.
Definition 3DType.h:255
@ SCENE_EXPORT_PATCH_KEEP_SOURCE
Use patch control points (patch is converted to its refinement polygonal mesh otherwise)
Definition 3DType.h:259
@ SCENE_EXPORT_TRIANGULATE
Triangulate objects.
Definition 3DType.h:254
@ SCENE_EXPORT_REMOVE_VC
Remove VC channels.
Definition 3DType.h:248

◆ SWAP_VALUES

#define SWAP_VALUES (   a,
  b,
  tmp 
)
Value:
{ tmp = a; \
a = b; \
b = tmp; }
The class defines an x, y, z 3D point which can use int, float or double.
Definition 3DPoint.h:27

Enumeration Type Documentation

◆ AXIS_INFO

Flags to define an axis direction which can be required by different methods

◆ BBOX_MODE

Different way for computing node or object bounding box (ie. C3DSceneNode::GetBoundingBox)

Enumerator
BBOX_FACES 

compute face bouding box

BBOX_POINTS 

compute point bouding box

BBOX_VISIBLE_NODE_ONLY 

check SCENE_NODE_HIDDEN

BBOX_SELECTED_NODE_ONLY 

check SCENE_NODE_IS_SELECTED

BBOX_NODE_ONLY 

Does not perform recursion on the node childs, otherwise perform recursion on child that satisfy the flags.

BBOX_EXTRAFLAG_SET 

points / faces flags must be set

BBOX_NODE_EXTRAFLAG_SET 

the extra flag is a node flag (not a points / faces flags). This is mutually exclusive with BBOX_EXTRAFLAG_SET

BBOX_KINDOF_OBJECT 

specify kind of object taking into account in extraFlags

BBOX_EXCLUDE_KINDOF_OBJECT 

specify kind of object ignored in extraFlags

BBOX_NODE_TRANSFORM 

transform each point with node transformation matrix for an exact computation. Computation cost is more important, no cache is performed. If not used, we compute an untransformed bounding box position and transform only these position

BBOX_DONT_APPLY_NODE_TRANSFORM 

Prevent to apply any node transform (BBOX_NODE_TRANSFORM applies transform on all points, otherwise node transform is applied on bounding box points only for C3DScene / C3DSceneNode)

◆ ChecksumMode

Specifies what kind of data to include when computing a checksum (ie. C3DGeomObject::GetChecksum)

Enumerator
CHECKSUM_POINTS 

Point position is taken into account (geometry and channel if CHECKSUM_CHANNELS set)

CHECKSUM_POINTS_EXTRA 

Point flags (geometry and channel if CHECKSUM_CHANNELS set)

CHECKSUM_FACES 

faces position (geometry and channel if CHECKSUM_CHANNELS set)

CHECKSUM_FACES_EXTRA 

faces material & flags (geometry and channel if CHECKSUM_CHANNELS set)

CHECKSUM_CHANNELS 

Take care of dependent channels.

CHECKSUM_ALL 

All is used for computing checksum.

◆ FACE_SORT_MODE

Different way of sorting object faces (ie. C3DGeomObject::SortFaces for example)

Enumerator
SORT_BY_MATERIAL 

Sort by MaterialID then for each material sort by their flags.

SORT_FOR_RENDERING 

Sort by MaterialID then for each material sort by their flags.

SORT_FACE_FLAGS 

Exclusive sort mode. If nothing specified, material are sorted based on the front material.

SORT_BACKFACE_MATERIAL 

Sort by backface MaterialID. Return NULL if no backface present.

SORT_FRONT_AND_BACK_MATERIAL 

Sort by front face & back face MaterialID. If their is no backface material, the returned array only contains facenbr indexes (equivalent to a sort on front face). If front & back material exists, the returned array contains 2*facenbr indexes. Positive indexes means front face indexes. Negative indexes means back face indexes (-3 index match back material of face #2)

SORT_FORCE_BACK_FACE 

Combined with SORT_FRONT_AND_BACK_MATERIAL only. Force the returned array to contains both front & backface materialID, even if there is no back face. Mainly used for front and back rendering, when some materials have different front / back channelID.

◆ NormalSmoothMode

Different way for computing normals (ie. C3DScene::SetSmoothMode or C3DGeomObject::GenerateNormals

Enumerator
NORMAL_GLOBAL_MODE 

The object used the preferences smoothing mode.

NORMAL_UNWEIGHTED_MODE 

A vertex normal is the sum of each face normalized normals.

NORMAL_AREAWEIGHTED_MODE 

Default mode. The normal of a vertex v is the classical area weigthed average of the normals of the faces incident on v.

NORMAL_EDGEWEIGHTED_MODE 

The normal of a vertex v is computed according to the formula described by Nelson Max in Max, N., "Weights for Computing Vertex Normals from Facet Normals", Journal of Graphics Tools, 4(2) (1999)
The weight for each edge is the cross product of the two edge over the product of the square of the two edge lengths.
According to the original paper it is perfect only for spherical surface, but it should perform well...
A vertex normal is the sum of each face unnormalized normals weighted by the incident edge length

NORMAL_ANGLEWEIGHTED_MODE 

The normal of a vertex v computed as a weighted sum f the incident face normals.
The weight is simlply the angle of the involved wedge. Described in:
G. Thurmer, C. A. Wuthrich
"Computing vertex normals from polygonal facets"
Journal of Graphics Tools, 1998

◆ ORIENTED_AXIS_INFO

Flags to define an oriented axis direction which can be required by different methods

Enumerator
DEFAULT_AXIS 

Use in some method to specify that the method make the axyz choice by itself (ie baking tool)

◆ SCENE_COPY_FLAGS

Flags for controlling the way scene are copied in the C3DScene copy methods

Enumerator
SCENE_COPY_SELECTION_IF_ANY 

Copy the selection if any or the whole scene if no selection.

SCENE_COPY_EMPTY_HIERARCHY 

Does not copy anything except materials.

◆ SCENE_EXPORT_FLAGS

Flags for preparing the scene before export.
The flags is provided through CSceneExportOptions::flags to C3DIo which will call C3DScene::InitExport with the provided options

Note
the flags size is longuint
Enumerator
SCENE_EXPORT_DEFAULT 

Use default parser flags.

SCENE_EXPORT_REMOVE_GROUP 

Remove group.

SCENE_EXPORT_REMOVE_CURVE 

Remove curves.

SCENE_EXPORT_REMOVE_PATCH 

Remove patch.

SCENE_EXPORT_REMOVE_MESH 

Remove polygonal object.

SCENE_EXPORT_REMOVE_UV 

Remove UVs channels.

SCENE_EXPORT_REMOVE_VC 

Remove VC channels.

SCENE_EXPORT_REMOVE_SPEC_NORMALS 

Remove specified normal channel.

SCENE_EXPORT_SAVE_HIDDEN 

Save hidden nodes.

SCENE_EXPORT_CLEAN_GROUPS 

Remove group when no child is present.

SCENE_EXPORT_TRIANGULATE 

Triangulate objects.

SCENE_EXPORT_QUADRANGULATE 

Quadrangulate objects.

SCENE_EXPORT_DISCONNECT_FACES 

Disconnect faces that share several uv or vc.

SCENE_EXPORT_CONCATENATE_SCENE 

Concatenate scene into one object.

SCENE_EXPORT_CONVERT_PATCH 

Convert patch to polygonal mesh.

SCENE_EXPORT_PATCH_KEEP_SOURCE 

Use patch control points (patch is converted to its refinement polygonal mesh otherwise)

SCENE_EXPORT_MAKE_UNIQUE_NAME 

Generate unique name for materials and nodes.

SCENE_EXPORT_GENERATE_UV 

Generate uv coordinates when a planar, cylindrical projection exists...

SCENE_EXPORT_GLOBALIZE_CHANNELS 

Make a global channel for objects.

SCENE_EXPORT_GLOBAL_COORDINATES 

The scene is exported with global coordinates.

SCENE_EXPORT_COPY_TEXTURES 

The texture are copied to a specific folder.

SCENE_EXPORT_COPY_TEXTURES_RENAME 

Rename texture file (when copied) if a conflict occurs. If not set, the existing texture file is not overwritten and will be used for the texture.

SCENE_EXPORT_KEEP_MATERIALS 

The exporter keep materials that are not used.

SCENE_EXPORT_KEEP_BACKFACE_MATERIALS 

The exporter keep backface materials (this means it supports backface)

SCENE_EXPORT_CREATE_NODES_FROM_BACKFACE_MATERIALS 

The exporter does not handle backface, and some nodes are created from the backface content. Exclusive with SCENE_EXPORT_KEEP_BACKFACE_MATERIALS.

SCENE_EXPORT_CHILDS_BELONG_TO_GROUP 

convert the scene graph in such way that childs are connected to C3DGroup object node not to object nodes

SCENE_EXPORT_PREVENT_COPY 

Prevent the input scene to be copied. The scene is directly modified by InitExport.

SCENE_EXPORT_TRY_UPDATE_FILE 

Update the opened file when possible. The flag is removed if update of the scene is not possible, and the output 3D dialog offers or not the options.

SCENE_EXPORT_GENERATE_NORMALS 

Generate normals through SPEC_NORMAL_CHANNELS before export. If there is partially defined user normals in this channel, it is completed with normal generated automatically.

SCENE_EXPORT_KEEP_HIDDEN_FACES 

Keep hidden faces at export.

SCENE_EXPORT_CONVERT_TO_STANDARD_MATERIALS 

Convert any materials to standard ones.

◆ SCENE_IMPORT_FLAGS

Flags for preparing the scene after the import.
The flags is provided through CSceneImportOptions::flags to C3DIo which will call C3DScene::CheckoutImport with the provided options

Note
the flags size is longuint
Enumerator
SCENE_IMPORT_DEFAULT 

Use default parser flags.

SCENE_IMPORT_TRIANGULATE 

Triangulates.

SCENE_IMPORT_WELD_POINTS 

Welds confused points.

SCENE_IMPORT_MERGE_COPLANAR_FACES 

Merges strictly coplanar faces.

SCENE_IMPORT_UNIFY_NORMALS 

Merges strictly coplanar faces.

SCENE_IMPORT_CONCATENATE 

Concatenates all mesh to a single one.

SCENE_IMPORT_CONCATENATE_BY_MATERIALS 

Split scene into different single material meshes.

SCENE_IMPORT_GLOBAL_COORDINATES 

Turns to global coordinates and remove any matrix linked to objects.

SCENE_IMPORT_CLEAN_GROUPS 

Deletes any group which has no childs.

SCENE_IMPORT_GENERATE_UV 

Generate UV for planar / spherical / cubic... projection maps.

SCENE_IMPORT_DISCONNECT_FACES 

Disconnect faces that share several uv or vc.

SCENE_IMPORT_IGNORE_HIDDEN_NODES 

Do not import hidden nodes.

SCENE_IMPORT_CLEAN_EMPTY_NODES 

Deletes nodes without object attached.

SCENE_IMPORT_UPDATE_MODE 

Keeps the opened scene if possible.

SCENE_IMPORT_RAW_IMPORT 

Do not process the imported file. (index out of bound checking, material sorting and any post operation that occurs after loading the file)

SCENE_IMPORT_KEEP_GUID 

Do not call CreatePersistentGuids for scene nodes. This flag can be used if these ID have already been handled by the caller (ie, the format have such IDs)

◆ SWAP_XYZ_MODE

Swapping can include one of the SWAP_AXIS_FLAGS and one of the SWAP_INVERT_FLAGS
This is used after import or before import to modify points coordinates by swapping them using the defined flags

◆ UP_AXIS_MODE

Allows to define which axis is the up one
This is used when importing / exporting in C3DScene::OrientScene which add some transformations to correctly put the right axis up.
By default the SDK has a Z Up-Axis

Enumerator
UP_AXIS_Z 

Our default mode, nothing done.