|
| cMeshContainer () |
|
| cMeshContainer (const figures_t &, float fusionDistance) |
| Build a correct mesh by set of figures. More...
|
|
| cMeshContainer (const cMeshContainer &) |
|
cMeshContainer & | operator= (const cMeshContainer &) |
|
bool | operator== (const cMeshContainer &) const |
|
bool | IsValid (const bool ShowWarning=false) const |
|
bool | IsValidRawSequence () const |
| Verify the error (from Blender by import OBJ): "the same vertex of face used multiple times". More...
|
|
void | Clear () |
|
void | Copy (const cMeshContainer &src) |
|
const cStr & | GetName () const |
|
void | SetName (const char *Name) |
|
const cList< cVec3 > & | GetPositions () const |
|
cList< cVec3 > & | GetPositions () |
|
const cVec3 & | GetPosition (int vertex) const |
|
void | SetPosition (int vertex, const cVec3 &) |
|
int | GetVertex (const cVec3 &) const |
|
const cList< DWORD > & | GetVertexColor () const |
|
cList< DWORD > & | GetVertexColor () |
|
const cList< DWORD > & | GetVertexSpecular () const |
|
cList< DWORD > & | GetVertexSpecular () |
|
const cList< DWORD > & | GetVertexEmissive () const |
|
cList< DWORD > & | GetVertexEmissive () |
|
const cList< cVec2 > & | GetTexCoords () const |
|
cList< cVec2 > & | GetTexCoords () |
|
const cList< cVec3 > & | GetNormals () const |
|
cList< cVec3 > & | GetNormals () |
|
const cVec3 & | GetNormal (int vertex) const |
|
void | SetNormal (int vertex, const cVec3 &) |
|
const cList< cVec< cVec3, 2 > > & | GetTangents () const |
|
cList< cVec< cVec3, 2 > > & | GetTangents () |
|
const cList< cVec3i > & | GetRaw () const |
|
cList< cVec3i > & | GetRaw () |
|
const cList< cSurface > & | GetMaterials () const |
|
cList< cSurface > & | GetMaterials () |
|
const cList< PtexQuad > & | GetPtex () const |
|
cList< PtexQuad > & | GetPtex () |
|
const cList< cUVSet > & | GetUVSets () const |
|
cList< cUVSet > & | GetUVSets () |
|
const cList< cObject > & | GetObjects () const |
|
cList< cObject > & | GetObjects () |
|
const cList< cVMapElm > & | GetVMaps () const |
|
cList< cVMapElm > & | GetVMaps () |
|
const cList< cVMapType > & | GetVMTypes () const |
|
cList< cVMapType > & | GetVMTypes () |
|
int | GetPolyCount () const |
|
int | GetTrisCount () const |
|
cList< int > | GetNeighboursForFace (int beginRawFigure, cVec3 *avgNormal=NULL, cVec3 *avgCenter=NULL) const |
|
bool | Contains (const cVec3 &) const |
|
bool | Contains (int a) const |
|
bool | Contains (const cVec3 &a, const cVec3 &b) const |
|
bool | Contains (int a, int b) const |
|
bool | Contains (const cList< cVec3 > &figure) const |
|
bool | Contains (const cList< int > &figure) const |
|
bool | IsTriangulated () const |
|
void | Triangulate (cList< cVec3i > &TriRaw) const |
|
void | Triangulate () |
|
void | CalcNormals () |
|
void | CalcSplitNormals (cList< int > &SeamsList) |
|
void | InvertRaw () |
|
void | ConcateWith (const cMeshContainer *mc) |
|
void | Textures2VColor () |
|
void | RemoveUnusedObjMtl () |
|
void | RemoveUnusedVerts (cList< int > *encoding=NULL) |
|
template<bool withErase> |
::std::pair< cVec3, cVec3 > | Divide (int a, int b, float tAB, int c, int d, float tCD, int *beginRemovedRawBlock=NULL, int *sizeRemovedRawBlock=NULL,::std::pair< int, int > *changedBeginRawBlock=NULL) |
| Divide a figure on two parts with declared line. More...
|
|
template<bool withErase> |
void | Divide (int a, int b, const cVec3 &m, int c, int d, const cVec3 &n, int *beginRemovedRawBlock=NULL, int *sizeRemovedRawBlock=NULL,::std::pair< int, int > *changedBeginRawBlock=NULL) |
|
void | Erase (int beginRawFigure, bool withOptimize=false) |
| Remove a point / line / polygon (represent as raw-block) from this mesh. More...
|
|
void | Erase (const cList< int > &beginRawFigures, bool withOptimize=false) |
|
void | EraseByCount (int n) |
| Remove raw-blocks which a count of vertices is equal n .
|
|
void | EraseByCount (int a, int b) |
| Remove raw-blocks which a count of vertices in the diapason [a; b].
|
|
void | EraseClearConfluent (float tolerance) |
| Remove figures which all vertices are confluent to line. More...
|
|
void | EraseClearConfluentByIndexOnly () |
| Verify only indices of vertices.
|
|
void | Invert (int beginRawFigure) |
| Invert a figure. More...
|
|
cList< int > | Find (const cVec3 &nodeCoord) const |
|
cList< int > | Find (int nodeIndex) const |
|
cList< int > | Find (const cVec3 &edgeCoordA, const cVec3 &edgeCoordB) const |
|
cList< int > | Find (int ai, int bi) const |
|
cList< int > | Find (const edgeI_t &) const |
|
cList< int > | Find (const edgeI_t &, const edgeI_t &) const |
|
int | Find (const cList< cVec3 > &figure) const |
|
int | Find (const cList< int > &figure) const |
|
cList< int > | FindClearConfluent (float tolerance) const |
|
void | CorrectFaces (int beginRawBlockEtalon, uni_hash< bool, int > *fixed=NULL) |
| Fixed a direction for every face by neighbours. More...
|
|
void | CorrectRawSequence () |
| Fixed the error (from Blender by import OBJ): "the same vertex of face used multiple times". More...
|
|
void | MergeFaces (float fusionDistance) |
| Merge faces of mesh which side by side. More...
|
|
int | Insert (int a, int b, float t, cList< int > *beginRawFigures=NULL, cList< int > *beginRawForRemoved=NULL) |
| Insert vertext on the line 'ab' (as verticies). More...
|
|
int | Insert (int a, int b, const cVec3 &m, cList< int > *beginRawFigures=NULL, cList< int > *beginRawForRemoved=NULL) |
|
void | Insert (const figureI_t &, int *beginRawFigure=NULL) |
| Insert a figure (index of verticies) into the mesh.
|
|
figureI_t | Insert (int a, int *beginRawFigure=NULL) |
| Insert a point.
|
|
figureI_t | Insert (int a, int b, int *beginRawFigure=NULL) |
| Insert a line.
|
|
figureI_t | Insert (int a, int b, int c, int *beginRawFigure=NULL) |
| Insert a triangle.
|
|
figureI_t | Insert (int a, int b, int c, int d, int *beginRawFigure=NULL) |
| Insert a polygon with 4 vertices.
|
|
void | Insert (const figures_t &, float fusionDistance=-FLT_MAX) |
| Insert a set of figures (positions of verticies) into the mesh. More...
|
|
void | Insert (const figure_t &, figureI_t *=NULL) |
| Insert a figure (positions of verticies) into the mesh. More...
|
|
figure_t | Insert (const cVec3 &a, int *ai=NULL) |
| Insert a point.
|
|
figure_t | Insert (const cVec3 &a, const cVec3 &b, int *ai=NULL, int *bi=NULL) |
| Insert a line.
|
|
figure_t | Insert (const cVec3 &a, const cVec3 &b, const cVec3 &c, int *ai=NULL, int *bi=NULL, int *ci=NULL) |
| Insert a triangle.
|
|
figure_t | Insert (const cVec3 &a, const cVec3 &b, const cVec3 &c, const cVec3 &d, int *ai=NULL, int *bi=NULL, int *ci=NULL, int *di=NULL) |
| Insert a polygon with 4 vertices.
|
|
void | Insert (const cMeshContainer &) |
| Insert a mesh to this mesh. More...
|
|
bool | IsClearConfluent (const figure_t &, float tolerance) const |
|
bool | IsClearConfluent (int beginRawFigure, float tolerance) const |
|
bool | IsClearConfluentByIndexOnly (int beginRawFigure) const |
| Verify only indices of vertices. More...
|
|
bool | IsClockwiseOrder (int beginRawFigure, const cVec3 &observer) const |
|
bool | PerformBooleanOp (cMeshContainer &src1, cMeshContainer &src2, int operation, cList< ::std::pair< comms::cVec3, comms::cVec3 > > *dividers=NULL) |
| Build mesh from 'src1' and 'src2' to 'this'. More...
|
|
void | CreateCube (const cVec3 &Sides) |
|
void | CreateQuadCylinder (const cMat4 &M, float quant, float rtop=1.0, float rbottom=1.0, float Height=2.0) |
|
void | CreateQuadCylinder (float quant, cVec3 PTop, cVec3 PBottom, float rTop, float rBottom) |
|
void | MakeShell (float Out, float In, float OutEdge, float InEdge, int ndiv=1, cList< cVec2 > *EdgeShape=NULL) |
|
void | MakeShellDir (float Out, float In, cVec3 Dir) |
|
void | LeaveBiggestPiece () |
|
void | QuadQuantSubd (const cMat4 &M, float quant, float dotp) |
| Try to divide all quads in approx equal sub-quads.
|
|
void | TriSubd (int N, SubdSnapEdgeCallback *dive=NULL, SubdSnapMiddlePointCallback *divm=NULL, void *context=NULL) |
| Divide triangular mesh on N^2 triangles.
|
|
void | Transform (const cMat4 &M) |
|
void | SetDefaultObjMtl () |
|
void | Symmetry (cVec3 pos, cVec3 n, bool Quads, bool RemoveOpp, float ToleranceCoef=0.0) |
|
void | WeldedSymmetry (cVec3 pos, cVec3 n, bool RemoveOpp, float ToleranceCoef=0.0, float WeldCoef=0.0) |
|
void | Smooth (float degree, bool tangent, int count=1, float sharpdot=0.3, UnlimitedBitset *pins=NULL, bool smoothedges=false) |
|
void | RelaxNormals (cList< cVec3 > &ResultNormals, int Count) |
|
void | SmoothFast (float degree, int count, UnlimitedBitset *pins, bool tangent) |
|
void | GetSharpEdges (cList< DWORDS2 > &List, float dotp) |
|
void | GetOpenEdges (cList< DWORDS2 > &List) |
|
StaticMesh * | CreateStaticMesh () |
| Creation for rendering. More...
|
|
StaticMesh * | CreateStaticMeshMC () |
| Create mesh with smoothed normals and mcubes - like shader.
|
|
StaticMesh * | CreateHardsurfaceStaticMesh () |
| Create faceted mesh. Shader mpreview1 used.
|
|
StaticMesh * | CreateStaticMeshUV () |
| Create mstatic mesh with UV, skypreview shader used.
|
|
cVec3 | GetFaceCoord (int pos) const |
|
cVec3 | GetFaceNormal (int pos) const |
|
void | SplitHardsurface (float angcos) |
|
void | SplitDisconnected (cList< cMeshContainer * > &res) |
|
void | CreateFone () const |
|
void | ClearFone () const |
|
void | CreateVnv (uni_hash< int, int > &vnv) |
|
void | FindCorners (cList< int > &corners) |
|
void | DrawDbg (const cMat4 &T, DWORD Color, DWORD FillColor=0, DWORD DetailColor=0) |
|
void | DbgDrawMeshWithUVGrid () |
| use this function within __thumbnail(...) section to visualuse mesh with UV, seek "__thumbnail(test1)" as example.
|
|
DWORD | CalcGUID () |
|
float | CalcVolume () |
|
float | CalcSquare () |
|
cBounds | CalcBoundBox () |
|
float | CalcSquareMC () |
|
void | CloseHoles (int MaxHoleSize, bool SkipMaximalHole) |
|
void | RemoveRedundantUV () |
|
void | Weld (float distance, UnlimitedBitset *Selected=NULL) |
|
void | AutoWeldOpenEdges () |
|
void | CutMesh (MeshCutter &mcut) |
|
void | CutByPlane (const cPlane &pl, cList< cVec3 > *cutverts=NULL) |
|
void | PlainSubdiv () |
|
float | PickObject (cSeg &Ray, const cMat4 &M) |
|
cVec3 | CalcMeshProjSquare () |
|
cVec3 | CalcMeshProjSquare (const cMat4 &M) |
|
void | ConvertPicToPolygones (cImage &Img, float Thickness, bool Normalize) |
|
void | ConvertPicToGridPolygones (cImage &Img, float Thickness, int nDiv, bool Normalize, bool DefAlign) |
|
void | ConvertPicToGridPolygonesWithTapering (cImage &ImgT, cImage &ImgB, float Thickness, int nDiv, bool Normalize, float Angle, float Weight) |
|
void | DivideMesh (MeshDivider< int > &) const |
| Divide the mesh on two meshes (harvest vertices).
|
|
bool | FlipEdge (int V1, int V2, int *valence=NULL) |
| flip edge, requires fone, requires 2 faces over the edge.
|
|
bool | OptimizeTriangularMesh () |
| tries to set valence 6 whenever possible unsing edge-flip
|
|
void | PutOnGround (cMat4 &M, cVec3 &p, cVec3 &c) |
|
void | PutOnGround (cMat4 &M) |
|
void | LayOnGround (cMat4 &M) |
|
void | SeparateObject (int ObjectIndex, cMeshContainer *dest) |
|
void | ImproveQuadsTopology () |
|