Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v0.3.0 #49

Merged
merged 65 commits into from
Jan 29, 2023
Merged

v0.3.0 #49

merged 65 commits into from
Jan 29, 2023

Conversation

brenocq
Copy link
Owner

@brenocq brenocq commented Jan 29, 2023

The main features added in this version are:

Infrared sensor

The measurement will be done using the physics engine according to the desired ODR and it will be further processed according to the configured parameters.

Peek 2023-01-29 14-00

Profiler Tool

How to use

To profile a function it is only necessary to add PROFILE() at the beginning. For example:

int myFunc(int x, int y) {
    PROFILE();
    return x + y;
}

You can also specify the name yourself by using PROFILE_NAME

void RobotScript::update(cmp::Entity entity, float dt) {
    PROFILE_NAME("RobotScript::update(" + std::to_string(entity.getId()) + ")");
    // ...
}

Time Profiler window

Can be found in Tools>Time Profiler.

image

Hierarchical prototypes

Now it is possible to have prototypes with children, this way more complex prototypes can be achieved (e.g. robots with multiple sensors).

image

Changelog

  • Feat
    • Support to specify number of jobs when building
    • Step control (simulate slower, faster, or in real-time)
    • Graphics FPS control
    • Draw collision contacts and collision shapes
    • Better UI to configure physics
    • Supported colliders: `BoxCollider`, `BoxCollider2D`, `SphereCollider`, `CircleCollider2D`, `CyllinderCollider`
    • Supported joints: `PrismaticJoint`, `RevoluteJoint`
    • Better atta config and state check (`utils/config.h`)
    • Faster build when dependencies are already downloaded (no update check)
    • Time profiler
    • Create clones from a prototype with children
    • `cmp::Camera` with new `captureTime` field
    • `cmp::Entity` new methods
    • `cmp::Relationship` new `Entity get(uint32_t i)` method
    • Now it is possible to get scale/position/orientation individually from `mat4`
    • New `cmp::InfraredSensor`
    • New `cmp::Script::set` method
    • Default atta namespaces are now accessible everywhere (added to precompiled header)
    • Sensor module UI window
  • Refactor
    • README with better Linux installation instructions
    • Quaternion UI with quaternion values instead of Euler values
    • `cmp::Relationship` using `cmp::Entity` instead of `cmp::EntityId`
    • Varying camera sensor drawer size according to entity size
    • Camera model matrix calculation from position and orientation instead of transform matrices to reduce numerical
    • `cmp::Camera` renamed to `cmp::CameraSensor`
    • `cmp::Transform` now is more numerically stable when converting from/to world coordinates
    • Physics engine ray casting now also returns distance and normal
  • Fix
    • Fixed changes not being performed when hot-reloaded
    • Hot-reloading when included files are modified
    • Fixed calling scripts of clones twice in one step
    • Fixed Bluetooth error
    • Running clone script twice per step
    • Not reloading cameras when project is open
    • Always drawing prototype camera/colliders
    • Returning invalid orientation quaternion from mat4
    • Returning wrong euler from quaternion
    • Box2D dynamic creation/deletion of `RigidBody2D` and `Collider` supported
    • Box2D `RigidBody2D` type dynamic change support

brenocq and others added 30 commits September 17, 2022 15:17
brenocq and others added 28 commits October 31, 2022 20:58
@brenocq brenocq merged commit 3e6f32a into main Jan 29, 2023
@brenocq brenocq changed the title v0.3.0.0 v0.3.0 Dec 30, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant