Search the Community
Showing results for tags 'cigi'.
-
Hello, I observe a different behavior of a IG Component depending on whether the component is solo or not in an entity. Let me explain: Here is an excerpt from my ig_config.xml: <entity id="160" name="h160"> <path>entities/h160/h160.node</path> <component id="34" name="rotor"> <property>rotor</property> <parameter name="data1">rpm</parameter> </component> <component id="35" name="rotorwash"> <property>rotorwash</property> <parameter name="data1">wind_percent</parameter> <parameter name="data2">sand_percent</parameter> </component> </entity> <entity id="260" name="rotorwash"> <path>entities/rotorwash/rotorwash.node</path> <component id="35" name="rotorwash"> <property>rotorwash</property> <parameter name="data1">wind_percent</parameter> <parameter name="data2">sand_percent</parameter> </component> </entity> As you can see, the "rotorwash" component is solo for the entity #260 but not in the #160. What I observe at runtime (with Log::message) is that I can drive the wind_percent & sand_percent of the rotorwash through Cigi component control of entity #260, but not of #160. (attached rotorwash component source, if it matters). What am I doing wrong? source.zip
-
Hello, I added a basic particles emitter on one of my Cigi entities. When the entity is instanced, the particle emitter does not start on the master, but it does start on the slaves, strangely. There is no code at all managing the entity, it's just a basic node listed in the entity_types.xml for cigi. The particle emission is of course enabled by default, the node itself is enabled, and it's at the root of the node. Am I missing something obvious?
-
Hello, Is it possible to use a track to drive the animation of a CIGI component? (keeping in mind multiple instances may exist in the scene). The CIGI demo directly drives the rotation of multiple nodes for the animation of the landing gear. I think it would be more intuitive and more user friendly to define a track for this kind of animation. I also have a case where I would like to reuse the same component class for multiple aircraft. Each aircraft would have its own "landing_gears.track", and the component class would just load it and "play it". Thanks.
-
Hello, When using CIGI, findComponentID does not return the requested component ID, but the index of the component in the list. int Cigi::Entity::findComponentID(int entity_type, const char* name) { EntityType* entity = &entity_types[entity_type]; for (int i = 0; i < entity->components.size(); i++) if (entity->components[i].name == name) return i; ///< incorrect ! should be: return entity->components[i].id; return -1; } By the way, a great addition to the API would be to be able to publicly enumerate all known entity type and their component ID.
-
Hello, For calibration purpose, I need to superimpose a special reticule (a grid-like object) on the rendered screen*. I can do this easily by creating a custom object, assigning it a cigi type, and parenting it to the cigi ownship with a Cigi entity message. Problem is: I must not do it through cigi messages, because I must show/animate the reticule even when no host is active. On the master, I can get the parent node of the Cigi player and manually attach my own reticule. I also called addSyncNode with the reticule and the syncker. But on the slaves, the reticule doesn't look like it's linked to the ownship. Any ideas? *Think of the reticule as something drawn on the windshield of an helicopter, hence linked to the helicopter itself, not linked to the view/pilot's eye.
-
[SOLVED] Cigi+AppEasyBlend spurious rotation
Amerio.Stephane posted a topic in Sim IG (Image Generator)
Hello, I enabled Syncker + Cigi + EasyBlend on my test, on master and slave. If my Cigi HOST stops sending messages, then the Master camera suddenly looks down (and stay there until a new msg is sent), and the slaves enters in a pitch rotation madness. The application is really just the new cigi template of 2.7.1, with a PlayerDummy on slave. If I disable AppEasyBlend, then everything is correct. There is no AppEasyBlend specific code in my sources or project.cpp Attached: the slave and master easyblend deformation mesh master-slave.7z -
Hello, My CIGI slaves don't show rolls from the master. Heading and pitch is ok. I tested with the most simplistic code possible, based on the new cigi template from 2.7.1. Did I miss something?
-
Switching between CIGI and "manual" flight control
Amerio.Stephane posted a topic in C++ Programming
Hello, Is it possible to temporarily regain manual "flight" control during a CIGI session (through custom code/script)? Use case: During a flight session, we may need to "flight with keyboard and mouse" to reckon the terrain, prepare the mission or simply debrief. In our current IG, with a key press, with toggle between network CIGI control and mouse control. Can a similar behavior be coded ? Thanks. -
GA Tech Research Simulator https://www.youtube.com/watch?v=KX2MvNKWcpU&t=0s&index=13&list=PLQz7dI2tw8QTL6SoV3EQpaL-xyK0NjkZ-
-
- 1
-
- flight simulation
- cigi
-
(and 1 more)
Tagged with:
-
Hello, We have been looking into using the CIGI protocol in Unigine with C#, however there is very little in the documentation on it, and we are unable to use the samples. Is there a demonstration of a CIGI client and potentially a CIGI Server that is available for download for testing and review to better understand it. Thanks in advance, Off Planet Simulation
-
Hi, We are focus on Common Image Generator Interface (CIGI). We download host emulator from Internet, and could run Unigine's CigiClient demo to connect to host emulator. But when I read Chapter "CIGICLIENT PLUGIN" in Unigine manual, I can't find where to download "Washington Demo". Could you tell me where to download it? Thank you!
-
Hi there For the Unigine v1, we used the following code to get the height above terrain (HAT) and pack it into the CigiHatHotExtResponse packet. int ret[0]; dvec3 p0 = position + vec3(0.0f,0.0f,1000.0f); dvec3 p1 = position - vec3(0.0f,0.0f,1000.0f); Object object = engine.world.getIntersection(p0,p1,~0,ret); CigiHatHotExtResponse response = new CigiHatHotExtResponse(hathot_id); if(object != NULL) { dvec3 point = ret[0]; vec3 normal = ret[1]; response.setResponseValid(1); response.setHeightAbove(position.z - point.z); response.setHeightOf(point.z); response.setAzimuth(atan2(normal.x,normal.y) * RAD2DEG); response.setElevation(acos(clamp(-normal.z,-1.0f,1.0f)) * RAD2DEG - 90.0f); } engine.cigi.addIGPacket(response); In Unigine V2 there are some changes in the getIntersection* commands. We tried it as followed: int ret[0]; dvec3 p0 = position + vec3(0.0f, 0.0f, -200.0f); dvec3 p1 = position - vec3(0.0f, 0.0f, 1000.0f); int intersected = engine.world.getIntersectionObjects(p0, p1, ret); But as it seems, the returned 'ret' value doesn't contains any more the point and its normal of the ground model. As described in the documentation, the ret array contains the result. Is my approach correct? I should get the point on the ground vertically below the spectator. Thanks a lot, Renato