Skip to content

Instantly share code, notes, and snippets.

View lalanikarim's full-sized avatar

Karim Lalani lalanikarim

View GitHub Profile
@lalanikarim
lalanikarim / 3dGraphicsExamples.pro
Created September 11, 2012 04:18
Addition to Qt Project file
unix:!macx:!symbian: LIBS += -L$$PWD/../../Downloads/tokamakp/trunk/tokamaksrc/ -ltokamak
INCLUDEPATH += $$PWD/../../Downloads/tokamakp/trunk/include
DEPENDPATH += $$PWD/../../Downloads/tokamakp/trunk/include
@lalanikarim
lalanikarim / gist:3695931
Created September 11, 2012 04:21
Add to c++ includes
#include <irrlicht.h>
#include <tokamak.h>
#include <iostream>
@lalanikarim
lalanikarim / gist:3695940
Created September 11, 2012 04:22
Add to c++ class
ISceneNode** sceneNodes;
neRigidBody** rigidBodies;
int sceneCount = 0;
int bodyCount = 0;
f32 cardmass = 1;
example2()
{
sceneNodes = new ISceneNode*[PICSCOUNT];
rigidBodies = new neRigidBody*[PICSCOUNT];
@lalanikarim
lalanikarim / gist:3695949
Created September 11, 2012 04:25
Initialize physics
neSimulatorSizeInfo siminfo;
neV3 gravity;
gravity.Set(0,-10,0);
siminfo.rigidBodiesCount = 100;
siminfo.animatedBodiesCount = 1;
int totalCount = siminfo.animatedBodiesCount + siminfo.rigidBodiesCount;
siminfo.geometriesCount = totalCount;
siminfo.overlappedPairsCount = totalCount * (totalCount - 1) / 2;
neSimulator* world = neSimulator::CreateSimulator(siminfo,NULL,&gravity);
@lalanikarim
lalanikarim / gist:3695955
Created September 11, 2012 04:26
Create floor
neAnimatedBody * floor = world->CreateAnimatedBody();
neGeometry* geom = floor->AddGeometry();
geom->SetBoxSize(1500,50,1500);
floor->UpdateBoundingInfo();
neV3 pos;
pos.Set(0,-600,0);
floor->SetPos(pos);
ISceneNode * node = smgr->addCubeSceneNode(1);
node->setScale(vector3df(1500,50,1500));
@lalanikarim
lalanikarim / gist:3695961
Created September 11, 2012 04:27
Prepare Timer
ITimer * irrTimer = device->getTimer();
u32 TimeStamp = irrTimer->getTime();
f32 DeltaTime = 0, LastDelta = 0;
u32 CurrentTime = TimeStamp;
@lalanikarim
lalanikarim / gist:3695967
Created September 11, 2012 04:29
Advancing Physics
LastDelta = DeltaTime;
CurrentTime = irrTimer->getTime();
DeltaTime = CurrentTime - TimeStamp;
TimeStamp = CurrentTime;
if(LastDelta != 0)
{
if(DeltaTime > LastDelta * 1.2f) DeltaTime = LastDelta * 1.2f;
if(DeltaTime < LastDelta * 0.8f) DeltaTime = LastDelta * 0.8f;
}
@lalanikarim
lalanikarim / gist:3695986
Created September 11, 2012 04:33
Render-Physics Loop
for(int i = 0; i < bodyCount; i++)
{
neRigidBody * body = rigidBodies[i];
ISceneNode * node = sceneNodes[body->GetUserData()];
neV3 bodyPos = body->GetPos();
vector3df nodePos = tokVectorToIrrlicht(bodyPos);
node->setPosition(nodePos);
neQ bodyRot = body->GetRotationQ();
quaternion nodeRotQ;
@lalanikarim
lalanikarim / gist:3696006
Created September 11, 2012 04:41
Generating Cards
vector3df cardsize(75,107,1);
vector3df halfcardsize = cardsize;
halfcardsize.Z = 0.5;
neRigidBody * rigid = world->CreateRigidBody();
neGeometry * geom = rigid->AddGeometry();
geom->SetBoxSize(irrVectorToTokamak(cardsize));
rigid->UpdateBoundingInfo();
rigid->SetMass(cardmass);
@lalanikarim
lalanikarim / callapi.sh
Last active October 19, 2021 17:08
A bash script wrapper around curl and jq commands to facilitate making api requests from terminal.
#!/bin/bash
verbose=''
while getopts vm:e:d:q:s: flag
do
case "${flag}" in
m) verb=${OPTARG};;
e) endpoint=${OPTARG};;
d) body="-d '${OPTARG}'";;
q) query=" | jq -r '${OPTARG}'";;