载入中...
搜索中...
未找到
AnimLattice.h
浏览该文件的文档.
109 static AnimLattice* fromModel(const model3d::ModelData* model, int meshIndex, int divX, int divY, int divZ);
135 bool deformPositionsTo(const std::vector<float>& inPosXYZ, std::vector<float>& outPosXYZ) const;
142 bool deformNormals(const float* posXYZ, const float* inNrmXYZ, float* outNrmXYZ, int count) const;
154 bool updateDeformedNormals(const std::vector<float>& posXYZ, const std::vector<float>& inNrmXYZ);
void setDivisions(int divX, int divY, int divZ)
Changes divisions; resets all control points to identity and clears the bind.
Definition AnimLattice.cpp:46
float getDeformedPositionX(int vertexIndex) const
Cached deformed position component (requires updateDeformedPositions).
Definition AnimLattice.cpp:344
std::vector< float > getDeformedNormals() const
Copy of the cached deformed normals (xyz packed; empty when not updated).
Definition AnimLattice.cpp:370
std::vector< float > getDeformedPositions() const
Copy of the cached deformed positions (xyz packed; empty when not updated).
Definition AnimLattice.cpp:366
void setPointScale(int ix, int iy, int iz, float sx, float sy, float sz)
Per-control-point scale (squash / stretch about the lattice origin).
Definition AnimLattice.cpp:88
float getPointOffsetX(int ix, int iy, int iz) const
Definition AnimLattice.cpp:126
AnimLattice(const AnimLattice &)=delete
bool updateDeformedPositions()
Deform the bound bind positions into the internal cache.
Definition AnimLattice.cpp:321
bool deformNormals(const float *posXYZ, const float *inNrmXYZ, float *outNrmXYZ, int count) const
Transforms normals with the interpolated scale field and renormalizes. posXYZ provides the (deformed)...
Definition AnimLattice.cpp:265
float getBindPositionZ(int vertexIndex) const
Definition AnimLattice.cpp:197
void setOrigin(float ox, float oy, float oz)
Center of the lattice box in model space.
Definition AnimLattice.cpp:67
void setClamp(bool clamp)
When true (default), vertices outside the box are clamped to the boundary cells; when false,...
Definition AnimLattice.h:77
AnimLattice & operator=(const AnimLattice &)=delete
void bindModel(const model3d::ModelData *model, int meshIndex)
Binds the current lattice to meshIndex of model (uses current divisions).
Definition AnimLattice.cpp:155
bool updateDeformedNormals(const std::vector< float > &posXYZ, const std::vector< float > &inNrmXYZ)
Deform packed xyz normals (with packed positions for cell lookup) into the internal normal cache.
Definition AnimLattice.cpp:329
float getPointScaleX(int ix, int iy, int iz) const
Definition AnimLattice.cpp:114
void deformPositions(const float *inPosXYZ, float *outPosXYZ, int count) const
Deforms count packed xyz positions into outPosXYZ. Both buffers must hold count * 3 floats; count mus...
Definition AnimLattice.cpp:212
float getPointOffsetY(int ix, int iy, int iz) const
Definition AnimLattice.cpp:130
float getDeformedPositionY(int vertexIndex) const
Definition AnimLattice.cpp:351
void setSize(float sx, float sy, float sz)
World-space size of the lattice box (components must be > 0).
Definition AnimLattice.cpp:58
float getDeformedPositionZ(int vertexIndex) const
Definition AnimLattice.cpp:358
void setPointOffset(int ix, int iy, int iz, float dx, float dy, float dz)
Per-control-point translation offset (local bulge / pinch).
Definition AnimLattice.cpp:96
bool hasDeformedPositions() const
True after a successful updateDeformedPositions().
Definition AnimLattice.h:157
float getPointScaleY(int ix, int iy, int iz) const
Definition AnimLattice.cpp:118
void setScale(float sx, float sy, float sz)
Applies one scale to every control point (whole-lattice squash & stretch).
Definition AnimLattice.cpp:104
static constexpr int kMinDivisions
Definition AnimLattice.h:43
static AnimLattice * fromModel(const model3d::ModelData *model, int meshIndex, int divX, int divY, int divZ)
Builds a lattice bound to meshIndex of model (Assimp vertices). Throws on null model / invalid mesh /...
Definition AnimLattice.cpp:139
bool deformPositionsTo(const std::vector< float > &inPosXYZ, std::vector< float > &outPosXYZ) const
Convenience: deform into a vector sized count*3.
Definition AnimLattice.cpp:257
float getBindPositionX(int vertexIndex) const
Bind-pose position component for vertex v (0..vertexCount-1).
Definition AnimLattice.cpp:189
float getPointOffsetZ(int ix, int iy, int iz) const
Definition AnimLattice.cpp:134
void reset()
Resets every control point to identity (offset 0, scale 1).
Definition AnimLattice.cpp:112
bool hasDeformedNormals() const
True after a successful updateDeformedNormals().
Definition AnimLattice.h:160
float getPointScaleZ(int ix, int iy, int iz) const
Definition AnimLattice.cpp:122
void bindPositions(const float *posXYZ, int count)
Binds a packed xyz array (count * 3 floats). Uses current divisions/size/origin.
Definition AnimLattice.cpp:169
float getBindPositionY(int vertexIndex) const
Definition AnimLattice.cpp:193
CPU-side decoded 3D model (Assimp scene owned via medialoader::ModelScene). Does not upload to GPU — ...
Definition ModelData.h:23
Definition Animation.cpp:29
Definition Animation.h:9