========================================== Transforming Shapes Through Matrix Multiplication ========================================== Description of functionality: This project transforms a shape (which is expressed as a set of points) according to the parameters provided. https://docs.google.com/document/d/1p10rx8R_3oGFU1SiKOWELDZhxhAfR2k61Vg8fF_Rl34/edit Instructions to run the file: After using the make command, the following command should run the program, ./final inputShapeFile.csv inputTransformation.txt ouputShapeFile.csv the following command will run the program with tests ./final inputShapeFile.csv inputTransformation.txt ouputShapeFile.csv -t Format for Input and Output files: inputShapeFile.csv and ouputShapeFile.csv: Where each column of the file corresponds to the heading for its value ex. X,Y,Z,L 1.121,1.003,1.2,1.00 2,3,4,1 0,0,0,1 1,0,0,1 0,1,0,1 0,0,1,1 Where for the first point X = 1.121 Y = 1.003, Z = 1.2 and L = 1.00 inputTransformation.txt: This is the configuration file that contains all the parameter values for all the functions. For example: setGlobalScale=1 setXScale=1 setYScale=1 setZScale=1 setXRotation=0 setYRotation=0 setZRotation=0 setXTranslation=0 setYTranslation=0 setZTranslation=0 setXReflection=0 setYReflection=0 setZReflection=0 setXshear=0 setYshear=0 setZshear=0 setOrthographic=1 Where each corresponds to a transformation with the following limitations and functionality: setGlobalScale This value handles the scaling of all values inside of a point where the value passed in must be greater than zero. setXScale setYScale setZScale This value handles the scaling of each individual x y z coordinate individually to scale all the points. setXRotation setYRotation setZRotation This value handles the rotation of points about each axis based on a supplied angle which is in degrees. setXTranslation setYTranslation setZTranslation This value handles the translation of points in the x, y and z directions where there is no restrictions on these values. setXReflection setYReflection setZReflection These are boolean values that represent if the shape has to be flipped (1) or not (0) in the x, y and z direction. setXshear setYshear setZshear These values correspond to the x, y and z shears on a point where they will transform the function by squashing or pulling it in a direction. setOrthographic This is a boolean value that represents if the shape has to be projected orthographically (1) or not (0).
This is the massive repository for all code for the class CIS3250 Fall Semester.
Overview
Issues
-
test point helper functions, style changes
- added createTestPoints() to give each group a clean testing slate
- added freeTestPoints()
- removed instances of "group #" inside runAllTests()
-
Group10
Implemented group 10's functions and tests, changed makefile to include our new folder & file name, added test-handler call inside main. The works.
-
ifndef update and zeroTransformationTest fix
Fixed the uninitialized array of points in zeroTransformationTest. Fixed a loop error that went over 4 vectors no matter the numOfPoints value. Changed the ifndef define names to SCALINGINX
-
Add Group17 Implementation
- Changed Group17 to OutputResults.
- Implemented Functions and Tests for OutputResults.
- Removed heap allocation for filename in favor of referencing the string literal directly since the value should never change.
-
ScalingInX changes
Fixed a typo in RotationInYTests.c that was causing compilation errors: all instances of (inputShape -> numOfPoints) were changed to (inputShape -> numOfVectors). Added ScalingInX implementation and tests. Updated header files. Updated makefile: fixed typo in CFLAGS and added ScalingInX files.
-
Group13
We can't test this until this branch has the up-to-date versions of main.c/h and of other people's code which don't reference "struct vector" like the old versions in this branch do. I'm approximately 85% sure this is what I need to do to get up up to date. The group 13 code in this branch compiles to a .o file without errors, but since the full program won't compile, it hasn't been tested for things like runtime or logical errors.
2021 Fall Comp2012h Final Project. A Plant-Vs-Zombie style desktop game with beautiful graphics and sound effects. Developer: thomas914, mitester and tiliuau.
Underperforming Students vs Teachers Table of Contents Underperforming Students vs Teachers Table of Contents Authors Code Conventions Workflow Class
This contains code and relevant schematics from my Applied Digital Signal Processing class, where we developed various digital filters on the NXP FRDM K22F development board.
#dsp_class Summary This repo is meant to hold any of the C and MATLAB programming I did over the course of my Applied Digital Signal Processing class
Tool that generates unit test by C/C++ source code, trying to reach all branches and maximize code coverage
What is UTBotCpp? UTBotCpp generates test cases by code, trying to cover maximum statements and execution paths. We treat source code as source of tru
Exploits for the house of IO class of vulnerabilities
House of IO - Heap Reuse What Is This? A heap exploitation technique that allows for returns an arbitrary memory address from Malloc. An exploit primi
A single-class C++ library for reading animated GIF files
EasyGifReader EasyGifReader is a single-class C++ library that aims to simplify reading an animated GIF file. It is built on top of and depends on gif
Implementation of a lock-free ring buffer class.
Lock-free ring buffer This is an implementation of a lock-free ring buffer, using only C++11 STL level features. Originally designed for the NymphCast
This repository contains the source code of the project(StereoCraft) that we have developed for the Mixed Reality Hackathon organized by Microsoft using StereoKit SDK
StereoCraft - A block-building like experience built using StereoKit This repository contains the source code of the project that we have developed fo
The new Windows Terminal and the original Windows console host, all in the same place!
The new Windows Terminal and the original Windows console host, all in the same place!
Toybox: all-in-one Linux command line.
Toybox: all-in-one Linux command line.
A single header C++ library for parsing command line arguments and options with minimal amount of code
Quick Arg Parser Tired of unwieldy tools like getopt or argp? Quick Arg Parser is a single header C++ library for parsing command line arguments
cmdlime - is a C++17 header-only library for command line parsing with minimum of code and pain things to remember
Possibly the least verbose command line parsing library for C++
DollarSkip is a short piece of C code designed to ignore the dollar symbol at the start of commands.
DollarSkip is a short piece of C code designed to ignore the dollar symbol at the start of commands.
A simple command line application in order to create new Code workspaces.
mkcws Summary A simple command line application in order to create new Code workspaces. License This project's license is GPL 2. The whole license tex
Spitfire is a basic terminal language that can exicute code via the terminal.
Spitfire is a basic terminal language that can exicute code via the terminal. It is easy to learn and runs fast, considering that its just a 300 line c++ file.
A command-line tool to generate Linux manual pages from C source code.
mangen A command-line tool to generate Linux manual pages from C source code. Description mangen is, as said above, a program to generate Linux manual
CodeCompactor is an open source program designed for reducing the size of your code!
CodeCompacter An exciting, new and open source program for reducing the length of your code! Usage: ./CodeCompacter {ARGUMENTS} Arguments: -L {languag
Advent-of-Code: 2021 Edition
?? ?? Advent of Code 2021 ☃️ ❄️ Description Advent of code 2021 Awesome Advent of Code Advent of Code is an Advent calendar of small programming puzzl
CppCompetitor - A program for dueling code bots.
CPP Competitor CPP Competetior is a mini program that's let you battle code bots. To get it running you only need A class for controlling the game's s
nicegraf-shaderc is a command-line tool that transforms HLSL code into shaders for various graphics APIs.
User Manual Table of Contents Introduction Project Status Obtaining the Source Code and Building Running Defining Techniques Generated Header File Pip