This commit is contained in:
2026-01-18 11:23:32 -06:00
parent 1a6f34e5e4
commit 8b0df988bc
8 changed files with 69 additions and 69 deletions

16
skin.cm
View File

@@ -13,7 +13,7 @@ function prepare_skins(model) {
var prepared = []
for (var si = 0; si < g.skins.length; si++) {
for (var si = 0; si < length(g.skins); si++) {
var skin = g.skins[si]
// Extract inverse bind matrices
@@ -37,7 +37,7 @@ function prepare_skins(model) {
prepared.push({
name: skin.name,
joints: skin.joints,
joint_count: skin.joints.length,
joint_count: length(skin.joints),
inv_bind: inv_bind_blob,
skeleton: skin.skeleton,
palette: null // Will be built each frame
@@ -50,11 +50,11 @@ function prepare_skins(model) {
// Build joint palette for a skin
// This computes world * inv_bind for each joint
function build_palette(skin, model, retro3d) {
if (!skin || !skin.joints || skin.joints.length == 0) return null
if (!skin || !skin.joints || length(skin.joints) == 0) return null
// Collect world matrices for each joint
var world_matrices = []
for (var j = 0; j < skin.joints.length; j++) {
for (var j = 0; j < length(skin.joints); j++) {
var node_idx = skin.joints[j]
var node = model.nodes[node_idx]
if (node) {
@@ -71,7 +71,7 @@ function build_palette(skin, model, retro3d) {
// Get a joint's world matrix (for attachments)
function get_joint_world(skin, joint_index, model, retro3d) {
if (!skin || joint_index >= skin.joints.length) {
if (!skin || joint_index >= length(skin.joints)) {
return model_c.mat4_identity()
}
@@ -86,7 +86,7 @@ function get_joint_world(skin, joint_index, model, retro3d) {
function find_joint(skin, name, model) {
if (!skin || !skin.joints) return -1
for (var j = 0; j < skin.joints.length; j++) {
for (var j = 0; j < length(skin.joints); j++) {
var node_idx = skin.joints[j]
var node = model.nodes[node_idx]
if (node && node.name == name) return j
@@ -98,7 +98,7 @@ function find_joint(skin, name, model) {
function joint_from_node(skin, node_idx) {
if (!skin || !skin.joints) return -1
for (var j = 0; j < skin.joints.length; j++) {
for (var j = 0; j < length(skin.joints); j++) {
if (skin.joints[j] == node_idx) return j
}
return -1
@@ -106,7 +106,7 @@ function joint_from_node(skin, node_idx) {
// Get node index from joint index
function node_from_joint(skin, joint_idx) {
if (!skin || !skin.joints || joint_idx >= skin.joints.length) return -1
if (!skin || !skin.joints || joint_idx >= length(skin.joints)) return -1
return skin.joints[joint_idx]
}