![]() |
Polygon Crucher SDK - Documentation
Documentation
|
The file contains enum and type declarations used by the SDK. More...
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) | |
#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. | |
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 |
#define SCENE_EXPORT_USER_OPTIONS |
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) |
Specifies what kind of data to include when computing a checksum (ie. C3DGeomObject::GetChecksum)
Different way of sorting object faces (ie. C3DGeomObject::SortFaces for example)
Different way for computing normals (ie. C3DScene::SetSmoothMode or C3DGeomObject::GenerateNormals
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. |
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
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. |
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
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
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. |