Vertex (lx-vertex.hpp)
Contents
- 1 Vertex Features
- 1.1 (1) SDK: LXsVFCAT_SURFACE, etc. defines
- 1.2 (2) SDK: LXsVECTYPE_XY, etc. defines
- 1.3 Tableau Vertex
- 1.4 Service
- 1.4.1 (8) SDK: LXa_VERTEXFEATURESERVICE, etc. defines
- 1.4.2 (9) SDK: VertexFeatureService::ScriptQuery
- 1.4.3 (10) SDK: VertexFeatureService::AllocVertex
- 1.4.4 (11) SDK: VertexFeatureService::Lookup
- 1.4.5 (12) SDK: VertexFeatureService::Type, etc.
- 1.4.6 (13) SDK: empty VertexFeatureService User Class
- 1.4.7 (14) PY: empty Service.VertexFeature user class
- 2 Feature Packages
Vertex Features
A vertex is a general concept spanning meshes, render surfaces, and particle simulation. A vertex is a point in a multi-dimensional space. Vertex features are named vectors describing aspects of the vertex. A vertex vector is the concatenation of the values of all of its features into a single array. A vertex description (also TableauVertex) lists the features of the vertex and their offset in the vertex vector.
Vertex feature categories indicate the context where the feature is expected to be valid. Currently that just surfaces and particles.
(1) SDK: LXsVFCAT_SURFACE, etc. defines
#define LXsVFCAT_SURFACE "surface" #define LXsVFCAT_PARTICLE "particle"
A vector type can in theory be any string of unique character codes, but these are the most common and most likely supported.
(2) SDK: LXsVECTYPE_XY, etc. defines
#define LXsVECTYPE_XY "XY" #define LXsVECTYPE_XYZ "XYZ" #define LXsVECTYPE_RGB "RGB" #define LXsVECTYPE_RGBA "RGBA" #define LXsVECTYPE_UV "UV" #define LXsVECTYPE_UVW "UVW"
Tableau Vertex
A tableau vertex object encodes information about the structure of the vertex data for sampling elements. Shaders and the renderer negotiate for the features they want from the element. These are added to the vertex object and are given offsets into the master vector. Once set, the vector can be queried for its total size, and for the offsets of each of the selected vertex features.
(3) SDK: TableauVertex::AddFeature, etc.
LXxMETHOD( LxResult, AddFeature) ( LXtObjectID self, LXtID4 type, const char *name, unsigned int *index); LXxMETHOD( LxResult, Lookup) ( LXtObjectID self, LXtID4 type, const char *name, unsigned int *offset); LXxMETHOD( unsigned int, Size) ( LXtObjectID self); LXxMETHOD( unsigned int, Count) ( LXtObjectID self); LXxMETHOD( LxResult, ByIndex) ( LXtObjectID self, unsigned int index, LXtID4 *type, const char **name, unsigned int *offset);
(4) SDK: CLxUser_TableauVertex::NewFeature method
(5) SDK: CLxUser_TableauVertex::GetOffset method
(6) SDK: LXu_TABLEAUVERTEX define
#define LXu_TABLEAUVERTEX "F90A0A39-EE2A-4D11-912B-9338EF271DFF"
Empty TableauVertex Python user class.
(7) PY: empty TableauVertex user class
pass
Service
The vertex feature service provides methods for interrogating features.
(8) SDK: LXa_VERTEXFEATURESERVICE, etc. defines
#define LXa_VERTEXFEATURESERVICE "vertexfeatureservice" #define LXu_VERTEXFEATURESERVICE "B40D51A9-6C04-46D1-BA8A-0FE9B32EAC3C"
(9) SDK: VertexFeatureService::ScriptQuery
LXxMETHOD( LxResult, ScriptQuery) ( LXtObjectID self, void **ppvObj);
Get a new, empty TableauVertex object.
(10) SDK: VertexFeatureService::AllocVertex
LXxMETHOD( LxResult, AllocVertex) ( LXtObjectID self, void **ppvObj);
This gets the ident string for a vertex feature given the type and (optional) name.
(11) SDK: VertexFeatureService::Lookup
LXxMETHOD( LxResult, Lookup) ( LXtObjectID self, LXtID4 type, const char *name, const char **ident);
Given the ident the various attributes of the feature can be read.
(12) SDK: VertexFeatureService::Type, etc.
LXxMETHOD( LxResult, Type) ( LXtObjectID self, const char *ident, LXtID4 *type); LXxMETHOD( LxResult, Name) ( LXtObjectID self, const char *ident, const char **name); LXxMETHOD( LxResult, Dimension) ( LXtObjectID self, const char *ident, unsigned *dimension); LXxMETHOD( LxResult, VectorType) ( LXtObjectID self, const char *ident, const char **vecType); LXxMETHOD( LxResult, DataType) ( LXtObjectID self, const char *ident, const char **typeName); LXxMETHOD( LxResult, TestCategory) ( LXtObjectID self, const char *ident, const char *category);
(13) SDK: empty VertexFeatureService User Class
Empty vertes service Python user class.
(14) PY: empty Service.VertexFeature user class
pass
Feature Packages
For some subset of features we define packages. If an item type wants to be able to use a package it should set this server tag to the feature category.
(15) SDK: LXsPKG_USEFEATURES define
#define LXsPKG_USEFEATURES "package.useFeatures"
These packages have names that are derived from the ident and the read-only flag.