}
+Part::State &Instance::BodyState() noexcept {
+ return state[model->GetBodyPart().ID()];
+}
+
+glm::mat4 Instance::BodyTransform() const noexcept {
+ return model->GetBodyPart().GlobalTransform(*this);
+}
+
Part::State &Instance::EyesState() noexcept {
return state[model->GetEyesPart().ID()];
}
: id(0)
, root()
, part()
+, body_id(0)
, eyes_id(0) {
}
, tex_map()
, mesh()
, initial()
-, hsl_mod(0.0f, 1.0f, 1.0f)
-, rgb_mod(1.0f, 1.0f, 1.0f)
+, hsl_mod(0, 255, 255)
+, rgb_mod(255, 255, 255)
, id(0) {
}
std::string name;
std::string shape_name;
std::string tex_name;
+ glm::vec3 color_conv;
in.Skip(Token::ANGLE_BRACKET_OPEN);
while (in.HasMore() && in.Peek().type != Token::ANGLE_BRACKET_CLOSE) {
in.ReadIdentifier(name);
} else if (name == "orientation") {
in.ReadQuat(initial.orientation);
} else if (name == "hsl_mod") {
- in.ReadVec(hsl_mod);
+ in.ReadVec(color_conv);
+ hsl_mod = EntityMesh::ColorMod(color_conv * 255.0f);
} else if (name == "rgb_mod") {
- in.ReadVec(rgb_mod);
+ in.ReadVec(color_conv);
+ rgb_mod = EntityMesh::ColorMod(color_conv * 255.0f);
} else if (name == "textures") {
in.Skip(Token::BRACKET_OPEN);
while (in.HasMore() && in.Peek().type != Token::BRACKET_CLOSE) {
}
glm::mat4 Part::LocalTransform(const Instance &inst) const noexcept {
- glm::mat4 transform(toMat4(initial.orientation * inst.state[id].orientation));
+ glm::mat4 transform(glm::toMat4(initial.orientation * inst.state[id].orientation));
transform[3] = glm::vec4(initial.position + inst.state[id].position, 1.0f);
return transform;
}