GLTFLightsExtension constructor
GLTFLightsExtension(
- GLTFParser parser
Implementation
GLTFLightsExtension(this.parser) {
name = gltfExtensions["KHR_LIGHTS_PUNCTUAL"]!;
// Object3D instance caches
cache = {"refs": {}, "uses": {}};
markDefs = () {
final parser = this.parser;
final nodeDefs = this.parser.json["nodes"] ?? [];
for (int nodeIndex = 0, nodeLength = nodeDefs.length;
nodeIndex < nodeLength;
nodeIndex++) {
final nodeDef = nodeDefs[nodeIndex];
if (nodeDef["extensions"] != null &&
nodeDef["extensions"][name] != null &&
nodeDef["extensions"][name]["light"] != null) {
parser.addNodeRef(cache, nodeDef["extensions"][name]["light"]);
}
}
};
createNodeAttachment = (nodeIndex) {
final self = this;
final parser = this.parser;
final json = parser.json;
Map<String, dynamic> nodeDef = json["nodes"][nodeIndex];
// final lightDef = ( nodeDef.extensions && nodeDef.extensions[ this.name ] ) ?? {};
Map lightDef = {};
if (nodeDef["extensions"] != null &&
nodeDef["extensions"][name] != null) {
lightDef = nodeDef["extensions"][name];
}
final lightIndex = lightDef["light"];
if (lightIndex == null) return null;
final light = _loadLight(lightIndex);
return parser.getNodeRef(self.cache, lightIndex, light);
};
}